Я ищу способ изменить мой источник текста из текста.
Пример :
$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 и т. Д.
Еще один способ сделать это:
$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);
Я бы сделал что-то вроде этого:
$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);