fork download
<?php
  function string_sanitizer($feed_status) { 
    /*echo $feed_status.PHP_EOL;
<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" />*/

    $temp = $feed_status;
    $doc = new DOMDocument();
    @$doc->loadHTML($feed_status, LIBXML_HTML_NODEFDTD);
    $imageTags = $doc->getElementsByTagName('img');
    /*print_r($imageTags);
      echo PHP_EOL;        
    DOMNodeList Object
    (
        [length] => 3
    )*/
    $replacements = array(
      'evilgrin.png' => '\ue404',
      'grin.png' => '\ue415',
      'happy.png' => '\ue057',
      'smile.png' => '\ue056',
      'surprised.png' => '\ue107',
      'tongue.png' => '\ue105',
      'unhappy.png' => '\ue403',
      'waii.png' => '\ue407',
      'wink.png' => '\ue405',
    );

    // regression 
    $i = $imageTags->length - 1;
    /*echo "Value of i:".$i.PHP_EOL;
      Value of i:2*/     
    while($i > -1) { 
      //echo "Loop Counter :".$i.PHP_EOL;

      $tag = $imageTags->item($i);
      /*print_r($tag);
      echo PHP_EOL;*/
      $basename = basename($tag->getAttribute('src'));
      //echo $basename.PHP_EOL;
      if(isset($replacements[$basename])) { //echo "In a loop :".$i.PHP_EOL; 
        //if the file name matches make replacements
        $r = $replacements[$basename];
        //echo "Value of r : ".$r.PHP_EOL;
        $text = $doc->createTextNode($r);
        /*print_r($text);
        echo PHP_EOL;*/ 
        $tag->parentNode->replaceChild($text, $tag);
        /*print_r($tag);
        echo PHP_EOL;*/
      }
      $i--;
    }
    //I think till here everything works fine but issue is in saving this newly generated HTML

    // append to string container again
    $feed_status = '';
    foreach($doc->childNodes->item(0)->childNodes->item(0)->childNodes as $e) {
      $feed_status .= addslashes($doc->saveHTML($e));
    }   

    if($feed_status == '') {
      $feed_status = strip_tags($temp);        
    }
    return $feed_status;
  }

$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" />';
$jumbo = string_sanitizer($str_sample);
echo $jumbo;
?>
Success #stdin #stdout 0.02s 24432KB
stdin
Standard input is empty
stdout
\\ue056\\ue056\\ue056