fork download
  1. <?php
  2. function string_sanitizer($feed_status) {
  3. /*echo $feed_status.PHP_EOL;
  4. <img src="http://54.174.50.242/file/pic/emoticon/default/smile.png" alt="Smile" title="Smile" title="v_middle" /><img src="http://54.174.50.242/file/pic/emoticon/default/smile.png" alt="Smile" title="Smile" title="v_middle" /><img src="http://54.174.50.242/file/pic/emoticon/default/smile.png" alt="Smile" title="Smile" title="v_middle" />*/
  5.  
  6. $temp = $feed_status;
  7. $doc = new DOMDocument();
  8. @$doc->loadHTML($feed_status, LIBXML_HTML_NODEFDTD);
  9. $imageTags = $doc->getElementsByTagName('img');
  10. /*print_r($imageTags);
  11.   echo PHP_EOL;
  12.   DOMNodeList Object
  13.   (
  14.   [length] => 3
  15.   )*/
  16. $replacements = array(
  17. 'evilgrin.png' => '\ue404',
  18. 'grin.png' => '\ue415',
  19. 'happy.png' => '\ue057',
  20. 'smile.png' => '\ue056',
  21. 'surprised.png' => '\ue107',
  22. 'tongue.png' => '\ue105',
  23. 'unhappy.png' => '\ue403',
  24. 'waii.png' => '\ue407',
  25. 'wink.png' => '\ue405',
  26. );
  27.  
  28. // regression
  29. $i = $imageTags->length - 1;
  30. /*echo "Value of i:".$i.PHP_EOL;
  31.   Value of i:2*/
  32. while($i > -1) {
  33. //echo "Loop Counter :".$i.PHP_EOL;
  34.  
  35. $tag = $imageTags->item($i);
  36. /*print_r($tag);
  37.   echo PHP_EOL;*/
  38. $basename = basename($tag->getAttribute('src'));
  39. //echo $basename.PHP_EOL;
  40. if(isset($replacements[$basename])) { //echo "In a loop :".$i.PHP_EOL;
  41. //if the file name matches make replacements
  42. $r = $replacements[$basename];
  43. //echo "Value of r : ".$r.PHP_EOL;
  44. $text = $doc->createTextNode($r);
  45. /*print_r($text);
  46.   echo PHP_EOL;*/
  47. $tag->parentNode->replaceChild($text, $tag);
  48. /*print_r($tag);
  49.   echo PHP_EOL;*/
  50. }
  51. $i--;
  52. }
  53. //I think till here everything works fine but issue is in saving this newly generated HTML
  54.  
  55. // append to string container again
  56. $feed_status = '';
  57. foreach($doc->childNodes->item(0)->childNodes->item(0)->childNodes as $e) {
  58. $feed_status .= addslashes($doc->saveHTML($e));
  59. }
  60.  
  61. if($feed_status == '') {
  62. $feed_status = strip_tags($temp);
  63. }
  64. return $feed_status;
  65. }
  66.  
  67. $str_sample = '<img src="http://54.174.50.242/file/pic/emoticon/default/smile.png" alt="Smile" title="Smile" class="v_middle" /><img src="http://54.174.50.242/file/pic/emoticon/default/smile.png" alt="Smile" title="Smile" class="v_middle" /><img src="http://54.174.50.242/file/pic/emoticon/default/smile.png" alt="Smile" title="Smile" class="v_middle" />';
  68. $jumbo = string_sanitizer($str_sample);
  69. echo $jumbo;
  70. ?>
Success #stdin #stdout 0.02s 24432KB
stdin
Standard input is empty
stdout
\\ue056\\ue056\\ue056