Php 如何“转义”输出zf1?
如何转义字符串的输出以使搜索行上的js不起作用?在Zend Framework1v中。1.12.3Php 如何“转义”输出zf1?,php,zend-framework,Php,Zend Framework,如何转义字符串的输出以使搜索行上的js不起作用?在Zend Framework1v中。1.12.3 <div id="search-box"> <input type="text" placeholder="<?php echo $this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"); ?>" name="query" id="query" />
<div id="search-box">
<input type="text" placeholder="<?php echo $this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"); ?>" name="query" id="query" />
<div class="search-box-bk"></div>
</div>
我试过了,但没用
placeholder="<?php echo $this->escape($this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"));
遗憾的是,Zend 1在默认情况下没有良好的转义机制。->escape仅使用标准PHP方法htmlspecialchars 您可以通过获取视图并使用方法setEscape'htmlentities'setescaparray'Class/Object','method'来设置要在控制器中使用的转义方法 回应置评 在我的一个项目中,我使用了Zend2 Escaper。首先,我将Escaper复制到我在库中的文件夹中,我将其重命名为Adx_Escaper,以便它适合现有库-我很懒;。接下来,我创建了ViewHelper resources.view.helperPath.Adx\u view\u Helper=Adx/view/Helper/application.ini,内容如下:
class Adx_View_Helper_Escaper extends Zend_View_Helper_Abstract
{
protected $escaper = null;
public function Escaper()
{
if ($this->escaper === null) {
$this->escaper = new Adx_Escaper();
}
return $this;
}
public function html($string)
{
return $this->escaper->escapeHtml($string);
}
/* ... */
然后我可以直接使用$this->escaper->html'SomeText',现在我看到,在构造函数中返回escaper会更简单,但它的工作方式是这样的。谢谢。在我的任务中,->逃跑不起作用。我想了很多,于是产生了使用Zend Framework 2中的Zend\Escaper的想法。谷歌,发现我不是唯一一个想到这一点的人:-现在我会考虑你的话,同时考虑Zend\Escaper。您如何看待ZF1中Zend\Escaper的集成?@AgentSmith我在一个项目中使用了Zend2 Escaper。答案中添加了示例。也许会有用;