我不知道这个功能有什么问题。我正在尝试$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 作为我的服务器。
试试这个:
mkdir('../media/magazines/'.$id, 0755, True)
这里的重点是新参数:第三个参数True
,表示mkdir
它必须递归地创建目录。当递归关闭时,所有父目录必须已经存在(../media/
在我们的例子中);但是当递归打开时,它们会自动创建。
当路径包含正斜杠时, “ 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);
您必须一一创建目录。$date/$recid 是 2。
mkdir($date);
mkdir($date."/".$recid);
您不能在同一命令中创建两个目录,您必须分两步执行此操作:
if (!file_exists($date)) {
mkdir($date);
}
if (!file_exists($date . '/' . $recid)) {
mkdir($date . '/' . $recid);
}
编辑:
您可以使用递归参数:
mkdir($date . '/' . $recid, 0755, true);