Zend框架Zend表单元素Textarea的BBCode和PHP代码示例



我目前正在编写一个发布基本PHP教程的系统。

然而,我目前正在编写一个表单来编辑教程,即在数据库中。

现在,我要做的是,当我在网站上查看表单时使用setDefaults。但是,文本区域没有显示教程。我在谷歌上搜索了一下,发现了这个问题,也在这里找到了一个答案,似乎是一个非常相似的问题。

首先,我需要告诉你将在这个textarea元素中显示的值:-这是一个关于PHP的教程,将有特殊字符,因为它将包含PHP代码,可能是一些HTML和CSS,甚至可能是Javascript。

  • 它将包含BBCode,因为我正在使用BBCode来设计我的教程,例如来自Zend框架的BBCode标记+我为语法高亮创建的附加BBCode

  • 文本框将与一个基于jQuery的名为"Markitup"的Javascript编辑器一起出现。但是,编辑器被禁用以最小化问题,所以请忽略最后一部分,因为它只是导入:

  • Code + BBCode将显示在这个textarea元素中。

那么下一步是什么呢?我在这里找到了问题的根源:为什么zend_form不能用Firebird db的变音符字符填充输入?

它清楚地告诉我,Zend Framework将转义我的值,这一定是原因,在我填充的表单中唯一的元素是带有代码的文本区域。

问题:我如何得到在纯文本区元素中显示的教程而不改变Zend框架的原始文件?

我不想改变帮助器中的转义(值),这样我的表单就可以工作了。因为下一次更新将简单地覆盖所有内容。所以我需要在不改变原始文件的情况下做到这一点。

我期待着和你讨论这个问题,希望有人能给我一个提示或解决这个问题的方法

根据Zend手册,默认的转义方法是htmlspecialchars,但您可以使用setEscape方法覆盖它。在控制器中设置它,看看是否有效:

$this->view->setEscape('yourescapefunction');

但奇怪的是,"什么都没有"出现,因为htmlspecialchars返回空字符串只有当ENT_IGNORE被提供作为标志,这不是默认的

最新更新