$string = 'Hello [user=1]';
$bbc = array('/\[user=(.*?)\]/is');
$replace = array(user('textlink',$1));
$s = preg_replace($bbc , $replace, $string);
echo $s
如何使用函数更改$1
中的preg_replace
?
答案 0 :(得分:3)
如果我理解正确,你想在每场比赛中执行user()
功能吗?如评论中所述,请使用preg_replace_callback()
函数。
<?php
$string = 'Hello [user=1]';
$s = preg_replace_callback(
'/\[user=(.*?)\]/is',
function($m) {return user('textlink', $m[1]);},
$string
);
echo $s;
答案 1 :(得分:1)
您可以使用preg_replace_callback_array
:
$string = 'Hello [user=1]';
$bbc = array(
'/\[user=(.*?)\]/is' => function ($m) {
return user('textlink',$m[1]);
});
$s = preg_replace_callback_array($bbc, $string);
echo $s;
请参阅PHP demo。
您可以将模式和回调添加到$bbc
。