Symfony 页面标题中的 & 符号

发布于 2024-12-02 09:15:19 字数 1091 浏览 2 评论 0原文

在我正在构建的 Symfony Web 应用程序上,我的所有 HTML 页面标题中都有一个 & 符号。然而,Symfony 正在转义 & 符号,我的标题最终看起来像这样:

  <title>Home - Wallace &amp;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;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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初见你 2024-12-09 09:15:19

setTitle() 方法有一个用于转义标题的默认参数。它看起来像这样:

setTitle($title, $escape = true)

如果您使用 setTitle() 的默认参数,则不应转义对 getTitle() 的调用。尝试使用 ESC_RAW 而不是 ESC_SPECIALCHARS。

The setTitle() method has a default parameter for escaping the title. It looks like this:

setTitle($title, $escape = true)

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文