Zend框架Zend表单元素Textarea,带有BBCode和PHP代码示例
我目前正在编写一个系统,用于发布有关基本PHP的教程 但是,我目前正在编写一个表单来编辑数据库中的教程 现在,我想做的是,当我在网站上查看表单时使用setDefaults。但是,文本区域不显示教程。我在谷歌上搜索了一下,发现了这个问题,在这里也找到了一个答案,似乎是一个非常类似的问题 首先,我需要告诉您将在此textarea元素中显示的值: -这是一个关于PHP的教程,由于它包含PHP代码,可能是一些HTML和CSS,甚至可能是Javascript,所以它将包含特殊的carachtersZend框架Zend表单元素Textarea,带有BBCode和PHP代码示例,php,forms,zend-framework,textarea,Php,Forms,Zend Framework,Textarea,我目前正在编写一个系统,用于发布有关基本PHP的教程 但是,我目前正在编写一个表单来编辑数据库中的教程 现在,我想做的是,当我在网站上查看表单时使用setDefaults。但是,文本区域不显示教程。我在谷歌上搜索了一下,发现了这个问题,在这里也找到了一个答案,似乎是一个非常类似的问题 首先,我需要告诉您将在此textarea元素中显示的值: -这是一个关于PHP的教程,由于它包含PHP代码,可能是一些HTML和CSS,甚至可能是Javascript,所以它将包含特殊的carachters 它将
- 它将包含BBCode,因为我正在使用bbcodes来设计我的教程,例如来自Zend Framework的BBCode标记+我为语法高亮显示创建的其他bbcodes
- 文本框将通过一个名为“Markitup”的Javascript编辑器显示,该编辑器基于jQuery。但是,编辑器被禁用以缩小问题,因此plase忽略最后一部分,因为它只是导入:
- Code+BBCode将显示在此textarea元素中
htmlspecialchars
,但您可以使用setEscape
方法覆盖它。在控制器中设置,以在其工作时进行试验:
$this->view->setEscape('yoursescapefunction');
但奇怪的是,“nothing”出现了,因为只有当
ENT\u IGNORE
作为标志提供时才返回空字符串,这不是默认值。谢谢vstm,我现在找到了一个糟糕的解决方案。我正在做的是:创建一个具有转义函数的类,该函数只返回字符串。然后我创建一个视图实例,并将escape方法设置为我在自己的类中创建的方法,如前所述。然后我渲染表单并对其进行响应。现在唯一的问题是,我在控制器中回音,我真的不喜欢这样!所以我希望,有人能帮我解决这个问题。这是我在控制器中的动作方法:@Richard,谢谢你的代码,现在我明白你的意思了。但是您不必创建新的视图对象,因为框架已经提供了一个。因此,不是$view->setEscape(数组($escaperClass,'escape')代码>您可以执行$this->view->setEscape(数组($escaperClass,'escape')
然后删除$view
变量。然后在edit.phtml
中,您可以响应表单(我希望我的解释清楚)。太棒了。非常感谢vstm。你帮了我很多谢谢工作完美。