Php 如何使用preg_match替换阵列
我有一段文字:Php 如何使用preg_match替换阵列,php,regex,Php,Regex,我有一段文字: foo{{bar}}foo{{bar}}foo 我有一个数组: $bar[0] = 'lol'; $bar[1] = 'kek'; 呃,我想发一条短信: foo lol foo kek foo 这: 不起作用。您可以通过迭代替换数组,使用limit参数来防止每次替换超过1个值,从而获得所需的结果: foreach ($bar as $b) { $string = preg_replace('/{{bar}}/usi', $b, $string, 1); } echo
foo{{bar}}foo{{bar}}foo
我有一个数组:
$bar[0] = 'lol';
$bar[1] = 'kek';
呃,我想发一条短信:
foo lol foo kek foo
这:
不起作用。您可以通过迭代替换数组,使用
limit
参数来防止每次替换超过1个值,从而获得所需的结果:
foreach ($bar as $b) {
$string = preg_replace('/{{bar}}/usi', $b, $string, 1);
}
echo $string;
输出:
foo lol foo kek foo
另一个想法将与您一起提出
- 要从回调函数内部修改
,它是$bar
&
- 为了让匿名回调函数工作,您可能需要PHPV5.4+
foo lol foo kek foo
$res = preg_replace_callback('/{{bar}}/', function($m) use (&$bar) {
return array_shift($bar);
}, $str);