php用正则写一个UBB文本编辑器
我们来看一下UBB编辑器。这是网站当中经常用到的文本处理技术。因为使用UBB文件编辑器,我指定的格式才能存在。我不指定的格式,用户是无法在网站中展现的。
我们来看看效果:
<?php $string='[b]为你写诗[/b] [i]为你做不可能事[/i] [u]哎呀,哥不是写情诗[/u] [color=Red]哥是在说歌词[/color] [size=7]吴克群[/size] [qq]123123123[/qq]'; //匹配UBB字符 $pattern=array( '/\[b\](.*)\[\/b\]/i', '/\[i\](.*)\[\/i\]/iU', '/\[u\](.*?)\[\/u\]/i', '/\[color=(.*?)\](.*?)\[\/color\]/', '/\[size=(\d)\](.*?)\[\/size\]/', '/\[qq\](\d{5,12})\[\/qq\]/', ); //需要替换的UBB字符 $replace=array( '<b>\1</b><br />', '<i>\1</i><br />', '<u>\1</u><br />', '<font color="\1">\2</font><br />', '<font size="\1">\2</font><br />', '<a href="http://wpa.qq.com/msgrd?V=1&Uin=\1&Site=[Discuz!]&Menu=yes" target="_blank"><img src="http://wpa.qq.com/pa?p=1:\1:1" border="0"></a>', ); //使用正则匹配$string,将$string当中的值变为$replace的效果 $ubb=preg_replace($pattern,$replace,$string); echo $ubb; ?>
实现的更高级,你可以让用户传过来的是form表单中的结果,让用户传值过来。
你转换输出成UBB格式。
下一章节中我们学习了文件系统的知识,再跟大家讲解更加有趣的:网页采集器。