所以我把以下代码放在一起
if ($this->state->get('filter.search')) {
$searchterm = $this->escape(JHtmlString::truncate($this->state->get('filter.search'), 160, true, false));
$this->document->setTitle("'" . $searchterm . "' Search | " . $title);
}
将用户在搜索框中输入的内容添加/添加到页面标题。
示例:
搜索框输入:
"@~TEST"
将创建此HTML输出的内容:
<title>'&quot;@~TEST&quot;' Search | Devsite</title>
在我的网络浏览器中,它看起来像网站页面标题看起来不正确,可以使用某种过滤器。
'"@~TEST"' Search | Devsite
似乎没有正确显示我做错了什么或错过了它真的会更友好如果只输出并显示友好字符“A-Za-z0-9。-_”
答案 0 :(得分:1)
罪魁祸首如下:
&quot;
应该如此:
"
解决方法是,如果某个值已被转义或在另一个函数中被转义,则会停止双重转义,这会导致此问题。
删除此功能,因为文本已经在其他地方转义,所以不要再逃避它了:
$this->escape() //remove this function from the string
$searchterm = $this->escape(JHtmlString::truncate($this->state->get('filter.search'), 160, true, false));
制作输出代码:
$searchterm = JHtmlString::truncate($this->state->get('filter.search'), 160, true, false);