我需要你在PHP中使用cURL的帮助。
我试图获取一个页面并将其转换为JSON,但我的cURL响应中有一些奇怪的特征:
因此我无法转换它。这个字符显示在我正在寻找的页面的!doctype之前。
我在PHP中设置了header('Content-type: text/html; charset=utf-8');
,我使用了
'Accept: text/xml,application/xml,application/xhtml+xml',
'text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
'Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3',
'Accept-Charset: utf-8;q=0.7,*;q=0.7',
'Keep-Alive: 300');
for cURL。
cURL代码:
$ch = curl_init($searchUrl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_USERAGENT, $agents[rand(0, count($agents) - 1)]);
$response = curl_exec($ch);
curl_close($ch);
有人有想法吗?
答案 0 :(得分:3)
这3个首字母称为BOM mark。它用于确定文件的编码。您可以尝试通过对HTML响应进行子字符串来删除它:
$response = substr($response, 3);