ereg_replace() 函数和 ereg() 类似,它的作用是 “以区分大小写的方式替换文本” ,它的原型如下:
[PHP] 纯文本查看 复制代码 string eregi_replace ( string $pattern , string $replacement , string $string )
ereg() 只是查找,而 ereg_replace() 不但查找而且还进行替换。
示例代码:
[PHP] 纯文本查看 复制代码 <?php
$text = "This is a link to [url]http://www.groad.net/[/url] and [url]http://www.qunet.info/[/url] .";
echo ereg_replace("http://([a-zA-Z0-9./-]+)", "<a href=\"\\0\">\\0</a>", $text);
?>
运行输出:
![]()
输出的样式是因为发生了替换的结果。查看页面源文件也可以看到:上面程序中,我们从 $text 中查找 http://([a-zA-Z0-9./-]+) 符合这种的样式,然后用 <a href=\"\\0\">\\0</a> 样式进行替换。
在 <a href=\"\\0\">\\0</a> 中需要说明 2 点:
1. 在替换样式中用到了双引号,在双引号需要用反斜线进行转义,使之成为普通的双音符号,而不具特殊含义。
2. \\0 是什么?
这是 PHP 的字符串替换功能的一个特性,该特性允许引用小括号内的字串(如符合 ([a-zA-Z0-9./-]+) 这个小括号内正则规律的字串 ),在引用这些字串时,需要用 \\0, \\1, \\2 这种形式。其中,\\0 表示引用整个字符串,\\1 表示引用第 1 个成功匹配的字串,如此类推...最多可以引用 9 个。再看下面的示例代码:
[PHP] 纯文本查看 复制代码
<?php
$url = "groad ([url]http://www.groad.net[/url])";
$url = ereg_replace("http://([a-zA-Z0-9./-]+)([a-zA-Z/]+)", "<a href=\"\\0\">\\0</a>", $url);
echo $url;
?>
运行输出: |