文档介绍:php程序中检测状态用get_magic_quotes_runtime(),返回 0 表示关闭本功能;返回 1 表示本功能打开。若 magic_quotes_runtime() 打开时,所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。
php函数 set_magic_quotes_runtime(0);
0-关闭 1-打开
bool ( int new_setting )
Set the current active configuration setting of magic_quotes_runtime(0 for off, 1 for on).
表单传给PHP的变量(这个变量的值是html源代码,所以有很多引号,斜杠)被加上了反斜杠,
然后PHP设法传给PCRE(一个正则表达式库),又因为反斜杠无法匹配.
说明如果 配置启动了 magic quotes runtime ,好么在客房户端传达到服务器时,$REQUEST[] 数组将在上传时就被改造,即我们在服务器端使用$REQUEST[] 是已经被加了反斜杠了,如果此时想去掉这些反斜械的话,可以使用stripslashes(); 进行复原。
1.
addslashes();   
顾名思义,就是给引号加上反斜杠. 
如
$eg = addslashes("单引号'示例");
mud (你看不到我中......) 于Sat Aug  2 20:56:42 2003)
提到:
如果传过来这样一个字符串
C:/Windows/
而PHP对于/是不添加\的,但是我需要使用preg_xxx函数,这些正则处理函数却是对/过敏的
.
怎么办?
PS:你说的这两个函数我一直在用,还有一个也很好用quotemeta,但是它们都不能满足我的
要求.
当然可以自己写个函数处理这些,但是我想知道有没有任何成熟的做法.
【 在 yuelinniao 的大作中提到: 】
: 呵呵,有两个函数:
: 1.
: addslashes();   
: 顾名思义,就是给引号加上反斜杠. 
: 如
: $eg = addslashes("单引号'示例");
: --> $eg == "单引号\'示例"
: 2.
: stripslashes();
: 去掉反斜杠
: 如
: $eg = stripslashes('双引号\"示例');
: --> $eg == '双引号"示例';
: 其实,表单提交自动加上反斜杠是 php 设置的默认值,可以改成不加的。
: 不过一般为了安全起见,不必改。
: 又因为大家都比较懒,所以欧也不想说是哪个设置了。
: 呵呵 :)
: 你把传过来的东西用 stripslashes 函数处理一下,转义反斜杠就去掉了。
: //enjoy
: 【 在 mud (你看不到我中......) 的大作