使用PHP将Curl检索的HTML字符串转换为JSON,并使用AJAX

ric*_*ard 1 javascript php ajax json curl

我正在使用Javascript(AJAX; Prototype)和PHP(Curl)构建一个scraper.该URL通过AJAX提供给PHP/Curl.

响应是一个巨大的HTML字符串.我想将JSON中的字符串发送到Javascript,以便我可以处理它.

如果我发送原始的responseText它工作正常,html(字符串)get在我的屏幕上呈现.但是,当我尝试PHP的json_encode()函数时,我得到'null'.

我究竟做错了什么?或者有更好的方法将HTML字符串转换为JSON吗?我正在运行PHP5.3,尝试了JSON_FORCE_OBJECT但没有运气..请帮助我,我一直在敲打这个太久了... :(

这是当前的PHP代码(如果我删除它工作的json_encode函数):

$url = $_GET['url'];

$ch = curl_init() or die(curl_error()); 

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$scrape = curl_exec($ch) or die(curl_error()); 

echo json_encode($scrape);
echo curl_error($ch);

curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

mic*_*lik 5

你的$ scrape是否包含utf8编码的字符串?json_encode()仅适用于utf8.

试着做

$scrape = mb_convert_encoding($scrape, 'utf-8');
Run Code Online (Sandbox Code Playgroud)

在json_encode之前