phpbar.de logo

Mailinglisten-Archive

[php] Problem mit fsockopen

[php] Problem mit fsockopen

Gloss Mathias php_(at)_phpcenter.de
Tue, 15 Oct 2002 12:23:20 +0200


Aloha,

> Von: 	Jochen Metzger[SMTP:j.metzger_(at)_steptown.com]
>
> Kurz und knapp:
> Warum wird bei folgendem Code nicht 3 x der Inhalt angezeigt,
> sondern nur einmal? Kann ich eine geöffnete Verbindung nicht
> wieder benutzen?
>
> <?php
> for ($i=0;$i<=3;$i++){
>     print "<br>".$i;
>
>     if(!isset($mysocket))
>         $mysocket = fsockopen("www.google.de", 80);
---------^  Hast du hier mal mit echo "Blubber" ausprobiert,
            ob der gleiche Socket nochmal benutzt wird?

>     fputs($mysocket,"GET / HTTP/1.0\n\n");
>     while(!feof($mysocket)) {
>         echo fgets($mysocket,128);
>     }
> }
> fclose($mysocket);
> ?>
>
Falls du immer mit dem gleichen Socket arbeitest, dann kann
das nur einmal funktionieren. Du liest mit der while-Schleife
über die Datei, und bei EOF bleibt dann der Zeiger auf die
aktuelle Stelle der Datei stehen. Beim nächsten Lesen der
Datei bist du dann aber schon bei EOF ==> kommt nix mehr.

Du musst vor dem 2., 3., ... Lesen aus der Datei den Zeiger
auf den Anfang setzen. Das geht mit rewind() oder auch fseek().

Grüße, Mathias


php::bar PHP Wiki   -   Listenarchive