json decode删除新行

时间:2015-06-26 05:36:03

标签: php json decode

找到我的Json代码。

$result  =  { 
        "text_1": 
            [
                { 
                    "text": "Name \nKarSho", 
                    "left": 0, 
                    "right": 0
                }
            ]
    }

我想在PHP中使用这个Json的“text”。我使用了以下脚本,

$json = json_decode($result,true);
if($json && isset($json['text_1']))
{
    $textblock =$json['text_1'][0];
    echo $textblock['text'];
}

它正在给予,

  

姓名KarSho

但我想,

  

姓名\ nKarSho

怎么办?

3 个答案:

答案 0 :(得分:4)

嗯,对于你的表现,它会给你Name \nKarSho作为输出,但是当你在HTML(在任何浏览器中)渲染时,你将看不到新的行,因为有多个空格和新的浏览器会忽略这些行,如果你去查看浏览器的来源,你会在那里看到一个新行,

如果您希望HTML显示新行,请使用

echo nl2br($textblock['text']);

这样您的新行就会转换为<br>标记,您将在HTML输出中看到它。

编辑:

如果你想在输出中看到\n(按原样),你只需要

echo json_encode($textblock['text']);

并删除引号,

echo trim(json_encode($textblock['text']), '"');

答案 1 :(得分:1)

OP不想要换行,他也希望打印\n

您可以转义\n,例如:

$name = "John \n Will";

echo str_replace("\n", "\\n", $name);

将输出:

John \n Will

答案 2 :(得分:0)

<?php  
header('Content-Type: text/plain'); 
$result  = '{"text_1": [{"text": "Name \nKarSho", "left": 0,"right": 0}]}';
$json = json_decode($result,true);
if($json && isset($json['text_1']))
{
    $textblock =$json['text_1'][0];
    echo $textblock['text'];
}

    ?>

使用标题功能显示下一行