0

我需要你在 PHP 中使用 cURL 的帮助。

我正在尝试获取一个页面并将其转换为 JSON,但我的 cURL 响应中有奇怪的字符:因此我无法转换它。此字符显示在我要查找的页面的 !doctype 之前。

header('Content-type: text/html; charset=utf-8');在 PHP 中设置并使用了

'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');

对于卷曲。

卷曲代码:

$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);

有人有想法吗?

4

1 回答 1

3

这 3 个初始字符称为BOM 标记。它用于确定文件的编码。您可以尝试通过为 HTML 响应添加子字符串来剥离它:

$response = substr($response, 3);
于 2013-08-05T09:08:28.647 回答