Ik werk al 5 jaar met een script dat data ophaalt uit een site en vervolgens wegschrijft in een txt-file waarna er een grafiek van wordt getekend. Ik krijg opeens foutmeldingen in een error-file die binnen een dag volloopt tot 10GB (m'n maximale ruimte). De foutmelding die ik krijg geldt voor zowel feof (lijn 3) als fgets (lijn 4).
PHP-warning feof() expects parameter to be resource, boolean given in ....grafiek.inc.php line 24 en:
PHP-warning fgets() expects parameter to be resource, boolean given in ....grafiek.inc.php line 26.
Ik heb al gekeken of de data wel aanwezig is op de site en die is er. Ik heb ook al geprobeerd ofeen @ voor fopen het probleem oplost maar dat lukt niet. De php-versie die momenteel draait is 5.6.

<?php
$htmlfile = fopen("https://gadgets.buienradar.nl/data/raintext?lat=52.8836&lon=6.9023","r");
$file_handle = fopen("neerslag.txt", "w");
while(![b]feof[/b]($htmlfile)){

$file_contents = [b]fgets[/b]($htmlfile);
fwrite( $file_handle, $file_contents);
}
fclose($htmlfile);
fclose($file_handle);
?>

Een @ is overigens NOOIT de 'magic' oplossing om een fout te verhelpen. Je verhelpt de fout daar niet mee, maar je verbergt de foutmelding enkel.
Als ik in de error zie dat er een boolean wordt gegeven i.p.v. een resource doet mij het een vermoeden geven dat er ergens wat foutafhandeling mist.
Ik heb de oplossing gegeven op basis van het php artikel.
Adoptive Solution op 04/04/2018 11:07:22

Ik heb de oplossing gegeven op basis van het php artikel.


Han Brouwer Keij op 05/04/2018 14:05:28

[quote="Adoptive Solution op 04/04/2018 11:07:22"]
Ik heb de oplossing gegeven op basis van het php artikel.



[/quote]
Ik mis een reactie?

Ik heb de hele While-loop in de if statement geplaatst en dat zorgt er in ieder geval voor dat de grafiek weer wordt weergegeven maar zonder de data erin. De foutmeldingen blijven nog gewoon in de logfile komen.
Zijn fopen wrappers mogelijk uitgeschakeld? Welke warning komt uit fopen naar boven?
** quoteknip **

Ik heb geen idee hoe dat uitgeschakeld of ingeschakeld zou kunnen worden.
PHP-warning feof() expects parameter to be resource, boolean given in ....grafiek.inc.php line 24

Reageren