Wordpress的“ esc ..”功能是否有任何反向功能?

时间:2018-09-21 13:27:51

标签: php wordpress

我正在使用Wordpress中的标准字符“ esc_html”将数据(文本区域)插入数据库。

一切正常,但是如何反转文本?

例如:

我插入文字- 您准备好了吗?!走吧!

在数据库中,这与我预期的一样另存为-You ready?! Let's go!

后来,当我尝试在工具提示中显示此文本时,它也显示为You ready?! Let's go!

请,我想知道此函数是否存在任何反转,因为我尝试使用htmlspecialchars_decode()并意识到它不是同一函数。

谢谢!

3 个答案:

答案 0 :(得分:1)

答案是:一般来说,将数据保存到数据库时不会转义。您消毒它。 (因此您不必担心从esc_ *函数“还原”内容。)

要在将输入数据插入数据库中时清理输入数据,以防止SQL注入攻击。如果您正在使用$wpdb对象中的insert()方法或wp_insert_post()函数来创建新的帖子/页面,则将自动为您进行清理。

如果您要编写自定义查询(例如$wpdb->query( "INSERT INTO table VALUES('a string', 'another string', '2018-09-21 10:35:52')" );),则需要先使用prepare()方法对查询进行清理,然后再运行(例如$wpdb->query( $wpdb->prepare( "INSERT INTO table VALUES(%s, %s, %s)", array($string1, $string2, $date_string) ) );)。 / p>

当您要在屏幕上显示数据时,请使用任何其他esc_ *函数来确保屏幕上没有恶意打印(例如<script>alert('Hello!');</script>)。

答案 1 :(得分:0)

有一个PHP函数!

$string = "You ready?! Let&#039;s go!";
$decodedString = htmlspecialchars_decode($string, ENT_QUOTES);
  

解码后的字符串:“您准备好了吗?!走吧!'

Documentation

答案 2 :(得分:-1)

您是否尝试过wp_specialchars_decode()? https://developer.wordpress.org/reference/functions/wp_specialchars_decode/