В последнее время это началось с версии 6.0.4, я не думаю, что это очень хорошее решение, но вот что мне помогло. Закрыть Visual Studio
Это not задание для регулярного выражения. Это работа для парсера XML / DOM.
Я бы дал DOMDocument выстрел.
$DOM = new DOMDocument;
$DOM->loadHTML($html);
$imgs = $DOM->getElementsByTagName('img');
foreach($imgs as $img){
$src = $img->getAttribute('src');
if(strpos($src, 'http://sitename.com/path/') !== 0){
$img->setAttribute('src', "http://sitename.com/path/$src");
}
}
$html = $DOM->saveHTML();
Это не задание для регулярного выражения. Это работа для парсера XML / DOM.
blockquote>Нет, это не так. Если вы просто хотите добавить префикс к каждому атрибуту src, лучше использовать простые строковые функции и даже не думать о синтаксическом анализе xml, regex или dom ...
$str = str_replace('<img src="', '<img src="http://prefix', $str);
Вы можете очистить неправильные ссылки (уже абсолютные) после
$str = str_replace('<img src="http://prefixhttp://', '<img src="http://', $str);
Не взорвите свой код с помощью regexp / dom, если вы можете его избежать.
<img class='animals' src='puppies.jpg' />
?
– Rocket Hazmat
30 April 2012 в 20:15
str_replace('prefixprefix', 'prefix', $str)
str_replace('http://prefix/http://', 'http://', $str)
не взорвать ваш код с помощью regex / dom, если вам не нужно ...
– sbstjn
1 May 2012 в 01:38
src
, которые уже являются абсолютными, для OP. – Mathletics 30 April 2012 в 20:12