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