我想用一个具有不同值的数组替换字符串中相同的<IMG>
标记。
所以IMG,IMG将是:
<IMG src="data:image/jpg;base64,/9j/4AA ....etc> , <IMG src="data:image/png;base64,/9j/4AA ....etc >
由于模式必须与preg_replace()
混合,并且因为preg_replace_all
不存在,我必须使用函数preg_replace_callback()
。
我有PHP版本5.2所以我必须在create_function()
中使用preg_replace_callback()
。
有没有人知道preg_replace_callback()
在这种情况下会是什么样子?
我无法理解create_function
是如何运作的。我必须做一个循环或什么?
我的代码preg_replace()
:这会使用数组的第一张图片更改所有IMG标记。但我需要使用preg_replace_callback()
/ create_function()
遍历所有IMG标记,并替换为数组的不同图片。
$artikelinhoud = $simpleXml->StandaardOplossing->attributes()->ArtikelInhoud;
$arrayImages = array();
preg_match_all('<!\[(CDATA)\[\s*(.*?)\s*\]\]>', $artikelinhoud, $arrayImages);
$images = array();
foreach ($arrayImages[2] as $key => $image) {
$images[$key] = 'src="data:image/jpg;base64,' . $image . '"';
}
$imagesOld = array();
$imagesOld[] = '/type="(.*?)"/';
$artikelinhoud = preg_replace($imagesOld, $images , $artikelinhoud);
变量$imagesold
始终相同。 $images
是一个数组,在标记之间放置不同的值。
数组$images
如下所示:
[0]=> string(26464) "src="data:image/jpg;base64,/9j/4A...etc
[1]=> string(23464) "src="data:image/jpg;base64,/9j/4A....etc
Greetz,Eric