我尝试从字符串中替换字符并放入其他字符,为此使用 preg_replace_callback 函数,问题是此函数更改原始文本的顺序并显示不同的结果
例如,如果字符串 it´s :
大家好 [1-2-3] 这是一个测试 [4-5-6-7-8] --- > 原文
脚本搜索 [ ] 并用 [ ] 将此内容与其他文本分开,但按我放在这里的方式显示:
1-2-3 4-5-6-7-8 大家好,这是一个测试 --- > 不好的结果
当正确的顺序是第一个没有 [ ]
大家好 1-2-3 这是一个测试 4-5-6-7-8
我创建的脚本:
<?php
$text = " This is a test [gal~ruta~100~100] This is other test [gal~ruta2~100~100]";
function gal($matches)
{
global $text;
$exp=explode("~",$matches[1]);
$end=str_replace($matches[1],$a,$text);
if ($exp[0]=="gal")
{
$a="".$exp[1]."".$exp[2]."".$exp[3]."";
echo $a;
}
}
echo preg_replace_callback(
"/\[(.*?)\]/",
"gal",
$text);
?>
谢谢大家的帮助