2016-10-26 3 views
-2

Я сделал расширение chrome, которое читает содержимое страницы и публикует ее на моем веб-сервере. Проблема в том, что мне нужно изменить атрибут src из источника html на адрес моего веб-сайта.Заменить атрибут src изображения из содержимого HTML

Едет в мой код (это просто пример):

$html = '<p style="font-size: 12px; font-family: Tahoma; text-align: center;"><img style="font-size: 12px; font-family: Tahoma;" src="http://sga.ufmg.br/images/uploads/13212/MSI_civil_01.png" alt="" width="338" height="367"></p>'; 

$img = 'http://sga.ufmg.br/images/uploads/13212/MSI_civil_01.png'; 

$result = str_replace($img, 'http://asrespostazzz.com.br/questoes_img/' . $new_img_name, $html); 

Это просто не будет работать .... :(

Я пытался использовать preg_replace, но дал мне ошибку:

Message: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash

+0

ошибка не поддерживает то, что вы отправили для кода или как вы его использовали. Повторите руководство (ы). –

+0

это работает для меня, src всегда одно и то же? –

ответ

0

Если у вас есть один элемент изображения в вашем HTML это preg_replace будет работать:

preg_replace('/<img\ [^>]+src="([^"]+)"/', 'http://asrespostazzz.com.br/questoes_img/' . $new_img_name, $html); 

Но если у вас есть несколько элементов изображения, вам нужно построить массив с заменами (я не знаю, подходит ли это для вашего случая ... вам будет полезна дополнительная информация). Таким образом, ваш код preg_replace будет выглядеть так:

$replacements = [ 
     'http://asrespostazzz.com.br/questoes_img/' . $new_img_name, 
     ..... 
]; 
preg_replace('/<img\ [^>]+src="([^"]+)"/', $replacements, $html); 
Смежные вопросы