0

我想<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()但我需要用/遍历所有 IMG 标签,create_function()并用数组的不同图片替换。

$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

格雷茨,埃里克

4

0 回答 0