如何使用PHP检查页面URL中是否包含www?
如何使用PHP检查页面URL中是否包含www?
在PHP中,我如何检查当前页面的URL中是否有www?\n例如,如果用户在http://www.example.com/something上,我如何找到URL中有www,并且在http://example.com/something上,URL中没有www?
如何使用PHP检查页面URL中是否包含www?
有两种方法可以实现这个功能。第一种方法是使用preg_match函数,代码如下:
if(preg_match('/www/', $_SERVER['HTTP_HOST'])) { echo '你的地址中有www'; } else { echo '你的地址中没有www'; }
第二种方法是使用.htaccess文件,具体取决于你要构建的内容。以下是使用Ferdia提供的方法进行检查的代码:
$domain = array_shift(explode(".",$_SERVER['HTTP_HOST'])); if(in_array('www', $domain)) { echo '是的!'; }
如果你只想匹配URL开头的www,可以使用以下正则表达式:/^www/。请注意,你的正则表达式是错误的,如果URL字符串的末尾有www,将无法匹配。你可以在此链接中查看一个正确的正则表达式示例:[rubular.com/r/IEzoGnqEm1](http://rubular.com/r/IEzoGnqEm1)
本文介绍了如何使用PHP检查页面URL中是否包含www的两种方法。第一种方法是使用preg_match函数进行检查,第二种方法是使用.htaccess文件进行检查。同时提醒注意正则表达式的正确使用。
如何使用PHP检查页面URL中是否包含www?
您可以使用$_SERVER['HTTP_HOST']
来获取您的域名。现在,如果您的网站不使用子域,那就很简单。只需使用类似以下的代码:
$url1 = "www.domain.com"; $params = explode('.', $url1); if(sizeof($params === 3) AND $params[0] == 'www') { // www存在 }
请注意,如果您的params数组有2个项,那么域名看起来像这样domain.com
,而没有明显的www
。您甚至可以检查$params
数组的大小,并根据其大小决定是否存在www
。
现在,如果您的网站使用子域,情况就会变得更加复杂。您将有以下可能的情况:
$url1 = "www.domain.com"; $url2 = "www.sub.domain.com"; $url3 = "domain.com"; $url4 = "sub.domain.com";
然后,您可以再次将每个URL拆分,并比较大小并检查第一个项是否为'www'。
但请注意,您的子域可以被命名为www
,其中www
将是子域:D
然后它将变成这样:www.domain.com
,再次,www
是子域 🙂 这真是疯狂,我几乎要疯了 🙂
无论如何,要检查网站不使用子域时是否存在www
,那很容易。
但是,要检查URL是否有www
且您的网站使用子域,那可能会很棘手。
解决这个问题的最简单方法是禁用www
子域,如果您可以的话。
如果您需要更多帮助,或者这个回答没有解决您的问题,请随时提问。
我曾经遇到类似的情况,用户可以创建自己的帐户,这将成为子域,例如www.user.domain.com
,我必须做同样的事情。
希望对您有所帮助!