URL auf Existens prüfen?
robert
- php
Hi,
kann ich mit PHP prüfen, ob ein Verweisziel tatsächlich existiert?
Also zu meinem problem:
ich binde ein bild ein, dass der benutzer frei wählen kann. dazu gibt er die url zum bild an. nun will ich prüfen, ob das bild wirklich vorhanden ist.
denn ist es nmicht vorhanden, erzeugt das getimagesize häßliche warnings und es wird statt dem bild ein x angezeigt :(
thx
mfg
robert
Hallo.
Im Archiv gibt's dazu einige Threads. Bin jetzt mal gleich so frei, und gebe Dir den treffendsten Link mit: http://forum.de.selfhtml.org/archiv/2000_3/t21614.htm#a110363
Ist zwar die Lösung über Reguläre Ausdrücke in Perl, reguläre Ausdrücke gibt's aber ja auch in PHP, lässt sich also auch übersetzen.
Viel Spaß.
Grüße aus Würzburg
Julian
servus,
ich möchte nicht feststellen, ob die url syntaktisch richtig ist, sondern ob das bild, auf das sie verlinkt auch wirklich existiert.
mfg
robert
Hallo.
Im Archiv gibt's dazu einige Threads. Bin jetzt mal gleich so frei, und gebe Dir den treffendsten Link mit: http://forum.de.selfhtml.org/archiv/2000_3/t21614.htm#a110363
Ist zwar die Lösung über Reguläre Ausdrücke in Perl, reguläre Ausdrücke gibt's aber ja auch in PHP, lässt sich also auch übersetzen.Viel Spaß.
Grüße aus Würzburg
Julian
Moin!
ich binde ein bild ein, dass der benutzer frei wählen kann. dazu gibt er die url zum bild an. nun will ich prüfen, ob das bild wirklich vorhanden ist.
denn ist es nmicht vorhanden, erzeugt das getimagesize häßliche warnings und es wird statt dem bild ein x angezeigt :(
Warum erzeugt getimagesize denn warnings? Doch wohl, weil du auf dieses Bild zugreifst. Und an genau dieser Stelle solltest du prüfen, ob das Bild existiert oder nicht.
- Sven Rautenberg
Moin,
kann ich mit PHP prüfen, ob ein Verweisziel tatsächlich existiert?
Da gibt es mehrere Wege.
a) Der einfachste und häßliche: Nimm dein bisheriges getimagesize und stelle ein @ davor, welches die Warnungen unterdrückt. Dann schau nach ob der Rückgabewert irgendwie sinnvoll erscheint. Natürlich kann es immer noch sein, dass der Server auf dem das Bild liegen sollte einfach ein anderes Bild als 404-'Seite' gesendet hat.
b) Der kompliziertere, lehrreiche und richtige: Baue eine HTTP-Verbindung zum Server auf, setze einen HEAD-Request auf das Bild ab und schau' dir den zurückgegebenen Status an. Dazu gibt es Beispiel im Archiv und in der PHP-Doku, Stichwort fsockopen.
c) Der einfachere, immer noch richtige: Benutze curl (http://www.php.net/manual/en/ref.curl.php) um die Verbindung für dich aufzubauen und den Request abzusetzen.