1

这对我来说是一个奇怪的问题。当我使用英文网站时,html_entity_decode工作正常,但是当我更改语言时,功能有点不工作 - 可以看到 HTML 标签。

trim(htmlentities($this->input->post('page_srb')))用来插入数据库并<?php echo html_entity_decode($page->page) ?>显示页面。似乎有什么问题?

这是我使用英语时的页面示例(目前我使用相同的文本) 在此处输入图像描述

这是我更改为塞尔维亚语时页面的相同示例:

在此处输入图像描述

4

1 回答 1

2

永远不要混合视图和存储功能,这是不好的做法,我花了数年时间从开发机构的同行中挤出来。

使用正确的排序规则(utf-8?)将您的 HTML 存储在您的数据库中,然后在您不希望输出有效的 HTML 供浏览器呈现时使用 html_entities_encode(即,默认情况下,来自数据库的任何内容都将被取消转义/un-encoded 浏览器将呈现)。

通过这样做,它允许明确的分离和指导。经典示例是“如果有人直接在数据库中编辑您的文本怎么办?”,您可能会说这永远不会发生,但它可能在某个时候,或者有人可能能够通过另一种不编码的形式将数据插入到该表中数据。

定义一些编程规则并遵循它们。如果您插入数据,则重点保护存储,如果输出,则重点保护客户端。从长远来看,一致性将得到回报。

于 2013-09-10T10:35:50.637 回答