我看到了this website中的一些代码:
function link($text){
return preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '<a href="$1">$1</a>', $text);
}
$0
和$1
是什么意思?它们是常规变量,还是具有特殊含义?
答案 0 :(得分:3)
$0
或$1
用于preg_replace
功能;
preg_replace ($pattern , $replacement , $subject)
replacement
可能包含形式为\ n或(自PHP 4.0.4起)$ n的引用,后一种形式是首选形式。每个这样的引用将被第n个带括号的模式捕获的文本替换。 n可以是0到99,\ 0或$ 0是指整个模式匹配的文本。
来自php doc:http://docs.php.net/manual/en/function.preg-replace.php
答案 1 :(得分:0)
在提供的示例URL中,$ 1指的是preg_replace中第一个捕获的子模式。请参阅以下文档:http://us1.php.net/preg_replace
每个此类引用都将被第n个捕获的文本替换 括号模式。 n可以是0到99,而\ 0或$ 0是指 整个模式匹配的文本。计算开括号 从左到右(从1开始)获得的数量 捕获子模式。