In PHP, how can I check if the current page has www in the url or not?
E.g if the user is on http://www.example.com/something , how can I find that there's www in the URL, and on http://example.com/something , www isn't in the url?
In PHP, how can I check if the current page has www in the url or not?
E.g if the user is on http://www.example.com/something , how can I find that there's www in the URL, and on http://example.com/something , www isn't in the url?
您可以使用$_SERVER['HTTP_HOST']
来获取您的域。现在,如果您的网站不使用子域,这很容易。只需使用这样的东西:
$url1 = "www.domain.com";
$params = explode('.', $url1);
if(sizeof($params === 3) AND $params[0] == 'www') {
// www exists
}
请注意,如果您的 params 数组有 2 个项目,则 domain 看起来像这样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
,我必须做同样的事情。
希望这可以帮助!
你可以这样做preg_match
:
if(preg_match('/www/', $_SERVER['HTTP_HOST']))
{
echo 'you got www in your adress';
}
else
{
echo 'you don not have www';
}
您甚至可以使用 .htaccess 来执行此操作,具体取决于您正在构建的内容,上述选项对于简单检测来说很好。
如果您选择 Ferdia 提供的选项,请按以下方式进行检查:
$domain = array_shift(explode(".",$_SERVER['HTTP_HOST']));
if(in_array('www', $domain))
{
echo 'JUP!';
}
你已经知道网址了吗?然后拿这个:
<?php
$parsed = parse_url("http://www.example.com/something");
$hasWww = strpos($parsed['host'], "www.") === 0;
var_dump($hasWww);
否则,采取
strpos($_SERVER['HTTP_HOST'], "www.") === 0
有很多方法可以检查 www 是否包含。
一种方法是:
if(strpos($_SERVER['HTTP_HOST'], `www`) !== false) {
echo "WWW found";
} else {
echo "WWW not found";
}
array_shift(explode(".",$_SERVER['HTTP_HOST']));
Should work, then examine the array for the presence of www. If you are simply trying to remove or force www, then a .htaccess rule is by far superior to PHP for that job.
$_SERVER['HTTP_HOST']
主机内容:当前请求的标头(如果有)。
$_SERVER['SERVER_NAME']
当前脚本在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,这将是为该虚拟主机定义的值。