几周前,我不得不在我的 MVC 实现中讨论同样的问题。
你去:
public static function RealDirname($path)
{
$path = dirname($path);
if($path[0] == '\\') //Windows servers tend to mess up
$path[0] = '/';
$lastChar = strlen($path) - 1;
if($path[$lastChar] != '/')
$path .= '/';
return $path;
}
public static function GetAbsolutePath()
{
global $config;
if(empty($config["base_path"]))
$config["base_path"] = self::GetDomainURL();
return $config["base_path"].(self::RealDirname($_SERVER['PHP_SELF']));
}
public static function GetDomainURL()
{
return (isset($_SERVER['HTTPS']) ? 'https://' :'http://').$_SERVER['HTTP_HOST'];
}
只需调用 getAbsolutePath,这应该会返回带有 URL 的整个路径 :)
在位于的页面上尝试:
http://localhost:8080/old/test.php
GetAbsolutePath 返回:
http://localhost:8080/old/
和 GetDomainURL :
http://localhost:8080