Non*_*der 9 html php url-parsing input-sanitization
我有一个简单的留言板,让我们说:mywebsite.com,允许用户发布他们的消息.目前,董事会使所有链接都可以点击,即.当有人发布以:
http://, https://, www., http://www., https://www.
Run Code Online (Sandbox Code Playgroud)
然后脚本自动将它们作为链接(即添加A href ..标签).
问题 - 垃圾邮件太多了.所以我的想法是自动删除上面的http | s/www,这样这些就不会成为"可点击的链接".但是,我想让海报链接到我网站中的页面,即.当消息包含mywebsite.com的链接时,不要删除http | s/www.
我的想法是创建两个数组:
$removeParts = array('http://', 'https://', 'www.', 'http://www.', 'https://www.');
$keepParts = array('http://mywebsite.com', 'http://www.mywebsite.com', 'www.mywebsite.com', 'http://mywebsite.com', 'https://www.mywebsite.com', 'https://mywebsite.com');
Run Code Online (Sandbox Code Playgroud)
但我不知道如何正确使用它们(可能str_replace可能会以某种方式工作).
以下是发布之前和发布之后的$ message示例:
$ message之前:
你好世界,感谢http:// mywebsite/about我学到了很多东西.我发现你有http://www.bing.com,https://google.com/search和一些www.spamwebsite.com/refid=spammer2.
$ message后:
你好世界,感谢http://mywebsite.com/about我学到了很多东西.我在bing.com,google.com/search和一些spamwebsite.com/refid=spammer2上找到了你.
请注意,用户在帖子表单中输入明文,因此脚本只能使用此明文(而不是href等).