preg_replace src img из текста

Я ищу способ изменить мой источник текста из текста.

Пример :

$var = "Some text Some text Some text <img src=\"test1.jpg\"/> Some text Some text Some text Some text <img src=\"test2.jpg\"/>";

Я хотел бы изменить два src для значения в массиве:

$array = array("apple.jpg", "banana.jpg");

Тогда $ var должно выглядеть так:

"Some text Some text Some text <img src=\"apple.jpg\"/> Some text Some text Some text Some text <img src=\"banana.jpg\"/>"

Я делал цикл каждого preg_match с src из img, но я не знаю, как я могу изменить src в последнем var.

(Извините за мой английский 🙁 )

Поблагодарить.

РЕДАКТИРОВАТЬ :

Большое спасибо за ответ

Как я могу сделать, если тогда я бы изменил только src, которые начинаются с «data like: src =» data и т. Д.

2

Решение

Еще один способ сделать это:

$var = "Some text Some text Some text <img src=\"test1.jpg\"/> Some text Some text Some text Some text <img src=\"test2.jpg\"/>";
$array = array("apple.jpg", "banana.jpg");

$var = preg_replace_callback('#<img.+?src="([^"]*)".*?/?>#i', function($m) use (&$array) {
return str_replace($m[1], array_shift($array), $m[0]);
}, $var);
4

Другие решения

Я бы сделал что-то вроде этого:

$var = "Some text Some text Some text <img src=\"test1.jpg\"/> Some text Some text Some text Some text <img src=\"test2.jpg\"/>";
$replacements = array("apple.jpg", "banana.jpg");
$search_pattern = '/(?<=src=").*?(?=")/';
preg_match_all($search_pattern, $var, $matches);
$var = str_replace($matches[0], $replacements, $var);
2

По вопросам рекламы [email protected]