Jump to content

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


pramodh
Go to solution Solved by DavidAM,

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

Link to comment
Share on other sites

  • Solution

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.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.