场景:www.baidu.com和baidu.com,这里一个是二级域名,一个是一级域名,在开发中,是要特别注意的,尤其是微信的接口。
在tp中,如下代码有什么问题呢?
$url="http://".$_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']==80?'':':'.$_SERVER['SERVER_PORT']).__ROOT__.__SELF__;
如上代码获取当前访问的URL,这样获取是有问题的,访问www.baidu.com,获取到的是baidu.com
改进如下:
如下代码,只适用于TP
$url="http://".$_SERVER['HTTP_HOST'].($_SERVER['SERVER_PORT']==80?'':':'.$_SERVER['SERVER_PORT']).__ROOT__.__SELF__;
如下为获取当前访问的URL的通用方法
$thisurl = siteurl(). $_SERVER["REQUEST_URI"];
function siteurl($root = null, $type='http')
{
$dir = str_replace(array(realpath($_SERVER['DOCUMENT_ROOT']), '\\'), array('', '/'), realpath(dirname($_SERVER["SCRIPT_FILENAME"])));
return $type."://".$_SERVER["HTTP_HOST"].str_replace('//', '/', '/'.$dir.'/');
}