У меня есть php-скрипт, который генерирует HTML-контент. Есть ли способ отправить этот HTML-контент через JSON на мою веб-страницу из php-скрипта?
Да, вы можете использовать json_encode
чтобы взять вашу строку HTML и избежать ее при необходимости.
Обратите внимание, что в JSON элемент верхнего уровня должен быть массивом или объектом (это больше не верно) , это не просто строка. Таким образом, вы захотите создать объект и сделать HTML-строку свойством объекта (возможно, единственного), поэтому полученный JSON выглядит примерно так:
{"html": "<p>I'm the markup</p>"}
Сделать это
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);
Все строковые данные должны кодироваться в кодировке UTF-8.
$out = array( 'render' => utf8_encode($renderOutput), 'text' => utf8_encode($textOutput) ); $out = json_encode($out); die($out);
В PHP:
$data = "<html>...."; exit(json_encode($data));
Затем вы должны использовать AJAX для извлечения данных и делать с ними то, что вы хотите. Я предлагаю использовать JQuery: http://api.jquery.com/jQuery.getJSON/
Просто чтобы расширить ответ @TJ Crowder.
json_encode
отлично json_encode
с простыми html-строками, но в моем опыте, однако, json_encode
часто путается, (или становится довольно сложно правильно скрыть) более сложный вложенный html, смешанный с php. Два варианта рассмотрения, если вы находитесь в этой позиции: кодирование / декодирование разметки сначала с помощью чего-то вроде [base64_encode][1]
/ decode (довольно немного хита производительности) или (и, возможно, предпочтительно), быть более избирательным в том, что вы проходите через json и генерируете необходимую разметку на стороне клиента.
Вы можете отправить его как строку, почему бы и нет. Но вы, вероятно, пропустили JSON здесь немного, поскольку, насколько я понимаю, дело в том, чтобы отправить только нужные данные и обернуть их в HTML на клиенте.