0

我无法获得下面的数组来用 HTML 换行符替换回车符和换行符<br />

JSON 数组:

{"水果":"苹果","蔬菜":"胡萝卜\r\n芹菜\r\n\r\n黄瓜"}

我正在尝试这个并且没有运气:

$html = json_decode(nl2br($json),true);

换行符在 HTML 本身的源代码中可见,但是我无法获取<br />替换“换行符”的代码。

我也尝试过这个建议,但它也不起作用: Replacing \r\n (newline characters) after running json_encode

4

4 回答 4

1

在 JSON 解码后运行nl2br(),而不是在 JSON 数组源上运行。

于 2014-01-31T04:41:02.250 回答
0

也许你应该尝试

$arJson = array( 'fruit' => 'apple', 
                 'veggies' => array( 'carrot', 'celery', 'cucumbers' ) );

header( 'Content-Type: application/json' );

print json_encode( $arJson );

它返回一个 JSON

然后使用 jQuery 或您最喜欢的库(甚至是自定义构建库)向页面发送 ajax 请求。

$.ajax({

    url: 'frtsnvgs.php',
    dataType: 'JSON',
    success: function( oData ) {
        $.each( oData, function( key, value ) {
            document.write( key + ': ' + value + '<br>' );
        });
    }

});
于 2014-01-31T04:40:37.417 回答
0

试试这个代码。这可能会帮助你

$json = '{"Fruit":"Apple","Veggies":"Carrot\r\nCelery\r\n\r\nCucumbers"}';
$json = json_decode($json,true);
array_walk($json, function(&$val){$val = html_entity_decode(nl2br($val));});
echo "<pre>";
print_r($json);
echo "</pre>";
exit;
于 2014-01-31T05:38:26.893 回答
0

利用

$html = json_decode(nl2br($json,false),true);

句法:nl2br(string,xhtml)

有:xhtml可选。一个布尔值,指示是否使用与 XHTML 兼容的换行符:

TRUE- 默认。插入物<br />

FALSE- 插入物<br>

<br />它会产生 json 错误。

于 2020-12-01T02:06:55.623 回答