html转图片 laravel,关于php:Laravel在刀片模板中转义所有HTML

我在Laravel中建立了一个小型CMS,并试图显示其内容(存储在数据库中)。 它显示的是HTML标记,而不是执行它们。 就像所有打印数据都有自动html_entity_decode一样。

class CmsController extends BaseController

{

public function Content($name)

{

$data = Pages::where('CID', '=', Config::get('company.CID'))

->where('page_name', '=', $name)

->first();

return View::make('cms.page')->with('content', $data);

}

}

我试图使用花括号打印内容。

{{ $content->page_desc }}

和三个大括号。

{{{ $content->page_desc }}}

他们给出相同的结果。 我需要执行这些HTML标记,而不是转义它们。

在最新版本的ver-5.0 {{...}}和{{{...}}}中都执行此操作,那么您究竟拥有什么版本?

即时通讯使用版本4.2

然后我不确定为什么{{...}}给出了转义结果!

在v-5中,将{!! !!}用于常规输出(不带esc)。

它们是否存储为"标签"或已在数据库中转义? 因为否则我会像Alpha那样看待它,这仅在laravel v5中是这种情况

这是我在问我的问题之前检查的第一件事,是的,它们通常存储在sql表中

@ Dr.Neo Ive修改了我的答案。 也许会对您有帮助

{!! !!}语法肯定在Laravel 5中对我有用。

将语法从{{ }}更改为{!! !!}。

正如Alpha在上面的评论(不是答案,所以我想我要发表)中说的那样,在Laravel 5中,{{ }}(以前是非转义的输出语法)已更改为{!! !!}。将{{ }}替换为{!! !!},它应该可以工作。

解决我的情况!

像魔术一样工作。 谢谢!! 虽然我不知道为什么html_entity_decode无法正常工作。

使用此标签{!!说明文字!}

这个答案在Laravel 5.2中对我有用。 在解决该问题的过程中,我还发现,如果您不使用以下语法,则Illuminate / Support / helpers.php :: 529将运行htmlentities():{!! !!}。

将内容包括在{! !}。

我遇到过同样的问题。感谢您以上的回答,我解决了我的问题。如果有人面临相同的问题,可以通过以下两种方法解决此问题:

您可以使用{!! $news->body !!}

您可以使用传统的php开放(不推荐),例如:

希望对您有所帮助。

在刀片模板中显示HTML代码没有问题。

为了进行测试,您只能将一条路由添加到routes.php:

Route::get('/', function () {

$data = new stdClass();

$data->page_desc

= 'aaabbb

New paragaph

return View::make('hello')->with('content', $data);

}

);

并在hello.blade.php文件中:

{{ $content->page_desc }}

对于以下代码,您将获得与图像一样的输出

5e01588c118ba78b839967e74955b316.png

因此,您的情况下page_desc可能不是您期望的。但是如您所见,如果有人使用'`标签,则可能存在潜在的危险,因此您可能应该在分配给刀片模板过滤器之前使用某些标签

编辑

我还通过将相同的代码放入数据库中进行了测试:

Route::get('/', function () {

$data = User::where('id','=',1)->first();

return View::make('hello')->with('content', $data);

}

);

在这种情况下,输出完全相同

编辑2

我也不知道Pages是您的模型还是供应商模型。例如,它可以在内部具有访问器:

public function getPageDescAttribute($value)

{

return htmlspecialchars($value);

}

然后当您获得page_desc属性时,将使用htmlspecialchars修改page_desc。因此,如果您确定数据库中的数据包含原始html(未转义),则应查看此Pages类

现在测试谢谢

{{html_entity_decode($ post-> content())}}使用Laravel 4.0为我解决了这个问题。现在,我的HTML内容已得到应有的解释。

是的,该解决方案实际上适用于laravel 4-也许有人知道L4的更好解决方案?

由于我们使用的是laravel,因此我们应该使用{!! !!}遵循Laravel语法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值