0

在这里,我有我的正则表达式,它找到了 4chan 样式引用的所有实例(例如 >10、>59、>654564)并将其作为模式输出返回。我的问题是,是否可以插入我的模式输出...

\1

...进入 PHP 函数。

虽然这工作正常:

$a = preg_replace('`(>\d+)`i', '\1', $b);

我正在寻找的东西不是:

$a = preg_replace('`(>\d+)`i', '".getpost('\1')."', $b);
4

1 回答 1

2

看一下preg_replace_callback()函数。


示例 [php >= 5.3.0]使用Closure):

$callback = function($match) {
    return "{" . $match[1] . "}"; # do smth with match
};
$string = 'test1 >1 test2 >12 test3 >123 test4';
echo preg_replace_callback('~(>\d+)~i', $callback, $string);

将输出:

test1 {>1} test2 {>12} test3 {>123} test4

示例 [php < 5.3.0]

function replaceCallback($match) {
    return "{" . $match[1] . "}"; # do smth with match
};
$string = 'test1 &gt;1 test2 &gt;12 test3 &gt;123 test4';
echo preg_replace_callback('~(&gt;\d+)~i', 'replaceCallback', $string);
于 2013-01-15T20:09:45.663 回答