2017-03-08 31 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

相关问题