2011-03-01 45 views
2

我想檢查輸入的鏈接是否爲鏈接。驗證輸入是否爲鏈接

$s = $_POST['link']; 

檢查$ s是否是鏈接。

+0

通過 '鏈接' 你的意思是 'URL'? – jondavidjohn 2011-03-01 20:57:03

+0

什麼樣的鏈接?以這種格式:'http://google.com'或類似的? – KyleFarris 2011-03-01 20:58:12

+1

你是什麼意思的鏈接? file://// a /可以被認爲是一個鏈接,但它不是一個非常有用的鏈接。 – 2011-03-01 20:58:28

回答

2

您可以使用filter_var()

filter_var('example.com', FILTER_VALIDATE_URL); 
+0

我不知道這樣的事情存在。謝謝你......對於那些對更多細節感興趣的人:http://us.php.net/manual/en/function.filter-var.php – KyleFarris 2011-03-01 21:01:53

2

有幾種方法,但是最強大的是使用正則表達式來檢測URL。

像這樣將工作做好:

$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/'; 

$isLink = preg_match($pattern, $url); // Returns true if a link 
+0

對於那些沒有php 5的人來說,這似乎是一個合理的答案。他們的服務器或需要更強大的URL檢查與smott的答案相比。 – KyleFarris 2011-03-01 21:06:37

0
function isValidURL($url) { 
    return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); 
} 

if(!isValidURL($fldbanner_url)) { 
    $errMsg .= "* Please enter valid URL including http://<br>"; 
}