doujiu8826 2017-04-10 22:02
浏览 33
已采纳

试图调用preg_replace中的函数

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

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

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

How do I change $1 in preg_replace with a function?

  • 写回答

2条回答 默认 最新

  • donlih2986 2017-04-10 22:15
    关注

    If I understand you correctly, you want to execute user() function on each match? As mentioned in comments, use the preg_replace_callback() function.

    <?php
    $string = 'Hello [user=1]';
    $s = preg_replace_callback(
        '/\[user=(.*?)\]/is',
        function($m) {return user('textlink', $m[1]);},
        $string
    );
    echo $s;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?