PHP从URL获取绝对路径

时间:2015-08-21 07:48:48

标签: php url absolute-path parse-url

我在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上运行了吗?

3 个答案:

答案 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。

希望这会有所帮助:)