2012-07-01 39 views
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。

+0

请停止用“任何帮助装饰” ase“和其他填充物。这样的[短语是多余的](http://stuck.include-once.org/#help4)并且令人不安。 – mario

+0

谢谢以后我会照顾这个@mario – baig772

回答

4

试试这个:

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

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

+0

它给了我这个解析错误:语法错误,意外'='在C:\ wamp \ www \ locallink \ cpl_locallink \ magazine.php上线77 :( – baig772

+0

尝试没有'recursive =',只有'真的' –

+0

你工作:)谢谢。但这是什么“真实”?它强迫它?并编辑你的答案:) – baig772

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); 
+1

但希望用'implode()'。 –

0

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

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

你不能在同一命令中创建两个目录,你必须做这两个步骤:

if (!file_exists($date)) { 

    mkdir($date); 
} 

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

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

编辑:

您可以使用递归参数:

mkdir($date . '/' . $recid, 0755, true); 
相关问题