Tom: problem mit file(), wenn nicht vorhanden

Beitrag lesen

Hello,

ich möchte die funktion file() benutzen, um damit eine andere webseite einzulesen:

$html = implode('', file($page));

soweit funktioniert das ja auch, aber wenn $page ungültig ist (z.b. dns kann nicht aufgelöst werden) wirft das ganze eine unschöne fehlermeldung aus.

Das Fehlermeldungen-Problem bekommst du mit einem dem Funktionsnamen vorangestellten „@“ in den Griff:

Nein, damit unterdrückst Du nur Deinen Freund: die Fehler- bzw. Statusmeldung.
Mehr dazu unten...

In Multi-User-Umgebungen ist es auch Unsinn, vorher mit file_exists() nachzufrragen, ob die Datei exisitert, denn von der Nachfrage bis zum Zugriff könnte ein anderer berechtigter User sei bereits gelöscht haben.

Richtig wäre es also:

ini_set('track_errors','1');   # eigene Fehlerauswertungsmöglichkeit einschalten
                               # $phperrormsg wird jetzt bedient

und dann

$html = @file_get_contents($page);
  if (!empty($phperrormsg) or $html === false)
  {
    fehlerauswertung($phperrormsg);   ### hier erstmal üben!
  }
  else
  {
    # normale auswertung.
  }

Schau Dir einfach mal die Rückgabewerte von $phperrormsg an für die unterschiedlichsten Rahmenbedingungen:

- Datei nicht vorhanden
 - Pfad nicht vorhanden / benutzbar
 - Datei gesperrt (dio_*)
 - ...

Leider habe ich selber noch keine Möglichkeit gefunden, PHP definierte Fehler-/Statusnummern zu entlocken, anstelle der Auswertung der Klartexte in $phperrormsg

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau