Возможный дубликат:
Динамически заменить атрибуты «src» всех тегов <img>
Смешная история. Я опубликовал этот вопрос совсем недавно, но вместо того, чтобы получить что-то, что мог, вы знаете, использовать, все, что у меня было, было много догм о том, как использовать регулярное выражение для анализа HTML. Итак, здесь идет снова.
У меня есть HTML и вы хотите заменить атрибуты «src» всех тегов img, чтобы они указывали на копии идентичных изображений (хотя и с разными именами файлов) на другом хосте.
Например, учитывая эти три тега
<IMG SRC="../graphics/pumpkin.gif" ALT="pumpkin"> <IMG BORDER="5" SRC="redball.gif" ALT="*"> <img alt="cool image" src="http://img.ruphp.com/php/pic.jpg"/>
Я бы хотел, чтобы они были заменены на
<IMG SRC="http://myhost.com/cache/img001.gif" ALT="pumpkin"> <IMG BORDER="5" SRC="http://myhost.com/cache/img002.gif" ALT="*"> <img alt="cool image" src="http://myhost.com/cache/img003.jpg"/>
Я пытаюсь использовать PHP Simple HTML DOM Parser , но я не получаю его.
include 'simple_html_dom.php'; $html = str_get_html('<html><body> <IMG SRC="../graphics/pumpkin.gif" ALT="pumpkin"> <IMG BORDER="5" SRC="redball.gif" ALT="*"> <img alt="cool image" src="http://img.ruphp.com/php/pic.jpg"/> </body></html>');
Что мне делать дальше?
Если вы хотите пойти по пути DOMDocument ():
$dom=new DOMDocument(); $dom->loadHTML($your_html); $imgs = $dom->getElementsByTagName("img"); foreach($imgs as $img){ $alt = $img->getAttribute('alt'); if ($alt == 'pumpkin'){ $src = 'http://myhost.com/cache/img001.gif'; } else if ($alt== '*'){ $src = 'http://myhost.com/cache/img002.gif'; } else if ($alt== 'cool image'){ $src = 'http://myhost.com/cache/img003.jpg'; } $img->setAttribute( 'src' , $src ); }
У вас есть ответ:
// Create DOM from string $html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>'); $html->find('div', 1)->class = 'bar'; $html->find('div[id=hello]', 0)->innertext = 'foo'; echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>
Конечно, вам нужно будет изменить имена тегов / атрибутов / значений в соответствии с вашими конкретными потребностями.