常用函数-stripslashes_deep()

1条评论

常用函数-stripslashes_deep()

说明

该函数通过数组进行导航,删除函数值中的斜线。

数组被传递后,array_map()函数引发回调,将值回传给stripslashes_deep()函数。stripslashes()函数删除值中的斜线。

用法

<?php stripslashes_deep( $value ) ?>

参数

$value

(数组 | 字符串)(必需)将要被删除的数组或字符串

默认值:None

返回的值

(字符串)

删除斜线后的数字(或回调中的字符串)

示例

基本示例

用户开发能够在WordPress中运行的PHP程序时,具体而言,就是在PHP程序需要删除斜线且$_POST, $_GET, $_COOKIE以及 $_REQUEST数组发送数据后,可能会用到stripslashes_deep()函数。

“Contact Me”页面和删除用户输入文本的辅助程序就是典型的例子。用户输入的文本从HTML代码 <form method="post" ... >,经由 $_POST 数组,传递到用户的PHP程序中。在这种情况下我们可以这样使用stripslashes_deep():

$_POST = array_map( 'stripslashes_deep', $_POST );  

这是一个stripslashes_deep()的递归示例,即使函数本身带有数组,传递时也要经过$_POST数组。

编码练习

用户编写需要发布的代码时,事先不知道目标服务器是否激活了魔术引号。因此编写一段代码来检查魔术引号并在需要时删除斜线,是一个很好的练习。需要注意的是,stripslashes_deep()函数并不能判断斜线是否存在,因此编写的代码需要能够感知并删除魔术引号斜线。

可以这样使用stripslashes_deep()函数:

if ( get_magic_quotes_gpc() ) {      
    $_POST      = array_map( 'stripslashes_deep', $_POST );      
    $_GET       = array_map( 'stripslashes_deep', $_GET );      
    $_COOKIE    = array_map( 'stripslashes_deep', $_COOKIE );      
    $_REQUEST   = array_map( 'stripslashes_deep', $_REQUEST );  
}  
  • 对大多数PHP开发人员来说魔术引号都是个令人头痛的问题。将来的PHP版本可能会弃用魔术引号,但只要人们仍然使用PHP4和PHP5,编写代码时依然会遇到这个令人头痛的问题。

注释

修改记录

自2.0.0版本后

源文件

stripslashes_deep()位于 wp-includes/formatting.php.中。

#1
没看明白说的,例子太少