Wetterstationsforum.info - Archiv

Software => Allgemeines Softwareforum => Thema gestartet von: Wetterfrosch1971 am 04.08.2016, 18:54:38

Titel: PHP Cache Problem, benötige Hilfe
Beitrag von: Wetterfrosch1971 am 04.08.2016, 18:54:38
Hallo,

ich habe ein PHP Script auf meiner Webseite laufen, mit dem ich einen METAR-Code abfrage.
Damit nun nicht bei jedem Zugriff der METAR-Code-Link erneut abgefragt wird, habe ich ihn in einen Cache eingebaut und dieser Cache hat auch bis vor Kurzem funktioniert, doch plötzlich tut er das nicht mehr und ich habe keine Ahnung an was das liegt (den Code hat mir ein User hier aus dem Forum mal geschrieben gehabt, da ich mich selbst nicht damit auskenne).

Ich häng den Code hier mal als Schnipsel mit an, vielleicht kann sich diesen Code mal ein User, der sich mit PHP auskennt ansehen und findet vielleicht den Fehler.

Das Problem liegt an der Zuordnung von "$lines" ganz am Ende des Code (siehe Anmerkungen am Ende des Codes):


<?php$cachezeit = '300'; //Zeit in Sekundenfunction cURLcheckBasicFunctions(){  if( !function_exists("curl_init") &&      !function_exists("curl_setopt") &&      !function_exists("curl_exec") &&      !function_exists("curl_close") ) return false;  else return true;}function cURLdownload($url, $file){  if( !cURLcheckBasicFunctions() ) return "NA: cURL Basic Functions";  $ch = curl_init();  if($ch)  {    $fp = fopen($file, "w");    if($fp)    {      if( !curl_setopt($ch, CURLOPT_URL, $url) )      {        fclose($fp); // to match fopen()        curl_close($ch); // to match curl_init()        return "Fehler: curl_setopt(CURLOPT_URL)";      }      if( !curl_setopt($ch, CURLOPT_FILE, $fp) ) return "Fehl: curl_setopt(CURLOPT_FILE)";      if( !curl_setopt($ch, CURLOPT_HEADER, 0) ) return "Fehl: curl_setopt(CURLOPT_HEADER)";      if( !curl_exec($ch) ) return "Fehler: curl_exec()";      curl_close($ch);      fclose($fp);    }    else return "Fehler: fopen()";  }  else return "Fehler: curl_init()";}                  // Download, Caching etc.	        $file = 'LFSB.TXT';               // LFSB = Basel             if(file_exists($file)) {            $cache_zeit = (time()-filemtime($file));            }            if (isset($cache_zeit) && $cache_zeit < $cachezeit && file_exists($file)) {            // Datei im Cache und sie ist nicht zu alt, mache nix            }            else {            // Falls Datei nicht vorhanden oder zu alt ist, versuche Download            cURLdownload('http://weather.noaa.gov/pub/data/observations/metar/stations/LFSB.TXT', 'LFSB.TXT'); // Metar: LFSB = Basel             }						$lines = file($file);						//ab hier wird dann $lines weiter verarbeitet, diesen Teil habe ich jetzt mal abgetrennt, da er mit dem Problem nix mehr zu tun hat.			//Das Problem liegt eindeutig an der Zuordnung $lines = file($file)			//denn so wie die Zordnung von $line aktuell angegeben, funktioniert der weiterführende code nicht mehr (komisch ist, das er bis vor Kurzem so noch funktioniert hatte).			//gebe ich anstatt $line = file($file) folgendes ein, dann funktioniert das weiterführende Script wieder			//$lines = file('http://weather.noaa.gov/pub/data/observations/metar/stations/LFSB.TXT');			//doch damit setze ich den cache ja wieder außer Kraft, oder?


Vielen Dank für die Hilfe
Gruß Frank
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: klaus289 am 04.08.2016, 19:30:22
Ähm...

lies mal bitte deine aktuell heruntergeladene LFSB.TXT.
Dann kommst du sicher einen großen Schritt weiter. ;)
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: Wetterfrosch1971 am 04.08.2016, 19:44:48
Ähhm, wie kann ich die auslesen, d.h. wie kann ich die abfragen?
mit

echo $file;

?

wenn ich das so abfrage, dann bekomme ich die Ausgabe "LFSB.TXT"

heißt das, dass ich irgendwie keinen Wert für LFSB.TXT einlese?
Doch wo liegt der Fehler, was muss ich ändern?

Danke für die Hilfe.
Gruß Frank
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: klaus289 am 04.08.2016, 19:57:39
Öhm...
Die Datei liegt ziemlich sicher auf deinem Webspace und zwar dort wo auch das PHP-Script liegt.
Falls nicht, einfach das Script nochmals aufrufen.
Dann die Datei ansehen und die Änderung am Script durchführen.

Habe deinen geposteten Code getestet und geändert. Jetzt sind auch wieder Daten in der LFSB.TXT.
Bei mir zumindest.

Falls du auf dem Schlauch stehst, melde dich bitte.  :confused:
Dann schreibe ich Klartext.  ;) ;) ;)
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: Wetterfrosch1971 am 04.08.2016, 20:01:44
Hallo Klaus,

booooaaahr, hab den Fehler gefunden, der Link zum Metar-Code hat sich geändert ;-(
Oh ich Depp, hab das nid bemerkt ;-(

Aber kannst du mir dennoch verraten, wie ich den Inhalt von LSFB.TXT abrufen kann, das habe ich nämlich immer noch nid raus bekommen, mit "echo" bekomme ich ja nur LFSB.TXT angezeigt.

danke
Gruß Frank
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: klaus289 am 04.08.2016, 20:22:18
Hallo Frank,

hähähä.....
Haste vor lauter Bäumen kleinen Wald mehr gesehen. ;) ;) ;)
Tröste dich, geht mir oft genau so. :D

Was willst du denn mit den Daten der Datei anfangen?
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: Wetterfrosch1971 am 04.08.2016, 20:35:35
Ich kreiere damit mein aktuelles Wetter-Icon.

Aber trotzdem interessehalber, wie rufe ich den Inhalt der LFSB.TXT für mich zum Test ab?
Hab das nämlich zum Finden der Problemlösung nicht heraus bekommen, hab das mit dem geänderten Link jedoch auch so schlussendlich bemerkt ;-)

Irgendwie ist das ja das Naheliegendste, denn bisher ging ja das Script und wenn ich selbst nix daran geändert habe, kann sich ja nur ein Link geändert haben ;-)

Gruß Frank
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: klaus289 am 04.08.2016, 20:41:59
Ah, ja.

Die Anzeige des Dateiinhaltes sollte auch mit einem kleinen PHP-Code funktionieren.
Ich teste das mal und melde mich später wieder.
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: Wetterfrosch1971 am 04.08.2016, 20:45:24
Nö, brauchst jetzt nicht extra deswegen Arbeit machen, dachte du weißt das aus dem ff.
ist ja jetzt nicht so wichtig, hab das Problem ja auch ohne den Inhalt der LFSB.TXT abzufragen, gelöst bekommen ;-)

danke dir trotzdem für deine Hilfe.
Gruß Frank
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: klaus289 am 04.08.2016, 20:47:56
Nee, mit dem FF ist es nicht soweit her. :D :D :D

Nein ich hab solche Sachen hier rumliegen.
Muss das nur kurz testen welches Teil funktioniert.

Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 04.08.2016, 20:58:36

So, hier ein paar schnelle Zeilen.
Damit wird der Dateiinhalt am Bildschirm angezeigt.

<?php $lines = file ("LFSB.TXT"); $item_1 = " ".strip_tags($lines[1]).""; echo $item_1."<br /><br />";?>
Titel: Re: PHP Cache Problem, benötige Hilfe
Beitrag von: Wetterfrosch1971 am 04.08.2016, 21:23:04
super, vielen dank, werds nachher gleich mal testen.  :top:

Gruß Frank