Zend Framework Zend Form Element Textarea with BBCode and PHP Code Examples
我目前正在编写一个系统,用于发布有关基本 PHP 的教程。
但是,我目前正在编写一个表单来编辑一个教程,它位于数据库中。
现在,我要做的是,在我查看网站上的表单时使用 setDefaults。但是,textarea 没有显示教程。我在谷歌上搜索了一下,发现了这个问题,还在这里找到了一个答案,这似乎是一个非常相似的问题。
首先我需要告诉你这个 textarea 元素中将显示的值:
- 它是一个关于 PHP 的教程,其中包含特殊的字符,因为它包含 php 代码,可能包含一些 HTML 和一些 CSS,甚至可能是 Javascript。
-
它将包含 BBCode,因为我正在使用 bbcode 来设置我的教程的样式,例如 Zend 框架中的 BBCode 标记,以及我为语法高亮创建的附加 bbcode
-
将使用基于 jQuery 的名为 "Markitup" 的 Javascript 编辑器查看文本框。但是,编辑器被禁用以缩小问题,因此请忽略最后一部分,因为它只是 import:
-
代码 BBCode 将显示在此 textarea 元素中。
那么接下来是什么:
我在这里找到了问题的根源:
为什么 zend_form 不能使用带有变音符号的 Firebird db 记录填充输入?
它清楚地告诉我,Zend Framework 将逃避我的价值观,这一定是原因,我填充的表单中唯一的元素是带有代码的文本区域。
问题:
如何在不更改 Zend 框架中的原始文件的情况下获得纯文本区域元素中显示的教程?
我不想更改助手中的转义(值),以便我的表单正常工作。因为下一次更新将简单地覆盖所有内容。所以我需要在不更改原始文件的情况下这样做。
我期待与您讨论这个问题,希望有人能给我一个提示或解决这个问题。
根据 Zend 手册,默认转义方法是
1 | $this->view->setEscape('yourescapefunction'); |
但奇怪的是,"nothing" 出现了,因为 htmlspecialchars 仅在