根据 url 值更改 bbcode
我使用 preg_replace 和一个数组来遍历我的 bbcode 并在发布新闻条目时进行更改。
例如
$bbcode = array (
"/\[url\=(.*?)\](.*?)\[\/url\]/is" => "<a href='$1' target='_blank'>$2</a>"
);
,当我从包含文本和 bbcode 的数据库(在本例中为 $newsPost)中提取数据时,我会执行此操作。
$newsPost = preg_replace(array_keys($bbcode), array_values($bbcode), $newsPost);
现在,我想要查明 $1 的值是否包含我的域,目标应该是“top”,如果不包含,它应该是空白。
因此,如果我们有[url=http://www.mydomain.com]访问我们的页面[/url]
。然后它会转换为 visit our page
,其他任何内容都会有 target =“_blank”
。
有什么想法吗?
提前致谢!
I'm using preg_replace with an array to go through my bbcode and make the change when a news entry is posted.
For example
$bbcode = array (
"/\[url\=(.*?)\](.*?)\[\/url\]/is" => "<a href='$1' target='_blank'>$2</a>"
);
So then when I pull data from the database (in this example $newsPost) which contains the text and bbcode, I do this.
$newsPost = preg_replace(array_keys($bbcode), array_values($bbcode), $newsPost);
Now, what I'd like is to find out if the value of $1 contains my domain, the target should be "top" and if not, it should be blank.
So if we have [url=http://www.mydomain.com]visit our page[/url]
. then it's transformed to <a href="http://www.mydomain.com" target="top">visit our page</a>
and anything else will have target="_blank"
.
Any ideas?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编辑/固定
str_replace()
来处理域名中的点\ \
在字符串中),但我已经撤消了这个,因为你已经说过它首先对你有用。这个怎么样?
如果这对您有用,请注意:不要将
$mydomain
设置为www.domain.tld
,而是将其设置为domain.tld
,这样您就可以捕获所有子域。您甚至可以使用多个域来完成此操作,如下所示:
EDITED/FIXED
str_replace()
to deal with dots in domain names\\
in the string) but I have undone this as you have said it was working for you in the first place.How about this?
If that will work for you, a caveat: Don't set
$mydomain
towww.domain.tld
, set it todomain.tld
, so you catch all subdomains.You could even do it with multiple domains like this: