0

我不知道这个功能有什么问题。我正在尝试$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

4 回答 4

4

试试这个:

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

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

于 2012-07-01T19:40:12.047 回答
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);
于 2012-07-01T19:40:49.357 回答
0

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

mkdir($date);
mkdir($date."/".$recid);
于 2012-07-01T19:41:39.637 回答
0

您不能在同一命令中创建两个目录,您必须分两步执行此操作:

if (!file_exists($date)) {

    mkdir($date);
}

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

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

编辑:

您可以使用递归参数:

mkdir($date . '/' . $recid, 0755, true);
于 2012-07-01T19:41:41.617 回答