Подтвердить что ты не робот

Отправка HTML-кода через JSON

У меня есть php script, который генерирует HTML-контент. Есть ли способ отправить этот HTML-контент через JSON на мою веб-страницу с PHP скрипт?

4b9b3361

Ответ 1

Да, вы можете использовать json_encode, чтобы взять вашу строку HTML и избежать ее при необходимости.

Обратите внимание, что в JSON элемент верхнего уровня должен быть массивом или объектом (что неверно больше), это не просто строка. Таким образом, вы захотите создать объект и сделать строку HTML свойством объекта (возможно, единственного), поэтому полученный JSON выглядит примерно так:

{"html": "<p>I'm the markup</p>"}

Ответ 2

Просто чтобы развернуть на @T.J. Ответ Краудера.

json_encode отлично справляется с простыми html-строками, но, по моему опыту, json_encode часто путается, (или становится довольно сложно правильно скрыть) более сложный вложенный html, смешанный с php. Два варианта для рассмотрения, если вы находитесь в этом положении: кодирование/декодирование разметки сначала с чем-то вроде [base64_encode][1]/декодирование (довольно небольшое поражение производительности), или (и, возможно, предпочтительно) быть более избирательным в том, что вы проходите через json, и генерировать необходимую разметку на стороне клиента.

Ответ 3

Похоже на это

1 поместите весь свой HTML-массив в массив, затем json_encode

$html_content="<p>hello this is sample text";
$json_array=array(

'content'=>50,
'html_content'=>$html_content
);
echo json_encode($json_array);

Ответ 4

Все строковые данные должны кодироваться в кодировке UTF-8.

$out = array(
   'render' => utf8_encode($renderOutput), 
   'text' => utf8_encode($textOutput)
);

$out = json_encode($out);
die($out);

Ответ 5

В PHP:

$data = "<html>....";
exit(json_encode($data));

Затем вы должны использовать AJAX для извлечения данных и делать с ними то, что вы хотите. Я предлагаю использовать JQuery: http://api.jquery.com/jQuery.getJSON/

Ответ 6

Вы можете отправить его как строку, почему бы и нет. Но вы, вероятно, пропустили JSON здесь немного, поскольку, насколько я понимаю, дело в том, чтобы отправить только необходимые данные и обернуть их в HTML на клиенте.