我有這樣的代碼,到目前爲止,它會檢查其是否具有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