我正在尝试使用Prestashop实例的图像产品更新页面。
我使用prestashop网络服务获取信息。
问题是,当我加载页面时,它会询问prestashop的令牌/密钥,但我想使用Url和我从CURL传递的密钥保存登录会话,而不是每次都输入密钥。
但是curl_exec
的输出是一些奇怪的字符,例如��#B��R��$3br�
以下是保存会话的功能:
function saveSession($url, $key){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
我不知道问题是编码,标题还是有其他解决方案!?
答案 0 :(得分:24)
响应中的奇怪数据是curl无法检测到的压缩内容。
替换它:
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
使用:
curl_setopt($ch, CURLOPT_ENCODING, '');
空编码意味着处理任何类型的编码。它应该解决你的问题。