日志

PHP中的正则替换一例

发布者:星野天河  发布时间:08-06-23  查看次数:25 评论数:0
标签:PHP(23)   正则(2)  

最近老朱在做flex日志发布系统,需要在后台用PHP生成XML,本来是一个实习生负责的不过好像和我做没啥区别。

生成XML这块非常简单,按老朱给的格式输出相应的字符串就行了,值得注意的只是要加下行
header("Content-type: text/xml; charset=utf-8");
表示要输出的是个xml文件而不是通常的html格式。

还有一个要求是需要在所有的链接中插入一个span标签,如:
<a href="1.php">页面</a>

全要改成

<a href="1.php"><span class="link">页面</span></a>的形式。

如果用字符串函数去做的话非常麻烦而且准确度估计很勉强,用preg_match_all可以提出所有的链接文本但是却不好替换回去,查了一下资料,用preg_replace能很好的解决这个问题。

PHP代码
  1. $str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/"'\1<span class="link">\2</span>\3'$str);  

 其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是</a>

然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?

评论列表

评论表单

妮称