这有点复杂,两个问题合二为一 - 1)如何从存储在数据库表中的文本中选择域名,以及 2)如何显示与该域名相关的消息。我想如果我先解释整个项目,我至少可以得到一些提示,引导我朝着正确的方向前进。
好的,想象一篇文章存储在数据库表中。这篇文章包括一些链接,如下所示:
http://www[.]mysite[.]com/Life
http://www[.]mysite2[.]com/World/Africa
http://www[.]google[.]com/help
http://en[.]wikipedia[.]com
(注意:我插入括号是因为论坛机器人显然认为我在发布指向其他网站的链接,而不是示例。)
如果我正在浏览 mysite.com,我想区分...
1) 链接到该站点上的其他页面(不需要消息) 2) 链接到相关网站(例如 mysite2.com) 3) 链接到“外国”网站(例如 Google) 4) 可能链接到特定网站,例如 Wikipedia
然后我想显示某种消息或警告,如下所示:
1) (无需留言) 2) “注意:您将离开 mysite.com 加入联盟网站)” 3) “注意:您将离开 MySite 系列网站。请再次访问!” 4)“警告:您正在关注维基百科的链接。请注意其文章可能不准确。”
所以,假设我查询我的数据库表并显示这样的文章......
回声$文本;
在该文本中搜索链接并选择任何域名的好方法是什么?那么我如何将该域名与交换机中的名称列表相匹配,如下所示?
switch($Domain)
{
case 'mysite[.]com':
// (Do nothing)
break;
case 'google[.]com':
// Display message
break;
case 'en.wikipedia[.]org':
// Display warning
break;
default:
break;
}
接下来,我必须弄清楚如何显示消息或弹出窗口。再三考虑,我可能应该将其作为一个单独的问题(如有必要)。这已经变成了一个很长的问题。
PS我找到了几篇解释如何使用正则表达式获取域名的帖子,比如这个: Simple regex for domain names
答案可能就在那里,但我还没有完全弄清楚如何将它们放在一起。谢谢。