preg_replace 来自文本的 src img

preg_replace src img from text

我正在寻找一种方法来从文本中更改所有 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。

(对不起我的英语:( )

谢谢。

编辑:

非常感谢您的回答

如果那样的话,我该怎么办,我只想修改以 "data like : src="data 等开头的 src

我会这样做:

$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);

另一种方法:

$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);