0

我在 localhost: 上有这个 URL,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吗?

4

3 回答 3

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。

希望这可以帮助 :)

于 2015-08-21T08:04:28.697 回答
0

您可以使用服务器变量执行此操作:

echo $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
于 2015-08-21T07:59:34.883 回答
0

尝试

$path = parse_url($url);
echo str_replace('/', "\\", $_SERVER['DOCUMENT_ROOT'].$path['host'].$path['path']);
于 2015-08-21T08:00:42.547 回答