tags:

views:

163

answers:

2

here is the code :

if( false == (file_get_contents($jsonaddress)))
{
    //error
    print ('Error with stream, getting file instead !<br />');
    $jsonaddress = 'listedesodeurs.txt';
} 

else 
{
    //noerror
    print ('Sucessfully GET data from JSON stream<br />');
    $jsoncontent = file_get_contents($jsonaddress);
    $size = file_put_contents('listedesodeurs.txt', $jsoncontent);
    echo ('Making backup of stream in file : '.round(($size/1024),0).' KB <br />');
}

When the file_get_contents = true (no error) everything get well when the file_get_contents = false I juste got THE big error message at screen... i just like to test it, not execute it !

HOW ?

here is the error message :

[function.file-get-contents]: failed to open stream: Inappropriate ioctl for device in
+6  A: 

The quick way:

if( false == (@file_get_contents($jsonaddress)))

'@' suppresses errors.

A potentially better way is to just test:

if (! file_exists($jsonaddress)){

May well do you what you want (see if you can get get the stream, but simply return false if it fails)... but I'm not sure how well it will work. (haven't tried that with fopen wrappers recently)

timdev
You are genius !... and fast !
marc-andre menard
@ is often considered bad form - so stick with Tim's second example. Depending on how your php.ini is set up, you may need to look at the cURL libraries to get an external file.
alex
+1  A: 

You can also check is_readable() to see if file_get_contents() is likely to fail:

if(is_readable($jsonaddress)) {
    // noerror
    print ('Sucessfully GET data from JSON stream<br />');
    ... etc
}
else {
    // error
    print ('Error with stream, getting file instead !<br />');
    ... etc
}
too much php