PHP。使用create_function()函数preg_replace_callback,因为PHPversion 5.2

时间:2013-11-08 08:10:16

标签: php

我想用一个具有不同值的数组替换字符串中相同的<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

0 个答案:

没有答案