当前位置:Gxlcms > PHP教程 > php怎么处理不可见字符

php怎么处理不可见字符

时间:2021-07-01 10:21:17 帮助过:134人阅读

php处理不可见字符的方法:首先创建一个PHP文件;然后定义一个filterNonPrintableChar方法;接着在方法体内通过while语句实现过滤不可见字符的功能逻辑;最后运行该文件即可。

php过滤不可见字符

编码知识

ASCII码为标准符号、数字、英文等进行了保留,取值范围是0~127,还有一部分作为扩展ASCII码128~255。当操作系统采用非ASCII编码时(比如汉字编码),一般用扩展ASCII码来进行,约定用128~255范围的编码连续2~3甚至4个字节来进行汉字编码。

所以可以判断ASCII码十进制值是否大于127来筛选出汉字。

php代码

  1. <?php
  2. /**
  3. * @param $str
  4. * @return string
  5. * 过滤不可见字符,支持中文过滤
  6. * 0至31和127这33个编码是不可见的特殊字符(控制符)
  7. */
  8. function filterNonPrintableChar($str)
  9. {
  10. $i = 0;
  11. $newStr = '';
  12. while (isset($str[$i])) {
  13. $char = $str[$i];
  14. $asc = ord($char);
  15. if ($asc > 31 && $asc < 127 || $asc > 127) {
  16. $newStr .= $char;
  17. }
  18. $i++;
  19. }
  20. return $newStr;
  21. }
  22. $str = chr(1) ."a3#2%1". chr(2) . chr(54) . "s哈哈ad~a好的s";
  23. var_dump(filterNonPrintableChar($str));
  24. $str = "“ASCII码为标准符号、数字、英文等进行了保留,取值范围是0~127,还有一部分作为扩展ASCII码128~255当操作系统采用非ASCII编码时(比如汉字编码),一般用扩展ASCII码来进行,约定用128~255范围的编码连续2~3甚至4个来进行...”";
  25. var_dump(filterNonPrintableChar($str));

推荐:《PHP教程》

以上就是php怎么处理不可见字符的详细内容,更多请关注gxlcms其它相关文章!

人气教程排行