0

首先我有这个代码

function Huemix_content_filter_qm($content){
    $item = '\?';
    $before='<span class="kindared">';
    $after='</span>';
    $content = preg_replace("|($item)|","$before$1$after",$content);
    $content = preg_replace("|(<[^>]+?)($before($item)$after)([^<]+?>)|","$1$3$4",$content);

    return $content;
}

add_filter('the_content', 'Huemix_content_filter_qm');

我可以理解整个代码,但这三个变量$1$3$4 可以告诉我它们是什么,因为我从来没有定义它们!

4

1 回答 1

0

手册

替换可能包含 \n 或(自 PHP 4.0.4 起)$n 形式的引用,后一种形式是首选。每个这样的引用都将被第 n 个带括号的模式捕获的文本替换。n 可以是 0 到 99,\0 或 $0 指的是整个模式匹配的文本。左括号从左到右(从 1 开始)计数,得到捕获子模式的个数。要在替换中使用反斜杠,它必须加倍(“\\”PHP 字符串)。

基本上,每个都代表正则表达式中括号中的匹配项。数字表示它是哪个匹配项。$1表示与(<[^>]+?)$3匹配($item)$4匹配匹配的内容([^<]+?>)

于 2013-11-12T22:07:20.980 回答