Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

本人研究出来的【清除贴子内容里的BBCODE标签】只需一句代码!

[复制链接]
wenshuang 发表于 2005-11-25 15:23:21 | 显示全部楼层 |阅读模式
因程序需要,本人需清除贴子内容中的所有BBCODE标签。这任务当然只有正则表达式能够胜任,但是研究了许久,却老是出错个不停,达不到目的。。。。。后睡了一午觉,起来后灵感大发,终于找到了100%有效的正则表达式,写成PHP语句,经实验有效,而且理论上可以解释得通。在此不敢独享,与大家分享分享。

这个语句是:

  1. $message=preg_replace('/\[[^\[\]]{1,}\]/','',$message);
复制代码


我主要讲讲其中的

  1. /\[[^\[\]]{1,}\]/
复制代码


这个正则表达式,它表示的意思是
以“[”开头,以“]”结尾,其中包含一个或以上 除了“[”和“]”以外的字符。
可能不太好懂,你仔细分析就会发现,这正是最简单、最完美的匹配BBCODE标签的方法,即使像
  1. [url=xxxxx]yyyy[/url]或[img=5,20]abc.gif[/img]
复制代码

这样复杂的标签也能完美匹配。

再用preg_replace把符合这个表达式的字串替换为空,即可达到清除目的。

欢迎大家就此讨论。

发现。。。这个代码用于改进现在的WAP功能应该不错吧?
目前的WAP浏览。。。。。。。全是BBCODE代码。。。。。。。。。不是纯文字的,很不爽,而且
浪费我的手机流量费呀

[ 本帖最后由 wenshuang 于 2005-11-26 15:30 编辑 ]
爱好者 发表于 2005-11-25 15:37:11 | 显示全部楼层
先支持个
回复

使用道具 举报

lu5266 发表于 2005-11-25 15:43:49 | 显示全部楼层
幸好不懂正则

哈哈

头疼
回复

使用道具 举报

 楼主| wenshuang 发表于 2005-11-25 17:06:01 | 显示全部楼层
不知有没有人需要。
回复

使用道具 举报

tomsina 发表于 2005-11-25 22:10:04 | 显示全部楼层
好,也许哪一天我也会用到的
回复

使用道具 举报

oytktk 发表于 2005-11-25 22:16:24 | 显示全部楼层
这个汗啊....不管37=21,把全部的[][][[[][]]][][][之类的都干掉了......那要是[大]家[好]....不是也完完啦?



其实有别的办法可以搞的定哦~

[ 本帖最后由 oytktk 于 2005-11-25 22:18 编辑 ]
回复

使用道具 举报

 楼主| wenshuang 发表于 2005-11-25 22:40:24 | 显示全部楼层
原帖由 oytktk 于 2005-11-25 22:16 发表
这个汗啊....不管37=21,把全部的[][][[[][]]][][][之类的都干掉了......那要是[大]家[好]....不是也完完啦?



其实有别的办法可以搞的定哦~


你用正则的话,就这个办法最简单了

对于你说的情况,你能想出更准确的正则不?:)

[ 本帖最后由 wenshuang 于 2005-11-25 22:41 编辑 ]
回复

使用道具 举报

oytktk 发表于 2005-11-25 22:42:04 | 显示全部楼层
原帖由 wenshuang 于 2005-11-25 22:40 发表


你用正则的话,就这个办法最简单了
要不你一个个代码去替换(img url .....)?。。。。。。。。。。


这个当然简单...但有些不是BBCODE也会被你KILL掉吧~?
回复

使用道具 举报

 楼主| wenshuang 发表于 2005-11-25 22:49:17 | 显示全部楼层
原帖由 oytktk 于 2005-11-25 22:42 发表


这个当然简单...但有些不是BBCODE也会被你KILL掉吧~?


如果要做到精确打击,那就穷举可用的BBCODE代码一个一个替换罗。
我这个主要是简单,效率高,速度也快。
一般正文里用[xxx]的机会应该不多吧。。。。。。
回复

使用道具 举报

 楼主| wenshuang 发表于 2005-11-25 22:50:20 | 显示全部楼层
发现这个的一个用处。手机WAP里用。现在的WAP浏览功能在手机里看起来全是BBCODE代码,很不爽。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 04:59 , Processed in 0.029595 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表