有人能解释一下esc_html的用例吗?

时间:2016-11-02 作者:John_911

我正在浏览(下划线)starter主题,发现他们几乎在所有方面都使用esc\\U html。只是函数中的一个示例。php

register_nav_menus( array(
        \'primary\' => esc_html__( \'Primary\', \'_s\' ),
) );

register_sidebar( array(
        \'name\'          => esc_html__( \'Sidebar\', \'_s\' ),
        \'id\'            => \'sidebar-1\',
        \'description\'   => esc_html__( \'Add widgets here.\', \'_s\' ),
        \'before_widget\' => \'<section id="%1$s" class="widget %2$s">\',
        \'after_widget\'  => \'</section>\',
        \'before_title\'  => \'<h2 class="widget-title">\',
        \'after_title\'   => \'</h2>\',
) );
我目前对esc\\U html的理解是在从数据库或用户输入输出数据时使用它。

Why escape the names of the menu and sidebar?

它只对有权访问php文件的人可用,而且似乎没有放入数据库。我查了数据库,找不到任何与名字有关的东西,如果我错了,请纠正我。

Is the underscores theme just being overly cautious about everything?

谢谢

4 个回复
最合适的回答,由SO网友:Nabil Kadimi 整理而成

esc_html() 做两件事:

  1. Checks for invalid UTF8 in a string.
  2. Converts a number of special characters into their HTML entities, 具体涉及:&<;,>,“”和“.
使用它而不是__(), _e 还有其他i18n功能可以保护您的网站免受可能出现的错误的影响,这些错误可能是由于不知情的翻译人员使用的文本可能包含(1)无效的UTF8字符或(2)不需要的HTML代码。相信我,很多翻译人员都会尝试使用一些“好”的HTML标记,比如<i>, <b> 等等,更糟糕的是,他们无法正确关闭它们。

SO网友:Kanon Chowdhury

esc_html__( string $text, string $domain = \'default\' )
检索$文本的翻译并将其转义,以便在HTML输出中安全使用。所以esc_html__() 用于实现国际化和安全性目的

https://codex.wordpress.org/Function_Reference/esc_html_2

SO网友:Mac

这里的水很泥泞。OP的问题esc_html(), 但他的代码显然使用esc_html__(). 这些都不一样。公认的答案是错误的:它指的是esc_html(), 它处理安全转义HTML块。卡农·乔杜里(KanonChowdhury)的回答应该是公认的答案,因为OP的代码处理下划线WordPress入门主题(使用esc_html__() 函数)。

SO网友:Prashad

esc_html()esc_html__()NOT 相同的功能。主要区别在于,esc\\u html()只接受一个字符串并返回an escaped HTML 一串另一方面,esc\\u html\\uuuu2()将2个字符串作为参数并返回a translated and escaped 一串

事实上,公认的答案是错误的。

相关推荐

WordPress security

我通过wordpress为我的客户创建了一个网站,并将其上传到他们的服务器上。。我们假设用户可以访问整个服务器。。是否可以通过在数据库中编辑管理员密码或添加需要我权限的脚本来保护此网站不被其他服务器使用。