php - 使用 PHP 将 Curl 检索到的 HTML 字符串转换为 JSON,使用 AJAX 服务

标签 php javascript ajax json curl

我正在使用 Javascript(AJAX;原型(prototype))和 PHP(Curl)构建一个抓取工具。 url 通过 AJAX 提供给 PHP/Curl。

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

如果我发送原始 responseText 它工作正常,html(字符串)将呈现在我的屏幕上。然而,当我尝试 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);

最佳答案

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

尝试做

$scrape = mb_convert_encoding($scrape, 'utf-8');

在 json_encode 之前

关于php - 使用 PHP 将 Curl 检索到的 HTML 字符串转换为 JSON,使用 AJAX 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1451217/

相关文章:

php - 按价格对 Woocommerce 产品变体自定义输出进行排序

php - MongoDB 使用 PHP 返回数组来填充下拉列表

javascript - jQuery:嵌套可排序项目在良好的浏览器中工作正常,但在 IE7 中,可排序子项和父项同时拖动

javascript - Google Apps 脚本 HTML 服务 : Scroll to top of window

javascript - 使用 AJAX 请求获取数组并将其传递到 php 数组

javascript - 处理服务器响应 AJAX

php - 使用 API 获取封面 - URL 错误

javascript - AngularJs:将 ng-model 绑定(bind)到单选按钮列表

javascript - 带有更新面板的 div 之间的转换

php - 每 1/10 秒网页上的随机词