我有这样的代码,到目前为止,它会检查其是否具有HTTP://在它的面前,如果如“google.co.uk”被输入,它会在它的前面添加http://。彻底检查输入的字符串是一个URL
但是它并没有得到解决,当人们穿上,说:“你好”,它会再添加http:在它前面//并将其视作一个URL。我需要一些能够检查到底是否有后缀的东西。
function checkURL($url) {
if (empty($url))
{
return $url;
}
else {
if (preg_match('[a-z0-9-]i', $url)) {
return $url;
} else {
if (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url)) {
return $url;
}
else {
$url = 'http://'.$url.'';
return $url;
}
}
然后又是简单的检查,一旦它返回。
请帮忙!
你已经占了用户在其中输入一个查询字符串的URL的情况呢? – 2011-12-27 17:45:03
不,为什么会这样呢? – HarryBeasant 2011-12-27 18:16:32
,因为实际上,链接引用与TLD结束 - 埃杜,.COM,.org等,这是您要验证后缀;然而,查询字符串会在该逻辑中引发一个问题,因为这意味着URL不会以TLD结束。因此,您可以检查后缀,但不能在文本的末尾。或者,您可以使用“?”分解文本作为分隔符,然后您可以应用您的逻辑。这应该也 – 2011-12-27 18:21:56