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

  • Gast-Avatar
    Ein Gast erstellte das Thema Prüfen ob URL existiert.

    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

  • Gast-Avatar
    Ein Gast antwortete
    echt ?!
    gleich mal nahc schaun ^^

    thx^^

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Dann ist es bestimmt 80

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hmm aber ich kenne den port ja gar nicht^^

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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?

    Einen Kommentar schreiben:


  • derHund
    antwortet
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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?

    Einen Kommentar schreiben:


  • Chr!s
    antwortet
    Hm, nichtmal 2 Minuten in Google gesucht und das gefunden:
    http://froemter.de/php/phpLinkCheck.phps

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:


  • XLB
    antwortet
    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() ...

    Einen Kommentar schreiben:

Lädt...
X