このコード:
$headersSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$responseHeaders = substr($response, 0, $headersSize);
$responseBody = substr($response, $headersSize);
ヘッダーの間違ったサイズ (strlen) を返します。たとえば、次のようになります。
...
Pragma: no-cache
Set-Cookie: foo=bar; pat
---- curl want split here ----
h=/
Access-Control-Allow-Origin: *
<!DOCTYPE html ...
応答には複数のヘッダー (リダイレクト、続行など) を含めることができます。そしてもちろん、これはうまくいきません:
list($header, $body) = explode("\r\n\r\n", $response, 2);
ヘッダーの決定サイズを修正するには?