我想使用 preg_replace 将字符串替换为具有相同模式但不同替换的数组


I want to use preg_replace to replace string with an array of identical patterns but different replacements

我想用相同的字符串替换字符串中的不同模式。替换是具有不同值的数组。

由于模式必须混合,我找不到解决方案。也因为preg_replace_all不存在。有人有想法吗?

我的代码:

$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是一个数组,具有不同的值,可以放在标签之间。

我遇到了类似的问题,我发现这个解决方案非常适合我。

在您的代码中:

$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_fill(0, count($images), '/type="(.*?)"/');
$artikelinhoud = preg_replace($imagesOld, $images , $artikelinhoud, 1);

希望这有帮助。

干杯!