Twig 在内部使用 htmlspecialchars 进行转义。我如何通过 ENT_NOQUOTES?

Twig uses htmlspecialchars internally for escaping. How do I pass ENT_NOQUOTES?

我将 Twig 用于呈现 HTML 的基本子集的嵌入式应用程序。但是,它不支持 " 双引号,只是显示 quot; 而不是 ".

我想达到相当于

htmlspecialchars($input_string, ENT_NOQUOTES);

Twig 的文档说它在内部使用 htmlspecialchars 进行转义。转义特定字符串时如何设置此标志?

使用自定义 escaping strategy

创建一个名为 html_no_quotes 的新转义策略,如下所示:

$twig
    ->getExtension(\Twig\Extension\CoreExtension::class)
    ->setEscaper('html_no_quotes', function($twig_environment, $string, $charset) {
        return htmlspecialchars($string, ENT_NOQUOTES);
    })
;

然后在您的模板中使用您的 html_no_quotes 转义策略如下:

{{ someString | escape('html_no_quotes') }}