Regex для изменения формата всех атрибутов img src - PullRequest
1 голос
/ 28 июня 2010

Допустим, у меня есть HTML-разметка со множеством тегов img, которые выглядят так:

<img src="data/images/original/3.png" alt="" />

Мне нужно регулярное выражение, которое бы изменило все изображения, чтобы иметь такие пути:

<img src="/utils/locate-image?path=data%2Fmedia%2Fimages%2Foriginal%2F3.png" alt="" />

Я не очень хорошо разбираюсь в регулярных выражениях, поэтому я был бы признателен за пример кода, который может это сделать?

Ответы [ 2 ]

6 голосов
/ 28 июня 2010

Не используйте регулярные выражения для этого. Собственный синтаксический анализатор PHP DOM должен идеально подходить для работы.

$dom = new DOMDocument;
$dom->loadHTML('<img src="foo" alt=""/>');
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
    $image->setAttribute('src', 'bar');
    echo $dom->saveXML($image);
}

эхо <img src="bar" alt=""/>

3 голосов
/ 28 июня 2010

Не используйте регулярные выражения для этого.Парсер Simple HTML DOM должен идеально подходить для этой работы.

Это должно быть так просто:

foreach($html->find('img') as $e) {
  $e->src = "insert modified src here";
}

echo $html;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...