2013-04-01 48 views
-2

我有這樣的功能:如果是網址 - 的preg_match PHP

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

而這個函數返回我只是URL沒有WWW,和我不知道如何寫這個正則表達式來找到我的所有網址以www。或加www ,或與www和沒有http/s。

TNX!

+0

你應該使用'parse_url()'http://php.net/manual/en/function.parse-url.php – Cfreak

+0

顯示一些樣品的輸入和預期的輸出。你的解釋很難理解。 – mario

回答

1

正如其他人所指出的那樣,你是用PHP的過濾器function_var更好的癥結。 但因爲你永遠無法有足夠的正則表達式的做法,這裏是該解決方案的初始版本:

$regex = '|^(?:https?://)?[a-z0-9%-]+(?:\.[a-z0-9%-]+)*(?::[0-9]+)?(/[a-z0-9%-]+)?$|i' 

這仍然需要進行一些微調,並不目前不佔所有允許的URL字符,但它足以朝正確的方向前進。

+0

不喜歡的工作,我想,這不是給我只是鏈接.. – nirbe

+0

確定它的工作! TNX! – nirbe