Symfony 页面标题中的 & 符号
在我正在构建的 Symfony Web 应用程序上,我的所有 HTML 页面标题中都有一个 & 符号。然而,Symfony 正在转义 & 符号,我的标题最终看起来像这样:
<title>Home - Wallace &amp;amp; Gromit., Inc.</title>
我的视图 YAML 使用未转义的 & 符号定义了标题:
default:
...
metas:
...
title: Wallace & Gromit., Inc.
我已经在layout.php 中使用 include_title() 函数尝试了各种转义策略,但似乎没有任何作用。
<head>
<?php include_http_metas() ?>
<?php if (has_slot('title_prefix')): ?>
<?php $sf_context->getResponse()->setTitle(get_slot('title_prefix') . ' - ' . $sf_context->getResponse()->getTitle(ESC_SPECIALCHARS)) ?>
<?php endif; ?>
<?php include_metas() ?>
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<?php include_stylesheets() ?>
<!--[if IE 7]><link rel="stylesheet" type="text/css" href="css/screen_ie.css" /><![endif]-->
<?php include_javascripts() ?>
<?php include_title(ESC_SPECIALCHARS) ?>
</head>
有什么想法吗?
On a Symfony web app I'm building, all my HTML page titles have an ampersand in them. However, Symfony is escaping the ampersand, and my title ends up looking like this:
<title>Home - Wallace &amp; Gromit., Inc.</title>
My view YAML defines the title with an unescaped ampersand:
default:
...
metas:
...
title: Wallace & Gromit., Inc.
And I've tried all sorts of escaping strategies with the include_title() function in my layout.php, but nothing seems to work.
<head>
<?php include_http_metas() ?>
<?php if (has_slot('title_prefix')): ?>
<?php $sf_context->getResponse()->setTitle(get_slot('title_prefix') . ' - ' . $sf_context->getResponse()->getTitle(ESC_SPECIALCHARS)) ?>
<?php endif; ?>
<?php include_metas() ?>
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<?php include_stylesheets() ?>
<!--[if IE 7]><link rel="stylesheet" type="text/css" href="css/screen_ie.css" /><![endif]-->
<?php include_javascripts() ?>
<?php include_title(ESC_SPECIALCHARS) ?>
</head>
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
setTitle() 方法有一个用于转义标题的默认参数。它看起来像这样:
如果您使用 setTitle() 的默认参数,则不应转义对 getTitle() 的调用。尝试使用 ESC_RAW 而不是 ESC_SPECIALCHARS。
The setTitle() method has a default parameter for escaping the title. It looks like this:
You shouldn't be escaping the the call to getTitle() if you are using the default parameter to setTitle(). Try using ESC_RAW instead of ESC_SPECIALCHARS.