我不知道这个函数有什么问题。我正尝试在“媒体/杂志”目录内创建一个目录$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。
我不知道这个函数有什么问题。我正尝试在“媒体/杂志”目录内创建一个目录$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);
但希望用'implode()'。 –
您必须逐个创建目录。 $日期/ $ 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);
请停止用“任何帮助装饰” ase“和其他填充物。这样的[短语是多余的](http://stuck.include-once.org/#help4)并且令人不安。 – mario
谢谢以后我会照顾这个@mario – baig772