mkdir('../ media / magazines /'.$ id,0755)显示警告:没有这样的文件或目录

时间:2012-07-01 19:36:12

标签: php wamp mkdir

我不知道这个功能有什么问题。我正在尝试在“media / magazines”目录中创建一个目录$date/$recid。此功能有时会创建它,但有时会显示警告

Warning: mkdir() [function.mkdir]: No such file or directory in C:\wamp\www\locallink\cpl_locallink\magazine.php on line 77
Call Stack

我在Windows 7上使用它,wamp作为我的服务器。

4 个答案:

答案 0 :(得分:4)

试试这个:

mkdir('../media/magazines/'.$id, 0755, True)

这里的要点是新的参数:第三个参数True,表示它必须递归地创建目录mkdir。当递归关闭时,所有父目录必须已经存在(在我们的例子中为../media/);但是当递归开启时,它们将自动创建。

答案 1 :(得分:1)

路径时,“mkdir”功能在Windows上无法正常运行 包含正斜杠。带正斜线的路径部分 没有被创造。

mkdir('c:/a/b/c/d', 0775, true);

您收到错误消息: 警告:mkdir()[function.mkdir]:没有这样的文件或目录

请在Windows下使用反斜杠或使用常量DIRECTORY_SEPARATOR。

mkdir('c:\a\b\c\d', 0775, true);
mkdir('c:'.DIRECTORY_SEPARATOR.'a'.
DIRECTORY_SEPARATOR.'b'.
DIRECTORY_SEPARATOR.'c'.
DIRECTORY_SEPARATOR.'d', 0775, true);

答案 2 :(得分:0)

您必须逐个创建目录。 $ date / $ recid是2。

mkdir($date);
mkdir($date."/".$recid);

答案 3 :(得分:0)

您无法在同一命令中创建两个目录,必须分两步完成:

if (!file_exists($date)) {

    mkdir($date);
}

if (!file_exists($date . '/' . $recid)) {

    mkdir($date . '/' . $recid);
}

修改

您可以使用递归参数:

mkdir($date . '/' . $recid, 0755, true);