cURL PHP奇怪的人物

时间:2013-08-05 08:47:52

标签: php curl character

我需要你在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);

有人有想法吗?

1 个答案:

答案 0 :(得分:3)

这3个首字母称为BOM mark。它用于确定文件的编码。您可以尝试通过对HTML响应进行子字符串来删除它:

$response = substr($response, 3);