2011-12-21 71 views
0

我正在嘗試製作一個whois檢查腳本。如何檢查變量是否包含使用PHP和jQuery的有效URL?

用戶可以提交一些域名地址,如果可用或不可用,可以獲得一條消息。

$_POST['url']是用戶提交的值。

我怎麼知道這個變量是否是域名地址?

它應該給true像域:

http://google.com 
www.google.com 
http://www.google.com 
google.com 

同爲JavaScript的(我使用AJAX驗證也)?

+0

的可能重複的[解析域名從URL在PHP(http://stackoverflow.com/questions/276516/parsing-domain-from-url-in-php) – Jon 2011-12-21 15:04:59

+0

@喬恩這是一個關於驗證,不是提取。 – 2011-12-21 15:15:17

+0

@Madmartigan我認爲我們不應該發送任何查詢,因爲有效的網址提交 – Jasper 2011-12-21 15:23:34

回答

6

如果你想檢查URL是有效的URL,你可以使用filter_var()FILTER_VALIDATE_URL過濾器。

filter_var($_POST['url'], FILTER_VALIDATE_URL) 
+1

不驗證「google.com」 – Jasper 2011-12-21 15:19:47

+1

和「www.google.com」 – Jasper 2011-12-21 15:21:04

+0

@Steve簡單修復,只需預先安裝http://如果沒有,則使用此功能。 – 2011-12-21 15:23:42

1

您可以使用下面的代碼:

例子:

$url = "http://0gate.com"; // you can use instead - $_POST['url'] 
if (!preg_match("/^[http|https]*[:\/\/]*[A-Za-z0-9\-_]+\.([A-Za-z]{3,4})+([\.A-Za-z]{3})*$/i", $url)) { 
    echo "The domain [not valid - false]"; 
}else{ 
    echo "The domain is [valid - true]"; 
} 
+3

哦,你的意思是[this](http://stackoverflow.com/a/276525/398242)?如果您要複製/粘貼答案,至少應歸因於您的來源。 – 2011-12-21 15:11:27

+0

如果您只需要主機,您可以使用'$ host = parse_url($ url,PHP_URL_HOST);' – Grexis 2011-12-21 15:13:22

+0

我只想幫忙。 – 2011-12-21 15:14:40

相關問題