Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Minirobot per PHP - aber ein Problem...

  1. #1
    Andy09
    Gast

    Unhappy Minirobot per PHP - aber ein Problem...

    Hi Leute,

    habe aus dem Linuxforum gerade den Tipp bekommen das ich mit meinem kleinen Problemchen hier bessere Erfolgschancen haben könnte

    Also als erstes, ich bin eigentlich eher ein eingefleischter ASP-Programmierer und steige gerade in PHP so HALBWEGS durch. Jetzt hab ich ein Problem. Bevor ein Link geöffnet werden soll, soll mein Skript prüfen ob es diese Seite überhaupt noch gibt. Das habe ich so realisiert erstmal...
    PHP-Code:
    <?php  
    $fp 
    fsockopen"$domain"80, &$errno, &$errdesc);  
    if ( ! 
    $fp )  

    die ( 
    "Keine Verbindung zu $domain:\nFehler: $errno\nBeschreibung: $errdesc\n" );  
    }  
    $anfrage "GET /$seite HTTP/1.0\r\n";  
    $anfrage .= "Host: $domain\r\n";  
    $anfrage .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";  
    $anfrage .= "Accept-Language: de\r\n"
    $anfrage .= "Referer: $referer \n\r\n";;  

    fputs $fp$anfrage );  
    socket_set_timeout($fp5); 
    $head fread($fp1024);  
    print 
    "$head";  
    ?>
    Das Problem ist nur, ich kann sowohl die Methode GET als auch die Methode HEAD nehmen, es gibt scheinbar ein paar Server die senden absolut null rüber, weder ein Error, noch die angeforderte Seite. Jetzt hab ich da so die \r\n-Sachen im Verdacht, bin mir aber nicht sicher. Kann mir bitte einer helfen?!

    Ich kann nur sagen WAS passiert: Bei den meisten Server wird mir brav der HEADER bzw. die ersten 1024 Zeichen rübergegeben, was mir ja schon mal ausreicht. Aber bei einigen wird mir absolut NULL zurückgegeben, fsockopen funzt einwandfrei, aber fread würde bis Weihnachten stehen bleiben bzw. bis natürlich der PHP-Timeout anschlägt.

    Bitte helft mir mal auf die Sprünge ich hab auch nichts in meinen Büchern so richtig finden können

    Gruß
    Andy

  2. #2
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo!

    Wenn´s nur darum geht die Verfügbarkeit des Servers zu prüfen, dann reicht ja das öffnen der Socketverbindung eigentlich schon aus.
    Wenn du überprüfen willst ob die Seite existiert, dann ist HEAD wohl besser geeignet als GET - weniger overhead durch Datentransfer.

    Diese Zeile hier sieht mir nicht ganz richtig aus:
    $anfrage .= "Referer: $referer \n\r\n";;

    Ansonsten kannste dir das hier mal anschauen:
    http://selfforum.teamone.de/archiv/2002/10/25571/

    Gruß,

    Gaert


  3. #3
    Andy09
    Gast
    Hallo Gaert,

    vielen Dank für deine Antwort. Ich hatte vorher auch die HEAD Methode
    gehabt und später zum testen auf GET gesetzt, was leider das gleiche
    Ergebnis hatte.

    Ooops, ein doppeltes ; drin, danke

    Ich hab mich durch den ganzen Beitrag durchgelesen, ich bin Schritt für Schritt sein Skript durchgegangen, nichts, ausser ein abbruptes Ende des Threads mit der Bemerkung Ach ja vergaß: Es funktioniert jetzt...

    Jetzt bin ich genau so schlau wie zuvor auch

    Hat vielleicht noch jemand eine Idee warum ich von manchen Seiten als HEADER gar keine Antwort erhalte!?!?!

    Gruß
    Andy

  4. #4
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Original geschrieben von Andy09

    Ooops, ein doppeltes ; drin, danke
    Ich meinte auch noch das \n das zuviel war... zu deinem Problem fällt mir auf die schnelle jetzt leider auch nichts mehr ein.


  5. #5
    Andy09
    Gast
    Original geschrieben von Gaert
    Ich meinte auch noch das \n das zuviel war...
    Hi,

    im Gegenteil, eigentlich fehlte noch das \r denn der Header erfordert eine leere Leerzeile damit der Server weiss das die Header-Übergabe bzw. Anfrage abgeschlossen ist

    zu deinem Problem fällt mir auf die schnelle jetzt leider auch nichts mehr ein
    schade - mir auch nicht mehr
    vielleicht hab ich ja noch Glück und jemand fällt noch was ein der über diesen Thread stolpert Ich probiere mal solange weiter mein Glück...

    Gruß
    Andy

  6. #6
    Registrierter Benutzer
    Registriert seit
    20.07.2003
    Beiträge
    147
    Hallo.

    Ich bin mir da jetzt nicht ganz sicher, aber ich faende es logischer die Zeilenschaltung vor dem Ruecklauf zu senden. Vielleicht wird das sonst als Leerzeile angesehen?

    mfg

    c.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •