Skip to content

Instantly share code, notes, and snippets.

@tkuldeep
Last active December 22, 2015 15:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tkuldeep/6493838 to your computer and use it in GitHub Desktop.
Save tkuldeep/6493838 to your computer and use it in GitHub Desktop.
To extract data from disqus exported comment. Convert XML file into php string by reference http://www.php.net/manual/en/simplexml.examples-basic.php
<?php
include 'XML_File.php';
$pos1 = 0;
$pos2 = 0;
$pos3 = 0;
$pos4 = 0;
$email_pos_open = 0;
$email_pos_close = 0;
$name_pos_close = 0;
$name_pos_open = 0;
// Extract email ids from disqus exported comments
while ($email_pos_open = stripos($xmlstr,'<email>',$pos1)) {
$email_pos_close = stripos($xmlstr,'</email>',$pos2);
$pos2 = $email_pos_close + 8;
$pos1 = $email_pos_open + 7;
$email_pos_opening[] = $email_pos_open+7;
$email_pos_closeing[] = $email_pos_close;
}
// Extract name from disqus exported comments
$pos1 = 0;
$pos2 = 0;
while ($name_pos_open = stripos($xmlstr,'<name>',$pos1)) {
// check if name contains email or not
$temp = substr($xmlstr,($name_pos_open-8),6);
if (strcmp($temp, 'mail /') == 0 ) {
$name_pos_close = stripos($xmlstr,'</name>',$pos2);
$pos1 = $name_pos_open+6;
$pos2 = $name_pos_close+7;
continue;
}
$name_pos_close = stripos($xmlstr,'</name>',$pos2);
$pos1 = $name_pos_open+6;
$pos2 = $name_pos_close+7;
$name_pos_opening[] = $name_pos_open+6;
$name_pos_closeing[] = $name_pos_close;
}
$number_of_users = count($email_pos_opening);
$fp = fopen("/var/www/AAP_India/sites/default/files/Delhi_site_users1_disqus.csv", "w");
echo $number_of_users;
for ($i = 0; $i <$number_of_users; $i++) {
$email = substr($xmlstr,$email_pos_opening[$i],($email_pos_closeing[$i])-($email_pos_opening[$i])). "\n";
$name = substr($xmlstr,$name_pos_opening[$i],($name_pos_closeing[$i])-($name_pos_opening[$i])) . "\n";
fwrite($fp, trim($name) . ',');
fwrite($fp, trim($email) . "\n");
}
fclose($fp);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment