curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'curl_write_flush')
をインクルードする場合、ヘッダー を $body
に挿入します。ただし、CURLOPT_WRITEFUNCTION
を使用しないと、すべてが正常に動作します。ヘッダーに $body
が挿入されないようにするにはどうすればよいですか?
<?php $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, "https://stackoverflow.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 関数curl_write_flush($curl_handle, $chunk) { エコー$チャンク; ob_flush(); 流す(); strlen($chunk)を返します; } curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'curl_write_flush'); // なしでも動作します $response =curl_exec($ch); $header_size =curl_getinfo($ch, CURLINFO_HEADER_SIZE); カール_クローズ($ch); $headers = substr($response, 0, $header_size); $body = substr($response, $header_size); 死ぬ($body); ?>
https://curl.se/libcurl/c/CURLOPT_WRITEFUNCTION.html
curl_setopt($ch, CURLOPT_HEADER, 1);
を削除するか、コールバック データからヘッダーを自分で解析する必要があります。この回答に示されているように、
CURLOPT_HEADERFUNCTION
を使用することもできます:https://stackoverflow.com/a/41135574/1064767