我在localhost:http://localhost:7777/somesite/sites/default/files/devel-7.x-1.5.zip
上有此网址,并且希望获得c:\xampp\htdocs\somesites\default\files\devel-7.x-1.5.zip
。
正如此问题PHP: Get absolute path from absolute URL所述:
$path = parse_url($url, PHP_URL_PATH);
echo $_SERVER['DOCUMENT_ROOT'] . $path;
上面的代码片段应该让我获取文件的实际路径。不幸的是,这不起作用。打印$path
时,它会返回$url
而不是somesites\default\files
。这可能是因为我在localhost:7777
上运行了吗?
答案 0 :(得分:0)
您可以使用服务器变量执行此操作:
echo $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
答案 1 :(得分:0)
尝试
$path = parse_url($url);
echo str_replace('/', "\\", $_SERVER['DOCUMENT_ROOT'].$path['host'].$path['path']);
答案 2 :(得分:0)
这可能是因为没有将正确的url传递给parse_url函数。在传递给parse_url函数之前打印$ url值并检查它是否打印了适当的值。您可能会在$ url中传递类似http://http://localhost:7777/http://localhost:7777/somesite/sites/default/files/devel-7.x-1.5.zip的内容,因为当parse_url处理$ url时,它会返回原始的$ url。
希望这会有所帮助:)