Syrsfony页面标题中的&符号

时间:2011-09-01 14:42:37

标签: escaping symfony-1.4 special-characters

在我正在构建的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>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

setTitle($title, $escape = true)

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