Existierenden Link anzeigen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Existierenden Link anzeigen

    Hallo,
    ich möchte einen Link zu einer entfernten Datei nur anzeigen, wenn die betreffende Datei existiert.

    Die Funktion is_file("http://server.com/verzeichnis/index.html") fünktioniert ja nicht mit entfernten Dateien.

    Wie kann man das dann abchecken?
    Gruß
    Ferdinand

  • #2
    Per HTTP anfragen, was für ein Statusheader zurückgesendet wird. Bei einem 404er wirst du zum Beispiel davon ausgehen können, dass die Datei nicht vorhanden ist!

    Kommentar


    • #3
      Stichwort: HEAD Request

      Kommentar


      • #4
        Original geschrieben von PHP-Desaster
        Per HTTP anfragen, was für ein Statusheader zurückgesendet wird. Bei einem 404er wirst du zum Beispiel davon ausgehen können, dass die Datei nicht vorhanden ist!
        Kannst du mir bitte einige Codezeilen als Beispiel schicken, damit ich eine Ahnung habe, wie das geht.

        Ich bin leider kein PHP Profi und habe die header Funktion bisher nur benutzt, um den Browser auf eine andere Seite umzuleiten.

        Danke im Voraus für deine Mühe.
        Gruß
        Ferdinand

        Kommentar


        • #5
          Beispiel mit dieser HttpClient-Klasse:
          PHP-Code:
          $host 'server.com';
          $path '/verzeichnis/index.html';
          $client = new HttpClient$host );
          if( 
          $client->get$path ) ) {
              echo 
          'Antwort mit Statuscode: '.$client->getStatus();
          }
          else {
              echo 
          'Anfrage fehlgeschlagen! Fehler: '.$client->getError();

          Kommentar


          • #6
            Tut mir leid, da verstehe ich nur Bahnhof
            Ich habe mich mit objektorientierter Programmierung unter PHP noch nicht beschäftigt.
            Aber daran wird's wohl nicht liegen, dass ich das nicht verstehe ...

            Ich möchte ja nur wissen, was ein HEAD Request ist und wie man den konkret macht oder, besser gesagt: Ich möchte feststellen, ob eine bestimmte HTTP Adresse überhaupt existiert.

            Ich bin im PHP Manual auf die HTTP Funktionen gestoßen. Aber, wenn ich z.B.
            Code:
            http_head("http://irgendeine_adresse.at");
            eingebe, erhalte ich die Meldung
            Code:
            Call to undefined function
            Gruß
            Ferdinand

            Kommentar


            • #7
              woran haperts denn? einfach die Klasse runterladen ins gleiche Verzeichnis wie deine PHP Datei, an den Anfang der Datei ein include 'HttpClient.class.php' und dann den Code von PHP-Desaster und dann schauen was beim Aufruf der Datei rauskommt.
              EDIT:

              die function http_head ist eine PECL Erweiterung, die, wenn du shared Hosting hast nur der Support installieren kann

              Kommentar


              • #8
                Also einfacher als in meinem Beispiel geht es ja kaum... Wie du einen HEAD-Request absetzen kannst, hättest du dir auch schnell googlen können!

                Kommentar

                Lädt...
                X