[PHP] Fread en Fgets blijven soms hangen *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een functie die iets van een website opslaat naar de webserver.
Maar nou blijft hij soms in de fread of fgets loop hangen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    $fp = @fsockopen("$host", 80, $errno, $errstr, 30);
    @stream_set_timeout($fp, 30);

    if($fp)
    {
        $out = "GET $file HTTP/1.0\r\n";
        $out .= "Host: $host\r\n";
        $out .= "Referer: $referer\r\n";
        $out .= "User-Agent: Mozilla\r\n";
        $out .= "Accept: text/xml,text/html,text/plain\r\n";
        $out .= "Accept-Charset: ISO-8859-1,utf-8\r\n";
        $out .= "Cache-Control: max-age=0\r\n";
        $out .= "Connection: Close\r\n";
        $out .= "\r\n";
    
        $image = "";
        $i=0;

        fputs($fp,"$out");  
        while(!feof($fp) && (connection_status()==0)) 
        {
            $image .= fread($fp,4096);
            $i++;
        }
    }

Het gekke is dat hij steeds met een andere url blijft hangen, dus het ligt niet aan de code ervoor want die haalt altijd de goede url van het bestand uit de code en die is ook niet down ofzo.

Hoe kan dat nou? En hoe kan ik ervoor zorgen dat hij als het om de een of andere reden niet lukt, uit de loop gaat.

Ik heb heel google al afgezocht, maar ik kon niets nuttigs vinden.

Acties:
  • 0 Henk 'm!

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 20-09 21:57

JaWi

maak het maar stuk hoor...

Just a wild guess: fread blijft hangen omdat hij niet de volledige 4096 bytes kan lezen (bijv. omdat de grootte van het bestand waarna de URL verwijst geen veelvoud van 4096 is)?

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:51

Creepy

Tactical Espionage Splatterer

Ik heb je topictitel aangepast. fread en fgets zijn nu niet een specifiek PHP iets. Let je hier in het vervolg zelf op? ;)

Maar hij blijft SOMS hangen? Zoek eens uit in welke gevallen, dat scheelt een stuk. Heb je al enig idee waarom het blijft hangen? Zie ook P&W FAQ - Leer **** debuggen!!

[ Voor 7% gewijzigd door Creepy op 24-05-2005 15:14 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nou hij blijft dus random hangen,
ik test iets van 200 urls achter elkaar in 1 loop.
Ik print en flush bij alles wat hij doet, en soms hangt ie meteen bij de 2e url al
en soms in het midden ergens. Dus steeds met een andere url.
Maar wel steeds in de fread loop.
Dus ik aan de content ligt het niet lijkt me.

[ Voor 6% gewijzigd door Verwijderd op 24-05-2005 15:21 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
als iemand een andere oplossing heeft om een file op te slaan vanaf een http adres, dan vind ik het ook prima. Maar ik moet wel een referer mee kunnen geven. En dat kan bv met lynx niet volgensmij.

Acties:
  • 0 Henk 'm!

  • [ti]
  • Registratie: Februari 2000
  • Niet online

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Als je nou eerst eens die @ weg haalt, dan kun je eens zien of een van die functies ook een error geven. Nu onderdruk je deze error's. Maak je ook gebruik van error_reporting(E_ALL) boven aan je script, of in je php.ini configuratie bestand?
Pagina: 1