博睿智
SearchRSS
总结PHP的引号和反斜杠问题
bob 发布于 February 26, 2006 15:39
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);
?>
 
3
function my_addslashes($data){
  if(!get_magic_quotes_gpc()) {
      return is_array($data)?array_map('AddSlashes',$data):addslashes($data);
  } else {
      Return $data;
  }
}
怎么用?
April 11, 2006 10:12
可乐
还是有问题。。。。该怎样呢?
March 18, 2006 13:19
尚有一个小问题。会修正的。
March 18, 2006 21:25
123456
收藏了

天涯书库
March 7, 2006 23:54 Homepage
Peter
这个问题还没有解决呢,我最下面的留言中的 AddSlashes 两边是单引号。
February 27, 2006 20:40 Homepage
大龙
解决了,太好了,谢谢bobo
February 27, 2006 09:15 Email Homepage
Peter
用下面的函数入库就一定没有问题
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
February 27, 2006 06:08 Homepage
分页: 1/1 第一页 1 最后页
分类
  • 程序相关 [74] RSS
  • 程序扩展 [42] RSS
  • 风格模板 [16] RSS
  • 插件扩展 [24] RSS
  • 风格下载站
  • 插件下载站
  • 技术随笔 [16] RSS
  • 生活感悟 [13] RSS
  • 杂七杂八 [70] RSS
日历
统计
访问次数 4267111
今日访问 431
日志数量 212
评论数量 3387
引用数量 82
注册用户 9
在线人数 21
其他
Powered by Bo-Blog 2.5.0 build 2011.07.03