2012-07-01 38 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); 
相關問題