2013-02-21 57 views
25

我想知道,如果這是爲了檢查一個適當的方式,如果一個字符串包含只不過是網址:檢查字符串包含只是一個URL在PHP

if (stripos($string, 'http') == 0 && !preg_match('/\s/',$string)) { 
    do_something(); 
} 

stripos函數()檢查字符串開始用「http」
preg_match()檢查字符串是否包含空格

如果不是這樣,我假定字符串只是一個URL - 但是這個假設是否有效?有沒有更好的方法來實現這一目標?

+1

的可能重複[檢查網址是否有效的最好的方法是什麼?(http://stackoverflow.com/questions/2058578 /最好的方式來檢查,如果一個網址是有效的) – trejder 2015-07-30 09:46:11

回答

83

使用filter_var()

if (filter_var($string, FILTER_VALIDATE_URL)) { 
    // you're good 
} 

過濾器可以更加細化。 See the manual瞭解更多。

+0

非常感謝! (我認爲這兩個答案都是同時發生的) – yan 2013-02-22 17:14:37

+0

謝謝,這比parse_url($ string)更好,因爲任何帶有冒號(:)的東西都會被當作url來使用。更好地工作。希望有一種方法可以檢測它是否是一個url,即使它沒有http://雖然。 – alexander7567 2013-08-06 19:02:55

+0

未能成功驗證其中包含字符「 - 」的URL,但該URL正在工作。 (使用PHP 7.0) – TheStoryCoder 2017-08-24 02:44:21

相關問題