Конвертировать извлеченную Curl HTML-строку в JSON с PHP, использовать с AJAX - PullRequest
1 голос
/ 20 сентября 2009

Я строю скребок с Javascript (AJAX; Prototype) и PHP (Curl). 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);

1 Ответ

5 голосов
/ 21 сентября 2009

Содержит ли ваш $ scrape строку в кодировке utf8? json_encode () работает только с utf8.

Попробуйте сделать

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

до json_encode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...