php上級者には当たり前なんだろうけどハマったので。
気付いた経緯
- ファイルをダウンロードさせるphpの処理の途中で別サーバのAPIをcurlで叩く処理を追加
- テストしている時にダウンロードしたデータの先頭にAPIのレスポンスボディが混ざっているのに気付く
- 😇
対策
CURLOPT_RETURNTRANSFER をtrueにする。なぜデフォルトで出力されるのか理解に苦しむ。。
$ch = curl_init ( "http://host/path" );
curl_setopt ( $ch, CURLOPT_POST, true );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $param);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_exec ( $ch );
curl_close ( $ch );