我不知道这个功能有什么问题。我正在尝试在“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作为我的服务器。
答案 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);