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