2013-01-15 108 views
1

我有一個表單來獲取用戶的一些URL。檢查URL是否有協議,如果不是,則添加

例如:網址,臉書地址,推特地址等然後我需要檢查用戶是否可以輸入協議作爲地址的一部分。如果協議不是提交的URL,我需要添加協議。

在這種情況下,它是http://。以及有時用戶可能會錯誤地鍵入協議。

例如,htttp:/, http//, htp://等。

有了這個問題,我需要知道是否有任何方法來完全刪除用戶輸入的協議,並添加新的協議與該URL插入到數據庫。

我寫了一些代碼來檢測提交的URL有一個協議..其工作小我期待,但不是100%。

$url = 'www.example.com'; 
$checkProtocol = strpos($url, '://'); 

if (false === $checkProtocol) { 
    $url = 'http://' . $url;  
    echo 'This is new URL : ' . $url; 
} else { 
    echo 'Invalid'; 
} 

只是假設$ url有htp://www.example.com它成爲一個無效的URL ..不分配協議。

希望有人幫助我。

謝謝。

+2

所以..如果他們提供了一個協議,它是無效的? –

+0

不..可以。如果它是一個有效的http://。但是他們輸入的錯誤類似htt://,htttp:/,htt://等。 – TNK

+0

那麼你需要檢查它是否是一個有效的協議。我沒有看到你的代碼。 –

回答

1

如果你想處理所有的情況下,你可能只是想假設URL缺少http://還是有它畸形的,只是清理後的字符串添加它在所有情況下:

$url = 'htp://www.example.com'; 
$fixed_url = 'http://' . preg_replace('#^.*://#', '', $url); 
+0

然後輸出是這樣的... http:// htp://www.example.com – TNK

+0

糟糕,對不起,我把冒號排列在我的模式:) –

+0

如果變量有這樣的東西...' htp:/www.example.com'然後返回無效的網址。 – TNK

相關問題