我知道已经有这里的帖子了,但它的答案仍然让我对这三种方法一无所知。
如果我想生成一个包含URL参数的安全和动态URL,那么标题中提到的方法之一的选择让我有点困惑。其中一项用途是:
window.location = 触发现在看来,引擎盖下的esc_url_未加工执行消毒_url,然后在幕后执行esc_url,最后通过db上下文执行应用清洁_url_过滤器。
此外,esc_url_raw和sanitize_url在文档中具有完全相同的描述,即:
清除用于数据库的URL或重定向使用。
然后,esc博士_url声明,如果上下文是display,就会替换符号,这对我来说对URL来说是不可取的,因为这将给链接中的查询参数带来麻烦。这就是为什么我目前使用esc_url_raw()为上述3种情况生成安全URL的原因。然而,如果我测试:
echo esc_url('https://example.org?my_query=is&so=cool')
我得到了https://example.org?my_query=is&so=cool,所以实际上没有对符号进行编码。那么,这些文档实际上指的是哪个符号呢?我的假设正确吗?对于上述三种情况,esc_url_raw()是避免动态生成带有查询参数的链接的最佳方法吗?
同样让我困惑的是,如果你这样做了:
var_dump(esc_url('https://example.com?test=hello&there=allgood',['https']));
var_dump(sanitize_url('https://example.com?test=hello&there=allgood',['https']));
var_dump(esc_url_raw('https://example.com?test=hello&there=allgood',['https']));所有这些都给了你:
https://example.com?test=hello&there=allgood
那么,对于上述三种情况,最好的方法是什么呢?
这个问题出现的主要原因是,一些著名的wordpress主题片段使用esc_url()来生成href属性值的链接,而不是esc_url_raw(),所以我想知道原因,在深入挖掘之后,我也了解了sanitize_url()。
发布于 2023-04-13 17:07:25
这可能是一个更有用的演示:
https://wordpress.stackexchange.com/questions/415344
复制相似问题