0

curl_multi_execレコードを変数に保存したいのですが、CURLOPT_RETURNTRANSFER = TRUEを使用した後、うまくいきませんでした。その後、調査を行い、curl_multi_getcontentを追加しました。これは正常に機能します。つまり、変数のレコード値を保存するだけです。変数の結果はほとんどありません。

$ch = curl_init();
    curl_setopt_array($ch, array(
        CURLOPT_URL => $stream_url,
        CURLOPT_ENCODING => "gzip",
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_USERPWD => $user.":".$pass,
        CURLOPT_WRITEFUNCTION => "print_out_data",
        //CURLOPT_RETURNTRANSFER => true,
        CURLOPT_VERBOSE => true // uncomment for curl verbosity

    ));

    $running = null;

    $mh = curl_multi_init();
    curl_multi_add_handle($mh, $ch);


    do {
        curl_multi_select($mh, 1);      
        curl_multi_exec($mh, $running); 
       $content = curl_multi_getcontent($ch);

          $arr = json_decode($content, true);
       // print_r($arr);
          $foo = $arr['id'];
          $bar = $arr['body'];

    } while($running > 0);

    curl_multi_remove_handle($mh, $ch);
    curl_multi_close($ch);
4

1 に答える 1

2

do {} while()を書く前に

$content = array();

ライン

$content = curl_multi_getcontent($ch);

に置き換えます

$content[] = curl_multi_getcontent($ch);

ループ書き込み後

print_r($content);
于 2013-02-22T12:11:00.643 に答える