在自定义树枝过滤器中替换字符串与锚点(渲染问题)

时间:2015-12-16 08:24:44

标签: php symfony twig

我正在为我的网站编写一个自定义树枝过滤器,除此之外它会解析一些URL的文本,如果它找到它们,它应该用一个指向自身的锚标记替换该标记。

代码:

foreach ($tokens as $key=>$value)
{
  if (filter_var($value, FILTER_VALIDATE_URL))
  {
    // Replace $token with a version anchored to itself
    $tokens[$key] = "<a href='$value' target='_blank'>".$value."</a>";
  }
}

// Replace the spaces back in the string and return it
return implode(" ", $tokens);

解析和替换似乎工作正常,但在渲染时,Twig不会将替换的标记呈现为锚点,而是作为字符串呈现(意味着我将html呈现为页面上的文本)。

任何解决方案?

1 个答案:

答案 0 :(得分:-1)

你可以使用树枝的原始过滤器来逃避你的功能输出:

{{ my_function(myVar)|raw }}

请参阅文档:http://twig.sensiolabs.org/doc/filters/raw.html