Advertisement
lalatino

filtering DOM elements in PHP

Jul 21st, 2013
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.08 KB | None | 0 0
  1. <?php
  2. // http://stackoverflow.com/questions/17769436/how-to-delete-my-image-host-is-not
  3. $a="<img src='myhost.com/img.jpg'/><img src='hosta.com/img.jpg'/><img src='http://hostb.com/img.jpg'/><img src='hostc.com/img.jpg'/>";
  4. $myhost='myhost.com';
  5. $doc = new DOMDocument('1.0'); //http://www.php.net/manual/en/class.domdocument.php#domdocument.props.documentelement
  6. $doc->loadHTML($a);
  7. $images = $doc->getElementsByTagName('img');
  8. $regex = '§([\w]+://)?(\www\d*\.)?(.*)§i'; // http://www.php.net/manual/en/regexp.introduction.php
  9. $domElemsToRemove = array();
  10. foreach ($images as $image) {
  11.   $src = $image->getAttribute('src');
  12.   preg_match($regex,$src,$m);
  13.   //if ($m[1]=='') { $m[1] = 'http://'; } //optional
  14.   //var_export($m);
  15.   $pos = strpos($m[3], $myhost);
  16.   if ($pos === false || $pos>0) {
  17.      $domElemsToRemove[] = $image;
  18.   }
  19. }
  20. foreach( $domElemsToRemove as $domElement ){
  21.   $domElement->parentNode->removeChild($domElement); // http://www.php.net/manual/en/domnode.removechild.php#90292
  22. }
  23. $result = $doc->saveHTML();
  24. echo $result; // `<img src="myhost.com/img.jpg">`
  25. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement