2017-03-08 24 views
-2

這裏有觸輪很多問題,一直沒能找到解決辦法不會死,所以......檢查目錄中,如果這樣繼續下去,如果

我們爲孩子們學習學習PHP的練習。有時他們必須創建文件夾,這些文件夾可能會保持空白,直到稍後進行多個步驟。如果孩子們跳過創建文件夾,那麼PHP會拋出令人討厭的錯誤。喜歡使用代碼這樣的顯示自定義錯誤:

$file = 'mydir'; 
if(is_dir($file)) { 
    die("<p>folder does not exist, please return and create as instructed...</p>"); 
} else { 
    $file=fopen($file,"r"); 
} 

所以要重述。函數檢查目錄是否存在,如果腳本繼續存在,它不會死亡並顯示簡單的消息,直到創建目錄。 我不希望PHP創建目錄如果它不存在,孩子們必須學會遵循步驟:)

即使目錄存在,我的代碼也不會繼續。我究竟做錯了什麼?

+6

你的'if'條件是顛倒的:)不要扔掉一些快速的我的太票我也回答,而你得到一些反對票。你只需要看代碼就可以找到問題。該代碼在目錄存在時即將消亡,並在不存在時繼續執行 –

+1

廢話,我知道應該睡在這一個上......過了漫長的一天。感謝您讓我回到正軌。 – Woody

回答

0

你有錯誤的條件: 以下是正確的條件。

$file = 'mydir'; 
if(is_dir($file)) 
{ 
    //DIRECTORY EXISTS 
} 
else 
{ 
    //DIRECTORY DOES NOT EXIST 
} 
+0

由於害怕我的編輯被拒絕(堆棧溢出是不可預知的),所以我建議你用當前文本替換爲「你的代碼塊被錯誤地換了,交換它們就像這樣:」。 – FluorescentGreen5

0

建議:使用單引號時,雙引號是沒有必要的,它將把該內容是(這是它並不影響它),這是因爲你沒有使用「更簡單\「用於控制字符(除了」\'「,如果您想在字符串中使用單引號),並且它使您的代碼更有效,因爲PHP不必檢查轉義字符。

$location = 'mydir'; //Better call it location as directory =/= file. 

if(is_dir($location)) 
{ 
    //$fout = fopen($file, 'rb'); //'rb' for binary mode, please use this instead. 
    $fout = fopen($location . '/' . $file, 'rb'); //I assumed you wanted to write the file in the directory you were testing for. 
} 
else 
{ 
    die('<p>folder does not exist, please return and create as instructed...</p>'); 
} 
+0

我注意到兩個答案都得到了一個downvote。爲什麼? – FluorescentGreen5

+0

不是靠我......我其實在這裏學習一些東西。 – Woody

+0

@伍迪奇怪。無論如何,當你認爲你有最好的答案時,一定要點擊綠色的勾號。 – FluorescentGreen5

相關問題