2013-03-04 64 views
0

如何确保它只有一个http://在一个字符串中?如何确保在一个字符串中只有一个http://?

$url = "http://mysite.com/http://http://mysite.com/"; 

# set the regex for checking. 
$regex = '/^\bhttp:\b\/\/.*/'; 

# reject the url address if it doesn't match 
if (!preg_match($regex, $url)) echo 'false'; 
+2

它是有效的URL,你为什么要过滤它? – nhahtdh 2013-03-04 18:14:47

+0

@nhahtdh显然,有效性以外的原因。 – showdev 2013-03-04 18:21:22

+0

我希望他不使用这个来过滤“坏”的URL。 – nhahtdh 2013-03-04 18:35:47

回答

3

您可以使用strrpos

if (strrpos($url, "http://") > 0) { 
    // reject 
} 
+0

感谢您的答案Mathieu! :-) – laukok 2013-03-04 18:20:06

+1

@lauthiamkok不客气! – Tchoupi 2013-03-04 18:21:12

1

它是非常有用的咨询the manual page
它包含更好的解决方案,你可以从单纯的路人在Stackoverflow找到更好的解决方案。

简而言之,并不是很难浏览几十个功能,只是为了让自己成为一张照片。

您可以轻松地从标题

if (substr_count($url,"http://") > 1) 

这将不仅在开始针的任何位置,努力找到一个强大的answer的问题。

还有其他方式,包括strpos与偏移等等。

+0

非常感谢您的回答和建议! – laukok 2013-03-04 18:52:34

相关问题