试图调用preg_replace中的函数

时间:2017-04-10 22:02:56

标签: php regex preg-replace

$string = 'Hello [user=1]';

$bbc = array('/\[user=(.*?)\]/is');

$replace = array(user('textlink',$1));
$s = preg_replace($bbc , $replace, $string);
echo $s

如何使用函数更改$1中的preg_replace

2 个答案:

答案 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