Heim >Backend-Entwicklung >PHP-Tutorial >php字符转义函数参考

php字符转义函数参考

WBOY
WBOYOriginal
2016-07-25 08:54:031305Durchsuche
  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字符转义的相关注意事项



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn