Ankündigung

Einklappen
Keine Ankündigung bisher.

Prüfen ob URL existiert

Einklappen

Neue Werbung 2019

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

  • Prüfen ob URL existiert

    Hallo,
    wie prüfe ich ob eine URL existiert?

    Das naheliegendste wäre fopen, aber da wird die Datei gleich heruntergeladen und wenn das eine 5MB mp3 is und ich da zwanzig aufliste (weil ich eine, wenn sie nicht mehr erreichbar is weglassen will) lädt der da 100MB runter! (dieses Minenfeld hab ich erkannt bevor ich drüber gelaufen bin).

    Hab in mehreren Google-Ergebnissen nun gelesen, man soll dem Server einen HTTP Header schicken, und dann die Antwort analysieren. Wie mach ich das am effektivsten? Die Antwort "fsockopen" bringt mir nicht viel, da in der Doku dort nichts Näheres über HTTP Header steht und die Beispiele in den Kommentaren mir zu kompliziert sind.

    Da musses doch sowas simples wie einen einfachen "Ping" geben oder?

    mfg


  • #2
    aber da wird die Datei gleich heruntergeladen ...
    Mal einen Blick in die Doku geworfen ?

    fopen() bindet eine benannte Resource, welche mittels filename spezifiziert wurde, an einen Stream.
    kein Download

    So könntest du's machen :

    PHP-Code:
    <?php

    $handle
    =@fopen("http://www.php.net/","r");

    if (
    $handle)
    {
        echo 
    'existent';
            
    fclose($handle);
    }
    else
    {
        echo 
    'net do!';
    }

    ?>
    Wenn du "ping" verwenden möchtest geht auch das : Doku
    Siehe dort auch, warum "ping" sinniger ist, als fopen() ...
    ToolsTool - Online (SEO-)Tools im Browser gleichzeitig starten ...

    Kommentar


    • #3
      Hab bisher auch nur gedacht, das die fopen inene Stream öffnet, aber ich hab nun in diversen Foren gelesen das die Leute meinen da Dateien runterzuladen. Das haut mich ausm Konzept.

      Das mit den PEAR Klassen hab ich auch gefunden, ist nicht brauchbar, da ich nicht vorhersehen kann ob auf den Servern auf denen das Skript läuft PEAR & Co installiert sind - was in den Meisten Fällen auch nicht der Fall ist, was du in solch einem Anfängerforum das nächste Mal lieber dazusagen solltest und es das Paket ziemlich aufbläst die Klassen mizuliefern.

      Meine Frage, welchen HTTP HEADER ich senden muss, bzw wie ich den auswerte, bleibt unbeantwortet.

      das muss doch einfach mit einem HTTP Header "Ping" und der header(); Funktion gehen. NUr wo find ich solch einen Header? Alle die ich auftreiben kann sind welche die auf den Inhalt der Datei eingehen.

      Oder betrifft die Header-Funktion nur loakle Dateien am Server? Der Grund gegen fopen war eigentlich, wie ich jetzt nachgelesen hab, das es ziemlich lang braucht. Bei mir gehts ziemlich schnell, aber im Moment is ja auch kaum Auslastung am Server.

      Kommentar


      • #4
        Hm, nichtmal 2 Minuten in Google gesucht und das gefunden:
        http://froemter.de/php/phpLinkCheck.phps

        Kommentar


        • #5
          hmm also bei mir geht das NICHT


          <?php

          $handle=@fopen("http://www.php.net/","r");

          if ($handle)
          {
          echo 'existent';
          fclose($handle);
          }
          else
          {
          echo 'net do!';
          }

          ?>
          wie kann ich dann schaun ob eine url vorhanden ist?

          Kommentar


          • #6
            wie kann ich dann schaun ob eine url vorhanden ist?
            mittels fsockopen! hast du eigentlich jemals ins manual geschaut?

            öffne den socket, wenn das fehlschlägt, ist der ganze server nicht da. im erfolgsfalle holst du dir die page, aber nur den ersten teil (response-header) - eigentlich nur die erste zeile, denn dort steht die statusmeldung. steht dort etwas anders als 304/200, ist die seite nicht rerreichbar.

            solltest du als response 301/302 erhalten, mußt du im header noch nach location suchen, und alles nochmal wiederholen.

            Kommentar


            • #7
              phpfriend.de Foren-Übersicht -> PHP - Anfänger
              Thread: Wichtig: Neu bei phpfriend.de? Interessante Links! PHP,MySQL,CSS,Scripte..
              http://www.faq-phpfriend.de/ ( URL hat sich geändert Arrow passender Thread )
              Codeschnipsel
              Wie überprüfe ich Hyperlinks auf ihre Gültigkeit?

              Kommentar


              • #8
                hmm aber ich kenne den port ja gar nicht^^

                Kommentar


                • #9
                  Dann ist es bestimmt 80

                  Kommentar


                  • #10
                    ist es immer 80?


                    und ausser dem schnalle ich das nicht:
                    eigentlich nur die erste zeile, denn dort steht die statusmeldung. steht dort etwas anders als 304/200, ist die seite nicht rerreichbar.

                    solltest du als response 301/302 erhalten, mußt du im header noch nach location suchen, und alles nochmal wiederholen.

                    Kommentar


                    • #11
                      Schau einfach unter
                      http://www.faq-phpfriend.de/ ( URL hat sich geändert Arrow passender Thread ) Arrow
                      Codeschnipsel Arrow
                      Wie überprüfe ich Hyperlinks auf ihre Gültigkeit?
                      nach.
                      Da gibt es fertigen Code zum Benutzen.

                      Kommentar


                      • #12
                        echt ?!
                        gleich mal nahc schaun ^^

                        thx^^

                        Kommentar

                        Lädt...
                        X