curl 返回未知符号:(


curl returns uknown symbols :(

我正在执行一个 curl 命令,它是:

     $datapost = curl_init();
$headers = array('Cache-Control: max-age=0', 'RequestVerificationToken: iV2bw0_y6G2IjrjpdbUkXcpaq3iXk3vpr7NbSIWcP6SpIqvepVeabh7QWLGlOwUOE4Io-PqQOHBp7iJQZWW36HCQjt01:6pk0ApHvxxfzlNKC05af2073796HZ7vaMw5pjn2uUhcZYCUBNnC-I0m3-mPo7_9frrfNx8WZbn3abykOlWh25DhglOS9O4mGlHOCEpoCMfxIvMuR0');
curl_setopt($datapost, CURLOPT_URL, $site);
curl_setopt($datapost, CURLOPT_TIMEOUT, 40000);
curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers);
curl_setopt($datapost, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($datapost, CURLOPT_POST, TRUE);
curl_setopt($datapost, CURLOPT_POSTFIELDS, $data);
curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch,CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
ob_start();
return curl_exec ($datapost);
ob_end_clean();
curl_close ($datapost);
unset($datapost);      

这给了我以下内容:带有响应标头的图像,但结果如下所示:rו _ $ " EJ

如何将此数据解码为可读文本?

2 个问题,1:你在 ob_end_clean() 之前返回试试这个:

ob_start();
$ret=curl_exec ($datapost);
echo ob_get_clean();
return $ret;

和 2:您没有设置正确的内容类型标头,因此浏览器尝试将图像二进制数据呈现为文本。

例如,如果它是一个JPG文件,请执行此操作

header('Content-Type: image/jpeg');