我正在使用PHP的命令行程序,我遇到了麻烦,我的第一个问题是当我调用PHP mkdir()
时它给了我这个错误
Warning: mkdir(): No such file or directory in
E:\Server\_ImageOptimize\OptimizeImage.php
on line 196
然后,我在PHP文档中读到一条用户注释,该注释表示正斜杠/
在Windows下但在Unix上不适用于此方法。
所以我随后更改了我的代码,将它们更改为反斜杠,但它没有改变任何东西,我在同一行仍然遇到同样的错误。
下面的代码可以帮助我解决这个问题
// I tried both of these below
$tmp_path = '\tmp\e0bf7d6';
//$tmp_path = '/tmp/e0bf7d6';
echo $tmp_path;
mkdir($tmp_path);
答案 0 :(得分:9)
实际问题是mkdir()
每个调用只创建一个子目录,但是你传递了两个不存在的目录的路径。您通常必须一步一步地执行此操作:
mkdir("/tmp");
mkdir("/tmp/e0b093u209");
mkdir("/tmp/e0b093u209/thirddir");
或使用第三个参数快捷方式:
mkdir("/tmp/e0b093u209", 0777, TRUE);
答案 1 :(得分:3)
我通常使用以下行作为常量,然后输入一个全局文件来通过我的网站使用。
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
那应该解决分隔符问题。我还会尝试在mkdir中找到的递归属性,它允许你创建嵌套结构。 请参阅foillowing,http://php.net/manual/en/function.mkdir.php
你会注意到你需要像下面这样调用mkdir。
mkdir ($path, $mode, true)