我正在寻找一种方法来改变文本中我所有的img src。
示例:
$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\"/>"
我正在使用img的src对每个preg_match进行循环,但我不知道如何修改最终var中的src。
(抱歉我的英文:()
感谢。
编辑:
非常感谢您的回答
如果那时我怎么办,我只会修改以&#34开头的src;数据如:src =&#34;数据等
答案 0 :(得分:4)
另一种方法:
$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);
答案 1 :(得分:2)
我会做这样的事情:
$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);