PHP删除以http://或www开头并以.com / .ca / .net等结尾的字符串

时间:2014-03-20 17:23:00

标签: php

我发现了一堆链接,显示如何使用str_replace()删除任何内容,但我想审查帖子上的链接。更好的是,以某种方式检测用户何时尝试发布链接并且不让他们提交表单直到他们删除它

我不确定在str_replace()内写什么或者如何检查页面是否插入了网址

感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

您需要使用preg_match()检查正则表达式的提交字符串。

preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $string)

答案 1 :(得分:1)

这可以通过正则表达式来实现。一种模式比较

像这样:

$pattern = "/(?i)(<a([^>]+)>(.+?)<\/a>)/";
$output = preg_replace ( $pattern , "Censured link",$inputText);

//assuming $inputText contains your input

这将用文本Censured链接

替换所有锚点

答案 2 :(得分:0)

你可以使用这些功能(稍微容易一点)

$link1="http://www.asda.com";
$link2="http://www.asda.net";
$link3="http://www.asda.ca";
function startsWith($to, $find)
{
    return $find=== "" || strpos($to, $find) === 0;
}
function endsWith($to, $find)
{
    return $find=== "" || substr($to, -strlen($find)) === $find;
}

var_dump(startsWith($link1, "https")); // true
var_dump(endsWith($link2, "au")); 
...so on