robert: URL auf Existens prüfen?

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

  1. 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

    --
    resist - Sich dem Irak-Krieg widersetzen!
    Informationen: http://www.resistthewar.de
    http://www.attac.de/globkrieg/
    --
    ss:) zu:{ ls:< fo:) de:< va:} ch:° n4:} rl:° br:> js:| ie:{ fl:( mo:)
    1. 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

  2. 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

    --
    Signatur oder nicht Signatur - das ist hier die Frage!
  3. 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.

    --
    Henryk Plötz
    Grüße von der Ostsee