2013-02-21 36 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

相关问题