2013-12-11 4 views
2

Я пытаюсь использовать вызов AJAX для извлечения некоторых данных и возврата нескольким фрагментам данных вызывающему через JSON. Он работает для определенных тестов, которые включают простой вывод. Но когда один из возвращаемых элементов является HTML, он не работает. Любые мысли по этому поводу?Функция PHP json_encode возвращает blank {}

// get_answer() pulls some HTML back from an XML document 
$answer = $_SESSION['quiz_session']->get_answer(); 

// test output to make sure everything is working 
echo $answer; 

/** sample output ** 
*  
     <div> 
     <p> 
      <b> 
       <span class="gloss-def">a downward slope</span> 
      </b> 
     </p> 
     <p>Because the village was situated on the 
      <i>declivity</i> of a hill, it never flooded. 
     </p> 
     <p> 
      <i>Synonyms: decline; descent; grade; slant; tilt</i> 
     </p> 
     </div> 
* 
** end sample output **/ 

echo json_encode($answer); 
// will output {} 
+3

'json_encode()' будет делать, если он сталкивается с не-UTF8 символов в поле ввода. Однако ваш пример, похоже, не содержит таких символов. –

+3

Попробуйте 'utf8_encode ($ answer)' перед кодировкой json. – Rudie

+0

Это будет полезно, только если извлеченные данные будут закодированы в ISO-8859-1/latin1. Лучше попытаться выяснить, что именно происходит в первую очередь. –

ответ

2

Попробуйте добавить $ ответ и StdClass или массив, как

echo json_encode(array("answer"=>$answer)); 
+0

К сожалению, это не помогает, вывод: {"answer": {}} – user1527739

+0

, то это должна быть проблема кодирования, которую вы упомянули выше – vrunoa

Смежные вопросы