gpt4 book ai didi

php - 如何在 Twig 中对 HTML 转义文本进行 URL 编码?

转载 作者:行者123 更新时间:2023-12-04 02:43:18 26 4
gpt4 key购买 nike

我有一个字符串 Picture > 1000 words ,它存储 HTML 转义 Picture > 1000 words .我需要对原始字符串进行 URL 编码才能得到 Picture%20%3E%201000%20words
我尝试了不同的过滤器序列,但没有一个能产生想要的结果。

{# title = "Picture > 1000 words" #}

{{ title | url_encode(true) }}
{{ title | raw | url_encode(true) }}
{{ title | url_encode(true) | raw }}

结果在所有 3 种情况下都相同: Picture%20%26gt%3B%201000%20words .如何避免 Twig 对已经转义的文本进行编码并获得所需的结果?

最佳答案

得到这个 Picture%20%3E%201000%20words你应该有没有 html 实体的原始字符串

所以这应该有效:

{% set title = "Picture > 1000 words" %}

{{ title | url_encode(true) }}

如果您确实需要解码模板内的实体,您可以为此注册一个自定义过滤器:
$filter = new Twig_SimpleFilter('decode_entities', function ($string) {
return html_entity_decode($string);
});

// then connect it with environment

$twig = new Twig_Environment($loader);
$twig->addFilter($filter);

然后像这样使用它:
{{ title | decode_entities | url_encode(true) }}

编辑

刚刚用最新的上游 Twig 尝试了您的示例,这可以按您的预期工作:
{{ title | raw | url_encode(true) }}

你的问题是不正确的字符串实体

关于php - 如何在 Twig 中对 HTML 转义文本进行 URL 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19402380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com