一个PHP解释与the_content过滤器

时间:2013-11-12 22:06:31

标签: php wordpress preg-replace

首先我有这个代码

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 任何人都可以告诉我他们是什么,因为我没有定义他们!

1 个答案:

答案 0 :(得分:0)

来自the manual

  

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

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