[Funktion] Timeout bei fopen !?

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

  • [Funktion] Timeout bei fopen !?

    Hallo,

    ich hab ein kleines Problem. Ich hab mir ein PHP Script gebastelt, dass eine bestimmte URL aufrufen soll. Ist diese nicht erreichbar soll die nächste URL aufgerufen werden.

    Dafür wäre die Festlegung eines Timeouts nützlich. Hat jemand eine Idee?

    PHP-Code:
    $open_url1 = @fopen($send_url1,"r");
    while (
    $result_url1 = @fgets($open_url1)) 
    Ich hoffe mir kann jemand helfen?!

    Gruß Timo

  • #2
    fsockopen() kann man einen Timeout mitgeben.

    Kommentar


    • #3
      Hi,

      da kam ich leider auch nicht zum Erfolg:


      Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/test.url.de/test.php on line 6

      Warning: fsockopen(): unable to connect to test.url83hd8.net/?var1=ide93j&var2=92928373&var3=hdhdhdue:80 in /var/www/test.url.de/test.php on line 6
      Gruß Timo

      Kommentar


      • #4
        Du darfst fsockopen keine komplette URI mitgeben, die sendet man später im Request, an fsockopen übergibts nur sowas in der Form:

        www.domain.de

        nicht jedoch:

        www.domain.de/seite.htm
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          hab nun mal ein wenig rumgespielt aber funktioniert nicht :-(
          erno gibt auch 0 zurück php.net sagt dazu:

          Wenn die erhaltene errno 0 ist und die Funktion FALSE/falsch zurück gibt, ist dies ein Hinweis, dass der Fehler vor dem >connect()-Aufruf geschah. Das ist ein Problem, dass häufig mit der Initialisierung des Sockets zusammen hängt.
          Hat jemand ne Idee, woran das dann liegen könnte?

          Kommentar


          • #6
            Zeig mal deinen aktuellen Code.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Zur Info: Es geht um den Aufruf eines SMS-Gateways, hab nun einige Daten geändert, normalerweise ist das ne URL, die auch existiert:


              PHP-Code:
              <?
              $kennung="Test";
              $handynr="0049123456789";
              $text="TEXT";
              $send_gw1="gateway.smssupermegatoll.de";
              $send_gw11="index.php?key=ssw888d8d8d8d8d&handynr=".$handynr."&kennung=".$kennung."&text=".$text."&service=fast";
              $fp = fsockopen($send_gw1, 80, $errno, $errstr, 10);
              if (!$fp) { echo"$errstr ($errno)<br>"; }

              else {
              fputs($fp, $send_gw11);
              while (!feof($fp)) {
              echo fgets($fp,128);

              fclose($fp);

              ?>

              Kommentar


              • #8


                Warum hast du dir onemorered's Link noch nicht genauer angeguckt? Da sind genügend Beispiele zu finden wie es gemacht wird. Das was du da machst ist nicht mehr als ein Schuss ins Blaue.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Original geschrieben von Quetschi


                  Warum hast du dir onemorered's Link noch nicht genauer angeguckt? Da sind genügend Beispiele zu finden wie es gemacht wird. Das was du da machst ist nicht mehr als ein Schuss ins Blaue.
                  hab ich ja gemacht.. direkt das erste Beispiel genommen und rumgebastelt.. Vielleicht wars auch das falsche Beispiel oder ich habs falsch interpretiert ;-)

                  Kommentar


                  • #10
                    soo.. nun hab ich weiter rumprobiert und

                    PHP-Code:
                    fputs($fp$send_gw11); 
                    mal durch

                    PHP-Code:
                    $get "GET /$send_gw11 HTTP/1.0\r\n\r\n";
                    fputs($fp$get); 
                    ersetzt. Nun passiert schonmal wenigstens etwas...

                    Der Server des Gateways sagt jedoch..

                    Not Found
                    The requested URL /index.php was not found on this server.

                    Dabei kann ich die Datei aufrufen, wenn ich http://gateway.smssupermegatoll.de/index.php im Browser eingebe ?!

                    Gruß Timo

                    Kommentar


                    • #11
                      Original geschrieben von sobdog
                      ...oder ich habs falsch interpretiert ;-)
                      Genau das

                      Informiere dich wie man einen GET-Request an einen Server absetzt - irgendwo gibts auch ne Seite, wo man eine Url eingeben kann und dann sieht man den Request der da erzeugt wird, fällt mir aber grad ned ein.

                      Aber bei onemorereds Link würdest ja genügend Beispiele finden. Tipp: so Sachen wie GET, HTTP/1.0 bzw. HTTP/1.1, Host: usw. steht da nicht zum Vergnügen drin.

                      EDIT:
                      Evtl. musst mit HTTP/1.1 zugreifen, schau dir auch die Userkommentare an, es steht wirklich genügend drin bei dem Link.
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        http://web-sniffer.net

                        Kommentar


                        • #13
                          *In_Lesezeichen_aufnehm*
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #14
                            Danke,

                            hat nun mit
                            PHP-Code:
                            $get "GET /$send_gw11 HTTP/1.0\r\nHost: $send_gw1\r\n\r\n"
                            funktioniert.

                            jetzt müsste ich nur noch wissen, wie ich mir das was auf der Seite, die ich aufgerufen habe angezeigt wird, in eine Variable 'reinhauen' kann!


                            Vielen Dank

                            Kommentar


                            • #15

                              Was hindert dich daran
                              PHP-Code:
                              echo fgets($fp,128); 
                              durch
                              PHP-Code:
                              $var .=  fgets($fp,128); 
                              zu ersetzen?
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X