尝试在 preg_replace 中调用一个函数

Trying to call a function inside preg_replace

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

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

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

如何使用函数更改 preg_replace 中的

您可以使用 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

如果我没理解错的话,你想在每场比赛中执行 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;