1. magic_quotes_gpc=on:
\ => \\
' => \'
" => \"

2. 当 \' 、\" 插入数据库时,字符并没有变化,仍然为 ' 和 " 。因此读出时无需再次stripslashes。
例外:magic_quotes_runtime=on时。

3. preg_replace的pattern中使用 /e 修正符,则replacement传递到callback函数中的情形为:
\ => \
' => '
" => \"

4. 从数据库中读取,当magic_quotes_runtime=off时,似乎 \ => 空 ?

总结:引号和反斜杠的问题很复杂,而且因各服务器的设置不同而千变万化。
现在我的解决方法是
\ => & #92;
引号则用 htmlspecialchars ,quote_style设置为 ENT_QUOTES。

希望SP1版本中贴代码的问题能够解决。
测试:
<?php
error_reporting(E_ALL);

/* 加入重定向以得到标准错误输出 stderr。 */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
Tags:
3
2006年4月11日星期二 10:12
function my_addslashes($data){
  if(!get_magic_quotes_gpc()) {
      return is_array($data)?array_map('AddSlashes',$data):addslashes($data);
  } else {
      Return $data;
  }
}
怎么用?
可乐
2006年3月18日星期六 13:19
还是有问题。。。。该怎样呢?
bob 回复于 2006年3月18日星期六 21:25
尚有一个小问题。会修正的。
123456 Homepage
2006年3月7日星期二 23:54
收藏了

天涯书库
Peter Homepage
2006年2月27日星期一 20:40
这个问题还没有解决呢,我最下面的留言中的 AddSlashes 两边是单引号。
大龙 Email Homepage
2006年2月27日星期一 09:15
解决了,太好了,谢谢bobo
Peter Homepage
2006年2月27日星期一 06:08
用下面的函数入库就一定没有问题
function my_addslashes($data){
   if(!get_magic_quotes_gpc()) {
       return is_array($data)?array_map(\'AddSlashes\',$data):addslashes($data);
   } else {
       Return $data;
   }
}

原来对这个问题我也很头大,最后总算弄明白了,总结了一下,Bob 有空可以看一看:
http://www.yideu.com/web/bbs/viewthread.php?tid=200
分页: 1/1 第一页 1 最后页


Powered by Bo-Blog 2.1.1 RC1Code detection by Bug.Center.Team
沪ICP备05032643号

© 2008 博睿智 Marshal Design Bo-blog offcial theme