我需要为php preg_match创建一个正则表达式,用于执行以下匹配。
这是函数
function isValidURL($url,$searchfor){
return preg_match("/'b.$searchfor 'b/i", $url);
}
我需要在下面找到somedomain.com进入函数
的可能字符串<>之前http://www.somedomain.comhttp://somedomain.comhttp://www.somedomain.com/anythinghttp://somedomain.com/anythinghttp://anything/somedomain.com之前所以我需要一个正则表达式来做这个
<>之前http://www.somedomain.com将匹配http://somedomain.com将匹配http://www.somedomain.com/anything将匹配http://somedomain.com/anything将匹配之前,
<>之前http://anything/somedomain.com不匹配使用parse_url()
如何?
if( strpos(parse_url($url, PHP_URL_HOST), 'somedomain.com') !== false )
{
// hostname contains 'somedomain.com'.
}
试试这个…
$url = "http://komunitasweb.com/";
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):? (d+)?/?/i', $url)) {
echo "Your url is ok.";
} else {
echo "Wrong url.";
}
复制自谷歌搜索"php url正则表达式"。看看谷歌,很棒的工具。: -)
所需要的只是URL开头的占位符。排除带有否定字符类[^/]
的斜杠可能已经足够了:
function isValidURL($url,$searchfor){
return preg_match("~http://[^/'s]*'.$searchfor(/|$|'s)~i", $url);
}
注意,这在某些边缘情况下会失败,比如user:pw@
对。不知道你的$searchfor
是否已经包含了顶级域名。别忘了加preg_quote