views:

138

answers:

2

I've got a pretty simple page which fetches a url and parse some data.

I have built into my page some error handling in the event that the response is a 404 error.

However, I can't seem to stop php from spitting out the following errors

 Warning: file_get_contents(http://url-to-retrieve.com/123.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/html/maickl/procs/get.php on line 84

Notice: Undefined offset: 0 in /var/www/html/maickl/procs/get.php on line 91

I start the page with

error_reporting(0)

Any suggestions as to why this is happening, why these errors are not being suppressed (it seems to be only on this page), and what I can do about it?

+2  A: 

Using error_reporting(0); shoud disable error reporting, which means you should not get that error -- are you sure it's not re-enabled somewhere ?


But what you are probably looking for, actually, is not to change error_reporting, but to disable display_errors, which can be done using some code like this one :

ini_set('display_errors', 'Off');

With this :

  • errors / warnings will not be displayed on your website, which is nice for end-users (technical errors should never be displayed)
  • but error_reporting is not disabled, which means errors can/will still be logged -- see log_errors and error_log.
Pascal MARTIN
Thanks Pascal, I thought that should hide all errors, but it isn't and I'm not even sure how I would 're-enable' error_reporting. I tried using the display_errors as you provided, but I'm still getting the same responses. Very strange....
pedalpete
Sorry about that, I got it. I was including a file which for some reason had a different error setting. thanks
pedalpete
OK :-) Thanks for your comment *(I have to admit the first was let me wondering... Nice you posted the second one too ^^ )*. Have fun !
Pascal MARTIN
+1  A: 

Turning off error reporting is one way of doing it, but I would suggest simply fixing the error or adding appropriate error handling.

try {
     //try to do the following
     $content = file_get_contents('file/to/try.txt');
} catch (Exception $e) {
     //do this in case of an error
     die($e->getMessage());
}
Mitch C