我有一个生成HTML内容的php脚本。有没有办法通过JSON将该HTML内容从PHP脚本发送回我的网页?
答案 0 :(得分:27)
是的,您可以使用json_encode
获取HTML字符串并在必要时将其转义。
请注意,在JSON中,顶级项必须是一个数组或对象 (这不再是真的),它不能只是一个字符串。因此,您需要创建一个对象并使HTML字符串成为对象的属性(可能是唯一的一个),因此生成的JSON看起来像:
{"html": "<p>I'm the markup</p>"}
答案 1 :(得分:2)
只是为了拓展@ T.J。克劳德的回答。
json_encode
适用于简单的html字符串,但根据我的经验,json_encode
经常会被混淆的(或者很难正确转义)与PHP混合的更复杂的嵌套html。如果您处于这个位置,需要考虑的两个选项是:首先使用[base64_encode][1]
/ decode(相当多的性能命中)来编码/解码标记,或者(并且可能最好)更多选择你通过json传递的内容,并在客户端生成必要的标记。
答案 2 :(得分:2)
喜欢这个
首先将所有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);
答案 3 :(得分:2)
所有字符串数据必须采用UTF-8编码。
$out = array(
'render' => utf8_encode($renderOutput),
'text' => utf8_encode($textOutput)
);
$out = json_encode($out);
die($out);
答案 4 :(得分:1)
在PHP中:
$data = "<html>....";
exit(json_encode($data));
然后你应该使用AJAX来检索数据并用它做你想做的事情。我建议使用JQuery:http://api.jquery.com/jQuery.getJSON/
答案 5 :(得分:1)
您可以将其作为字符串发送,为什么不呢。但是你可能有点想念JSON,因为据我所知,关键是只发送所需的数据并将它们包装到客户端的HTML中。
答案 6 :(得分:0)
所有这些答案对我都无效。
但是这个做到了:
select regexp_replace('AA_BB_CC_EEFfjdkaljfkal', '^(.*(EEE|EEF|EEG)).*$', '\1');
regexp_replace
----------------
AA_BB_CC_EEF
(1 row)
感谢this answer。