我正在使用Wordpress中的标准字符“ esc_html”将数据(文本区域)插入数据库。
一切正常,但是如何反转文本?
例如:
我插入文字- 您准备好了吗?!走吧!
在数据库中,这与我预期的一样另存为-You ready?! Let's go!
后来,当我尝试在工具提示中显示此文本时,它也显示为You ready?! Let's go!
请,我想知道此函数是否存在任何反转,因为我尝试使用htmlspecialchars_decode()并意识到它不是同一函数。
谢谢!
答案 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's go!";
$decodedString = htmlspecialchars_decode($string, ENT_QUOTES);
解码后的字符串:“您准备好了吗?!走吧!'
答案 2 :(得分:-1)
您是否尝试过wp_specialchars_decode()? https://developer.wordpress.org/reference/functions/wp_specialchars_decode/