正则表达式子模式使用函数(1 位领导批示)
- 2009-08-15
- 分类:PHP&MySql
- 作者:银子
- 1,714 位领导视察
原问题地址: http://bbs.blueidea.com/thread-2944055-1-1.html
比较正确的解决方法:
1 2 3 4 5 | <?php $str="[thunder]ftp://3gset.cn:3gset@down.3gset.cn/谢谢你的温柔-S.H.E_飞轮海.mv.320x240.avi[/thunder]"; $str = preg_replace("/\[thunder\](.[^\[]*)\[\/thunder\]/ie","'<a href=\"thunder://'.base64_encode('\\1').'\">\\1</a>'", $str); echo htmlspecialchars($str); ?> |
这段代码的重点是使用了修饰符 e
正则表达式的修饰符 e 是这么解释的:
如果设置这个修饰符, preg_replace() 将在替换值里进行正常的涉及到 的替换, 等同于在 PHP 代码里面一样, 然后用于替换搜索到的字符串.
当然也可以用 preg_match 匹配后重新组合
1 2 3 4 5 6 | <?php $str="[thunder]ftp://3gset.cn:3gset@down.3gset.cn/谢谢你的温柔-S.H.E_飞轮海.mv.320x240.avi[/thunder]"; preg_match("/\[thunder\](.[^\[]*)\[\/thunder\]/i", $str, $match); $str = '<a href="thunder://' . base64_encode($match[1]) . '" target="_blank">' . $match[1] . '</a>'; echo $str; ?> |
相关文章
NOTE:本博内容大部分为原创,转载请注明出处。
永久链接:http://www.zdyi.com/subschema-function/422


























请领导指示
Additional comments powered by BackType