【发布时间】:2012-09-10 14:44:40
【问题描述】:
希望有人可以帮助我。我正在为我的论坛制作一个 PHP 插件。目标是每当有人在帖子中输入“亚马逊”这个词时,它就会自动将其变成亚马逊的链接。
我需要编辑保存在数据库中的文本,然后再将其转换为 HTML 并且仍为 BBCode 格式。
示例文本:
我真的很喜欢在亚马逊购物。这是一个链接:[URL="http:www.amazon.com"]链接到亚马逊[URL],这是一个图片:[img]http://images.amazon.com/amazon/image/zzz.jpg [/img]。这是另一个简单的链接:[url]http://www.amazon.net[/url]。请记住,亚马逊很棒!
--
在上面的例子中,只有“Amazon”的第一个和最后一个实例应该被匹配,所有其他的都需要被忽略。
我试图改变一个正则表达式,它除了在 HTML 标记中做类似的事情,但没有运气。
任何帮助将不胜感激。
【问题讨论】:
-
你能告诉我们你的尝试吗?
-
当然——我从以下内容开始,我用它在 HTML 中进行相同的编辑——
-
当然-我从以下内容开始,我用它在 HTML 中进行相同的编辑-
Amazon(?![^<]*(</a>|" />|width="\d+"|target="_blank"|follow">|rel="thickbox">|onclick="[\w .()]+"))我意识到这有点复杂,但实际上效果很好,因为使用的 HTML 始终是一致的.所以我把它分解成让它远离 HTML 标签的部分Amazon(?![^<]*(</a>|" />))我试着改变它Amazon(?![^\[]*(\[/url]|"])) -
这实际上相当不错,然后我添加了一些东西来阻止如果在 [img]
Amazon(?![^\[]*(\[/url]|"]|\[/img]))工作,这似乎有效......所以现在我不知道为什么它不起作用昨天对我来说。也许我回答了我自己的问题! :) -
如果你自己找到了,那就完美了!坚持有时会奏效! :) 不要忘记自己添加答案并将问题标记为已回答,以便其他人可以参考它,这可能是一个方便的 sn-p!