常用函数-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.中。
分类:中文手册