开发者

PHP Script stops processing on a warning error?

I have a PHP script that stops processing (it seems to be) on a PHP warning. The error is general "PHP Warning: fopen" - "failed to open stream: No s开发者_如何学JAVAuch file or directory".

Should PHP stop here? I thought only on fatal errors?

Is there a way to get it to continue?


Don't know how to continue on errors, but the better thing would be error prevention in first place:

http://php.net/manual/en/function.file-exists.php

http://www.php.net/manual/en/function.is-readable.php


A warning is emitted but the script execution continues. The fact that your script stops is more likely related to processing you try to do afterward but not to the warning itself.

The previous suggestion to use file_exists and is_readable is a good one.


As noted on the php documentation page,

If the open fails, an error of level E_WARNING is generated. You may use @ to suppress this warning.


Yes, it should if error_reporting() level is low enough.

Yes, there is. Add "@" before fopen which causes the waring, like this: @fopen(...)


In addition to what Conrad Meyer has mentioned from the PHP manual:

$fres = @fopen('file.ext','w+');
if($fres){
  // so anything you want with the file
}

fopen returns false on error. When there's an error suppressed on fopen and you do not use the if($fres), the subsequent file operation functions will throw error saying that $fres is not a valid file handle.


Even if it continued, the program would, most probably, not work the way it was meant to. Anyway, try handling the exception:

try {
    # code that may cause an error
}
catch( Exception $e ) {
    # do error handling mechanism
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜