显示包含 html 的 json 数据
display json data that contains html
我有以下json
[{
"date": "2011",
"content": "<p>Hello world?</p>"
},
{
"date": "2012",
"content": "<p><strong>Hello again</strong></p>"
}]
我的控制器有
public function index() {
$data['json'] = json_decode(file_get_contents('location_of_json_file.json'));
return view('index', $data);
}
我的观点有
@foreach ($json as $a)
{{ $a->content }}
@endforeach
但我得到的是
<p>Hello world?</p>
<p><strong>Hello again</strong></p>
如何让它解析 html 代码而不是显示语法?我试过 htmlentities
和 html_entity_decode
。我试图在代码的不同位置 json_encode
,我迷路了。请帮助。
Blade 输出标签在 Laravel 4 和 Laravel 5 之间发生了变化。您正在寻找:
{!! $a->content !!}
在 Laravel 4 中,{{ $data }}
会按原样回显数据,而 {{{ $data }}}
会在 运行 之后通过 htmlentities 回显数据。
但是,Laravel 5 已将其更改为 {{ $data }}
将通过 htmlentities 在 运行 之后回显数据,而新语法 {!! $data !!}
将按原样回显数据。
文档 here.
在 Laravel 5 中,默认情况下 {{ ... }}
将使用 htmlentities
转义输出。要输出得到解释的原始 HTML 使用 {!! ... !!}
:
@foreach ($json as $a)
{!! $a->content !!}
@endforeach
我有以下json
[{
"date": "2011",
"content": "<p>Hello world?</p>"
},
{
"date": "2012",
"content": "<p><strong>Hello again</strong></p>"
}]
我的控制器有
public function index() {
$data['json'] = json_decode(file_get_contents('location_of_json_file.json'));
return view('index', $data);
}
我的观点有
@foreach ($json as $a)
{{ $a->content }}
@endforeach
但我得到的是
<p>Hello world?</p>
<p><strong>Hello again</strong></p>
如何让它解析 html 代码而不是显示语法?我试过 htmlentities
和 html_entity_decode
。我试图在代码的不同位置 json_encode
,我迷路了。请帮助。
Blade 输出标签在 Laravel 4 和 Laravel 5 之间发生了变化。您正在寻找:
{!! $a->content !!}
在 Laravel 4 中,{{ $data }}
会按原样回显数据,而 {{{ $data }}}
会在 运行 之后通过 htmlentities 回显数据。
但是,Laravel 5 已将其更改为 {{ $data }}
将通过 htmlentities 在 运行 之后回显数据,而新语法 {!! $data !!}
将按原样回显数据。
文档 here.
在 Laravel 5 中,默认情况下 {{ ... }}
将使用 htmlentities
转义输出。要输出得到解释的原始 HTML 使用 {!! ... !!}
:
@foreach ($json as $a)
{!! $a->content !!}
@endforeach