【问题标题】:php mkdir windows relative pathphp mkdir windows 相对路径
【发布时间】:2011-02-25 00:26:47
【问题描述】:

我想通过 PHP 脚本在 Windows 上创建一个目录。

我的脚本位于 Apache 的 www/Test 目录中,我想在 www/downloads 目录中创建一个文件夹 (fold1)。

在脚本内部,我正在使用:

$dirName = "../downloads/fold1";   
mkdir("{$dirName}");

如果我使用 C:\Apache\www\downloads\fold1 之类的 dirName 的完整路径,它可以正常工作。

但我想使用相对路径,因为此代码将发送到客户端。

【问题讨论】:

  • 它是否显示任何错误消息?
  • 它不创建文件夹,不显示任何错误。
  • 你必须打开错误消息。在提出任何问题之前,您应该阅读错误消息。使用 realpath() 进行调试也有帮助
  • 而且,看在上帝的份上,新人这样做:mkdir("{$dirName}")。唯一正确的方法是mkdir($dirName);
  • ini_set('display_errors',1); error_reporting(E_ALL); 是在屏幕上显示错误的快捷方式。

标签: php windows path relative-path mkdir


【解决方案1】:

我猜你的当前目录与你的文件夹不同,所以你必须使用一个技巧:

mkdir(dirname(__FILE__) . "/" . $relative_path);

dirname(__FILE___) 返回当前 php 文件的绝对路径。有了这个,你可以建立一个绝对路径。

【讨论】:

  • 使用 php 5.3 你甚至可以使用__DIR__ 而不是dirname(__FILE__)
  • 这个绝对路径并不比相对路径好。
  • 并且猜测不是程序员应该依赖的东西。
  • 因为它仍然相对于当前脚本位置。
  • 没有?通过使用脚本的绝对路径作为前缀,您将获得绝对路径。是的,它通过使用 .. 等包含相关元素,但是当他的应用程序部署给客户时,我没有看到任何问题。
猜你喜欢
  • 2016-05-17
  • 1970-01-01
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 2019-11-14
  • 2012-12-11
相关资源
最近更新 更多