outStream = $outStream; $this->errorData = array(); $isError = null; curl_setopt($ch, CURLOPT_WRITEFUNCTION, array($this, 'writeData')); } function writeData($ch, $data) { if ($this->isError === null) { $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $this->isError = ($statusCode !== 200); } if ($this->isError) { $this->errorData[] = $data; } else { fwrite($this->outStream, $data); ob_flush(); } return strlen($data); } function getErrorBody() { return implode($this->errorData); } }