我知道这是关于树枝的常见和常见问题之一,但我感到困惑和困惑
问题:功能输出将被转义,而不是/?some_var=value&maybe_another_var=another_value
我得%2F%3Fsome_var%3Dvalue%26maybe_another_var%3Danother_value
完全破坏我的锚标签
目标:我尝试阻止 auto_urlencoding,这种情况一直发生在自定义函数中。
我使用的是什么:一个utilphp::util::add_query_arg()方法和一个自定义的Twig-Function(Twig_SimpleFunction
)
我如何使用
$twig->addFunction( new \Twig_SimpleFunction('util_add_query_args',
function(){
return \utilphp\util::add_query_arg( func_get_args() );
},
array('is_safe' => array('all')) //also tried array('html') but didn't worked
));
我如何使用 tempalte
<img src="//{{app_host_name}}/{{ other_url_segments}}{{ util_add_query_args( {'fontStyle' : style } , data.query_string )}}">
这应该 追加 &fontStyle=value_from_variable
到给定的查询字符串,然后将返回
data.query_string
- 可能已包含类似?some_var=value&maybe_another_var=another_value
的查询,但它可能因请求而异。在某些情况下它是空的,所以为了获得有效的查询,我必须使用util::add_query_arg()
,因为它也涵盖了这种情况
没有工作:
|raw
添加到{{ util_add_query_args( {'fontStyle' : style } , data.query_string ) }}
{% autoescape false %}
<img src="//{{app_host_name}}/{{ other_url_segments}}{{ util_add_query_args( {'fontStyle' : style } , data.query_string )}}">
{% endautoescape %}
我缺少什么?!如何解决这个问题?
答案 0 :(得分:0)
好吧,似乎func_get_args()
是#34;坏人&#34;。不知道为什么,但自从我改变了
function(){
return \utilphp\util::add_query_arg( func_get_args() );
}
到
function($args_arr, $query_string){
return \utilphp\util::add_query_arg( $args_arr, $query_string );
}
它有效......并且也不需要{% autoescape false %}
或|raw
。