欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php字符转义函数参考

程序员文章站 2022-03-23 15:17:03
...
  1. if(phpversion() set_magic_quotes_runtime(0);
  2. }
复制代码

>> 无法通过函数来定义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字符转义的相关注意事项