卷曲请求不会定期刷新数据

时间:2017-03-15 14:04:28

标签: php curl

我正在向函数发出curl请求,并且在该函数中定期刷新数据。所以我想在我的调用函数中刷新数据后立即显示数据。但是在请求结束后我的回复会集体显示。我希望并排显示回应。

代码

    require_once 'mystream.php';
    stream_wrapper_register("var", "mystream") or die("Failed to register protocol");
        $myVar = '';

        // Open the "file"
        $fp = fopen("var://myVar", "r+");

        // Configuration of curl
        $ch = curl_init();
        $output = ' ';
        $url = '';
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $output);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0 );
        //curl_setopt($ch, CURLOPT_BUFFERSIZE, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FILE, $fp);    // Data will be sent to our stream ;-)
        curl_exec($ch);
        curl_close($ch);

        // Don't forget to close the "file" / stream
        fclose($fp);

mystream.php代码

<?php

class mystream{

protected $buffer = '';

function stream_open($path, $mode, $options, &$opened_path) {
    return true;
}

public function stream_write($data) {
    ob_start(); 
    echo $data;
    ob_end_flush();
    ob_flush();
    flush();

    // Extract the lines ; on y tests, data was 8192 bytes long ; never more
    $lines = explode("\n", $data);

    // The buffer contains the end of the last line from previous time
    // => Is goes at the beginning of the first line we are getting this time
    $lines[0] = $this->buffer . $lines[0];

    // And the last line os only partial
    // => save it for next time, and remove it from the list this time
    $nb_lines = count($lines);

    $this->buffer = $lines[$nb_lines-1];

    unset($lines[$nb_lines-1]);

    // Here, do your work with the lines you have in the buffer
    //var_dump($lines);
    //echo '<hr />';

    return strlen($data);
}
}

任何线索都会受到高度赞赏。

0 个答案:

没有答案