PHP不从JSON数据输出新行

时间:2013-06-21 14:44:07

标签: php html json

我收到一个包含json数据的feed,然后由php(json_decode)解码并回显到我的html页面。

Feed包含\n个字符,但是当PHP回显它们时,HTML不会将它们识别为新行或换行符,因此HTML文本只是一个大的文本墙。

当json数据中有\n时,有人可以给我一个提示,告诉我应该做些什么来让php回显或类似的东西?

作为一个例子,json数据可能包含“星期三星期五。\ n \ n更多雨。”但是当生成HTML时,它看起来就像是“星期五星期五。更多的雨”都在同一条线上。 / p>

谢谢!

3 个答案:

答案 0 :(得分:1)

您必须将'\ n'替换为HTML中的等效项,即br标记。

您可以通过以下方式输出字符串:

echo str_replace("\n", "<br />", $yourString);

答案 1 :(得分:1)

尝试:

echo nl2br($json_string);

答案 2 :(得分:0)

来自php.net:

http://fr2.php.net/manual/fr/function.json-decode.php#112084

function json_decode_nice($json, $assoc = TRUE){
    $json = str_replace(array("\n","\r"),"\\n",$json);
    $json = preg_replace('/([{,]+)(\s*)([^"]+?)\s*:/','$1"$3":',$json);
    $json = preg_replace('/(,)\s*}$/','}',$json);
    return json_decode($json,$assoc);
}