下一篇 ? ? 上一篇

addslashes 函数

作者: ???时间:2008-01-22??? 来源:??? 点击:224497 ???本文共1篇文章 字体:[ ]


PHP 中的 addslashes 函数

addslashes -- 字符串加入斜线。 php学习之家http://www.444p.com

语法: string addslashes(string str); 本文来自 www.444p.com

内容说明 www.444p.com

本函数使需要让数据库处理的字符串中引号的部份加上斜线,以供数据库查询 (query) 能顺利运作。这些会被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符 NUL (the null byte)。
================================================================ php学习之家


1,表单提交中addslashes的表现。

php学习之家http://www.444p.com

首先要看get_magic_quotes_gpc()的值,一般为 1 。这时候从

echo get_magic_quotes_gpc().
??????? " A ".$_POST['message'].
??????? " B ".stripslashes($_POST['message']);
?>

php学习之家


输入:include('/home/me/myfile');
输出:1 A include(\'/home/me/myfile\'); B include('/home/me/myfile');
总结:get_magic_quotes_gpc()等于1的情况下,如果不输入数据库,那你得到的结果是加了斜线的。

www.444p.com php学习之家


2,提交输入数据库时addslashes的表现。 www.444p.com

例子:
PHP代码:

php学习之家

test


default text

require_once('includes/common.php');
$db->query("INSERT INTO `testtable` ( id , content ) VALUES ('1' , '".$_POST['message']."')");
$query=$db->query("select * from `testtable` where `id`= 1;");
$Result=$db->fetch_array($query);
echo get_magic_quotes_gpc().
??????? " A ".$_POST['message'].
??????? " B ".$Result['content'];
?>
www.444p.com php学习之家


输入:include('/home/me/myfile');
输出:1 A include(\'/home/me/myfile\'); B include('/home/me/myfile');
总结:get_magic_quotes_gpc()等于1的情况下,如果输入数据库后,再从数据库直接读取的时候,你不做任何修改就可以得到输入的字符串。

www.444p.com


3, get_magic_quotes_gpc()

php学习之家http://www.444p.com

get_magic_quotes_gpc()在服务器是的设置是不能runtime修改的,也就是说,你必须在你的网页代码中预先考虑好不同的情况,不然,当你提交数据的时候,你还不知道服务器给你加了斜线没有。以下两个网上流行的函数可能是大家需要的,个人喜欢第二个: php学习之家http://www.444p.com

PHP代码: php学习之家

function my_addslashes( $message ){
??? if(get_magic_quotes_gpc()== 1 ){
??????? return $message;
??? }else{
??????? if(is_array($message)==true){
??????????? while(list($key,$value)=each($message)){
??????????????? $message[$key]=my_addslashes($value);
??????????? }
??????????? return $message;
??????? }else{
??????????? return addslashes($message);
??????? }
??? }
}
php学习之家

PHP代码: www.444p.com php学习之家

function my_addslashes($data){
??? if(!get_magic_quotes_gpc()) {
??????? return is_array($data)?array_map('AddSlashes',$data):addslashes($data);
??? } else {
??????? Return $data;
??? }
}
php学习之家

简单的解释就是,如果get_magic_quotes_gpc()等于 1 (服务器默认设置为 1 ),那我们的字符串是可以直接入库的,不修改。不然,我们才用addslashes函数。
php学习之家http://www.444p.com

责任编辑:semirock
发表评论
密码: (游客不需要密码)
记住我【Alt+S 或 Ctrl+Enter 快速提交】

搜索工具


《PHP函数》点击排行

随机文章