php字符转义函数参考

原创
2016-07-25 08:54:03 882浏览
  1. if(phpversion() < '5.3.0') {
  2. set_magic_quotes_runtime(0);
  3. }
复制代码

>> 无法通过函数来定义magic_quotes_gpc,因此建议在服务器上统一开启,写程序的时候应该在来判断下,避免没开启gpc引起安全问题 通过addslashes对gpc进行时候转义时,应注意当用户提交数组数据时对键值和值的过滤

  1. if(!get_magic_quotes_gpc()) {

  2. $_get = daddslashes($_get);
  3. $_post = daddslashes($_post);
  4. $_cookie = daddslashes($_cookie);
  5. $_files = daddslashes($_files);
  6. }
  7. function daddslashes($string, $force = 1) {
  8. if(is_array($string)) {
  9. foreach($string as $key => $val) {
  10. unset($string[$key]);
  11. $string[addslashes($key)] = daddslashes($val, $force);
  12. }
  13. } else {
  14. $string = addslashes($string);
  15. }
  16. return $string;
  17. }

  18. ?>>

复制代码

利用在用户输入或输出时候转义html实体以防止xss漏洞的产生!

今天碰到一个处理文件特殊字符的事情,再次注意到这个问题,在php中:

  1. $str = "ffff\0ffff";
  2. echo(strlen($str));
  3. echo("\n");
  4. for($i=0;$iecho("\n");
复制代码

输出结果: ---------------------- 9 102 102 102 102 0 102 102 102 102

替换特殊字符的例子

  1. $str = "ffff\0ffff";
  2. $str = str_replace("\x0", "", $str);
  3. //或者用$str = str_replace("\0", "", $str);
  4. //或者用$str = str_replace(chr(0), "", $str);
  5. echo(strlen($str));
  6. echo("\n");
  7. for($i=0;$iecho("\n");
复制代码

输出结果: ---------------------- 8 102 102 102 102 102 102 102 102

八进制ascii码例子:

  1. //注意,符合正则\[0-7]{1,3}的字符串,表示一个八进制的ascii码。
  2. $str = "\0\01\02\3\7\10\011\08\8"; //这里的\8不符合要求,被修正为"\\8" (ascii为92和56)
  3. echo(strlen($str));
  4. echo("\n");
  5. for($i=0;$iecho("\n");
复制代码

输出结果: ---------------------- 11 0 1 2 3 7 8 9 0 56 92 56

十六进制ascii码例子:

  1. $str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
  2. echo(strlen($str));
  3. echo("\n");
  4. for($i=0;$iecho("\n");
复制代码

输出结果: ---------------------- 10 0 1 2 3 7 8 9 16 17 255 php特殊字符转义详解 php正则表达式转义字符的例子 PHP常用转义字符函数 PHP转义正则表达式字符的函数 php实现防注入与表单提交值转义的代码 mysql语句中字符转义的方法举例 php字符转义的相关注意事项



声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:PHP数组分割与数组接合 下一条:php绘图不显示图片怎么办

相关文章

查看更多