日志
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代码
- $str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/", '\1<span class="link">\2</span>\3', $str);
其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是</a>
然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?
评论列表
评论表单
妮称

