php中eregi_replace与preg_replace函数用法是以前php程序员经常纠结的函数。 现在php版本越来高,对一些老函数已经开始舍弃。preg_replace就是其中一个。 但是在我们修改老网站时还是要掌握一下。在php手册中都有这个两个函数的详细的介绍和用法,但是其中的参数和样式就未必清楚了,函数格式如下:
eregi_replace ( string pattern, string replacement, string string )
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] )
例如以下是UBB与YBB Code的用法
$str = eregi_replace(\"\\\\[url]http://([^\\\\[]*)\\\\[/url\\\\]\",\"\\\\1\",$str);
$text = preg_replace(\"!(\\[url=)(http|https|ftp)(://\\S+?)(\\])(.+?)(\\[/url\\])!i\", \"\\\\5\", $text)
preg_replace() 函数使用了 Perl 兼容正则表达式语法,通常是比 ereg_replace() 更快的替代方案。
形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本
n 可以从 0 到 99,其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目
例子:逆向引用后面紧接着数字的用法
$string = \"April 15, 2008\";
$pattern = \"/(\\w+) (\\d+), (\\d+)/i\";
$replacement = \"\\${1}1,\\$3\";
print preg_replace($pattern, $replacement, $string);
?>