Zend Form 解码填充数据

发布于 2025-01-08 06:21:23 字数 395 浏览 0 评论 0原文

我在解码来自数据库的数据时遇到了一些问题。

我的数据以 utf8 格式存储在数据库中,在本例中,数据是“corrosion & Corrosion & Corrosion”。 time”,存储为“corrosion & time”。现在我想用这些数据填充表单的字段,该字段应用了 htmlSpecialChars 过滤器。

当在浏览器中查看时,我看到: '腐蚀 & 时间'

如果我使用 html_entity_decode 我得到: '腐蚀 $amp; time'

如果我也从表单中删除过滤器,那么我会得到: '腐蚀与无论如何

,我可以在不从字段中删除过滤器的情况下填充表单吗?

Im having a bit of an issue with decoding data coming from a database.

My data is stored in the database as utf8, for this instance the data is 'corrosion & time', which is stored as 'corrosion & time'. Now i want to populate a field of the form with this data, this field has a htmlSpecialChars filter applied.

When viewed in the browser I see:
'corrosion & time'

If I use html_entity_decode i get:
'corrosion $amp; time'

and if i also remove the filter from the form i then get:
'corrosion & time'

Is there anyway i can populate the form without removing the filter from the field?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

童话 2025-01-15 06:21:23

您必须在填充表单之前对数据进行解码,过滤器不应应用于来自表单的数据,直到发布数据为止,这将在调用 getValues() 时重新应用过滤器。

如果您知道使用 htmlspecialchars 来编码数据,则使用 htmlspecialchars_decode 来解码数据。

Description

string htmlspecialchars_decode ( string $string [, int $quote_style = ENT_COMPAT ] )

 This function is the opposite of htmlspecialchars(). It converts special HTML entities back to characters. 

The converted entities are: &, " (when ENT_NOQUOTES is not set), ' (when ENT_QUOTES is set), < and >. 

you are going to have to decode the data before populating the form, the filter should not be applied to the data coming from the form until it's posted which will reapply the filter when getValues() is called.

If you know you used htmlspecialchars to encode the data then use htmlspecialchars_decode to decode the data.

Description

string htmlspecialchars_decode ( string $string [, int $quote_style = ENT_COMPAT ] )

 This function is the opposite of htmlspecialchars(). It converts special HTML entities back to characters. 

The converted entities are: &, " (when ENT_NOQUOTES is not set), ' (when ENT_QUOTES is set), < and >. 
帅冕 2025-01-15 06:21:23

我认为一个好的解决方案是创建自定义 Zend_Filter。在自定义过滤器中,使用 htmlspecialchars_decode() 转换诸如 < code>& 回到 &

I think a good solution would be to create a custom Zend_Filter. Within your custom filter, use htmlspecialchars_decode() to convert things such as & back to &.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文