Нужна помощь в регулярных выражениях в PHP 5 - PullRequest
1 голос
/ 23 февраля 2011

Хорошо.По общему признанию, я не лучший в работе с регулярными выражениями.То, что я делаю, - это очистка экрана, затем попытка исправить значения img src во встроенных изображениях, чтобы они указывали на исходный домен.Это регулярное выражение, в котором я пробовал варианты (слишком много, чтобы перечислить - вот текущее):

preg_match_all('/<img\b[^>]*>/i', $html, $images);  

В результате мы заменим все < на />.Что мне нужно сделать, это просто вернуть (в настоящее время) пять изображений на странице в массиве, чтобы я мог работать с ними, чтобы исправить их значения src, а затем записать их обратно в $ html, который установлен в началефайл:

$html = file_get_contents($target_url);

1 Ответ

5 голосов
/ 23 февраля 2011

По сути, не делайте этого с регулярным выражением. Вы можете проанализировать HTML с регулярным выражением, но это почти наверняка не стоит усилий.

Сделайте это с помощью настоящего анализа DOM, используя класс DOMDocument:

$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
    $image->setAttribute('src', 'http://example.com/' . $image->getAttribute('src'));
}
$html = $dom->saveHTML();
...