Jump to content

fsockopen() and fgets() is slowing page load almost 3mins


pramodh

Recommended Posts

function pullpage( $method, $host, $usepath, $postdata) {
    # open socket to filehandle
    $fp = fsockopen($host, 80,$errno,$errstr,30 );
    # user-agent name
    
    $_session['fp'] = $fp;
    $ua = "Mozilla/1.0";

    if( !$fp ) {
        print "$errstr ($errno)<br>\n ERROR NO FP";
    }
    else {
        if( $method == "GET" ) {
            fputs( $fp, "GET $usepath HTTP/1.0\n");
        }

        else if( $method == "POST" ) {
            $strlength = strlen($postdata);

            $postinfo .= "POST $usepath HTTP/1.1 \r\n";
            $postinfo .= "User-Agent: ".$ua."\r\n";
            $postinfo .= "Accept: */*\r\n";
            $postinfo .= "Host: $host\r\n";
            $postinfo .="Connection: Close";
            $postinfo .= "Content-Type: application/x-www-form-urlencoded \r\n";
            $postinfo .= "Content-Length: ".$strlength."\r\n\r\n";
            $postinfo .= $postdata ."\r\n" ;
            
            fputs( $fp, $postinfo);
            
        }
    
        $output = "";
        # while content exists, keep retrieving document in 1K chunks
        //while( !feof( $fp ) ) {
        foreach($fp as $fps){
            $output .= fgets($fps,1024);
        }

        fclose($fp);
    }
    
    return $output;
}

i am have performance issue regarding code want help

thank you

This is NOT a help forum! Do not post topics asking for help that are not related to the website.

Moved to PHP Coding Help forum.

 

Please use code tags (the <> button in the editor or


) when posting code.

 

I would recommend using curl instead of managing the socket yourself.

 

When do you have performance problems? GET or POST

 

How is the function being called and under what circumstances?

 

 

//while( !feof( $fp ) ) {
foreach($fp as $fps){
   $output .= fgets($fps,1024);
}

 

$fp is a resource and is not a valid target of foreach. Why did you take out the while statement?

 

You need to turn on error reporting so you can see the errors, warnings and notices. Fix them all.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.