PHP脚本停止处理警告错误?

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 such 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

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

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

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.

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
}

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.

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.