php过滤ascii控制字符

还记得以前在工作中,将爬来的其它网站的数据导到xml。但是会遇到一个问题:即网页会有ascII的控制字符。
一开始以为是别人为了防止采集而加入的,然后发现一个就往过滤表里加一个。直到慢慢发现,他们都是ascii表里的字符。
找到原因了,就好解决了。

 /**
  * 根据ascii码过滤控制字符
  * @param type $string
  */
 public static function special_filter($string)
 {
  if(!$string) return '';

  $new_string = '';
  for($i =0; isset($string[$i]); $i++)
  {
   $asc_code = ord($string[$i]);	//得到其asc码

   //以下代码旨在过滤非法字符
   if($asc_code == 9  $asc_code == 10  $asc_code == 13){
    $new_string .= ' ';
   }
   else if($asc_code > 31 && $asc_code != 127){
    $new_string .= $string[$i];
   }
  }

  return trim($new_string);
 }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, ascii
, return
, 字符
, 控制
, 一个
, php过滤非法字符
, php过滤空白字符
, 字符过滤
, 过滤ascii控制字符
过滤字符
过滤ascii 控制字符集、ascii控制字符、ascii码控制字符、ascii控制字符编码、ascii 控制字符 输入,以便于您获取更多的相关知识。

时间: 2024-08-01 18:52:36

php过滤ascii控制字符的相关文章

php过滤ascii控制字符的方法

  还记得以前在工作中,将爬来的其它网站的数据导到xml.但是会遇到一个问题:即网页会有ascII的控制字符.一开始以为是别人为了防止采集而加入的,然后发现一个就往过滤表里加一个.直到慢慢发现,他们都是ascii表里的字符.找到原因了,就好解决了. /** * 根据ascii码过滤控制字符 * @param type $string */ public static function special_filter($string) { if(!$string) return ''; $new_s

php小技巧之过滤ascii控制字符_php技巧

还记得以前在工作中,将爬来的其它网站的数据导到xml.但是会遇到一个问题:即网页会有ascII的控制字符.一开始以为是别人为了防止采集而加入的,然后发现一个就往过滤表里加一个.直到慢慢发现,他们都是ascii表里的字符.找到原因了,就好解决了. 复制代码 代码如下: /**  * 根据ascii码过滤控制字符  * @param type $string  */public static function special_filter($string) {  if(!$string) retur

ASCII 中的控制字符

Function/Control Code/Character in ASCII Version: 2011-02-15 Author: green-waste (at) 163.com [什么是 Function Code 功能码或  Function Character 功能字符] ASCII 字符集,大家都知道吧,最基本的包含了 128 个字符.其中前 32 个, 0-31 ,即 0x00-0x1F ,都是不可见字符.这些字符,就叫做控制字符. 这些字符没法打印出来,但是每个字符,都对应着

PHP数据的提交与过滤基本操作实例详解_php技巧

本文实例讲述了PHP数据的提交与过滤基本操作.分享给大家供大家参考具体如下 1.php提交数据过滤的基本原则 1提交变量进数据库时我们必须使用addslashes()进行过滤像我们的注入问题一个addslashes()也就搞定了.其实在涉及到变量取值时intval()函数对字符串的过滤也是个不错的选择. 2在php.ini中开启magic_quotes_gpc和magic_quotes_runtime.magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠. mag

MySQL必知必会

本文链接 http://alex-my.xyz/books/database/MySQL必知必会 http://blog.csdn.net/alex_my/article/details/72357498 1 基础知识 1 主键 唯一标识表中每行的这个列(这组列)称为主键. 应该总是定义主键,虽然并不总是需要主键. 任意两行都不具有相同的主键值. 每一行都必须具有一个主键值,不可为NULL. 2 常用命令 SHOW DATABASES; SHOW TABLES; SHOW COLUMNS FRO

30分钟学会正则表达式基础教程

基础教程|教程|正则表达式|正则 目录 本文目标 如何使用本教程 正则表达式到底是什么? 入门 测试正则表达式 元字符 字符转义 重复 字符类 反义 替换 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 最后,来点广告... 一些我认为你可能已经知道的术语的参考 网上的资源及本文参考文献 更新说明 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要

mysql全文搜索:sql的写法

首先,大家先去下载一份dvbbs.php beta1的代码,解压后先抛开php代码,找出你的mysql手册,如果没有手册那么就直接看下面的实例操作吧! mysql全文搜索,sql的写法: MATCH (col1,col2,-) AGAINST (expr [IN BOOLEAN MODE WITH QUERY EXPANSION]) 比如: SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database'); MATCH()函

.NET正则表达式使用高级技巧之工作特点

高级|技巧|正则 语法:??,*?,+?,{n}?,{n,m}? 涵义:简单说,后面的这个?(lazy符)告诉正则引擎,它前面的表达式匹配到最短的匹配项就不用匹配下去了,如??,?本身匹配0-1个匹配项,那么??就取最短的,匹配0个项就不匹配下去了,同理,*?匹配0个,+?匹配1个,{n}?匹配n个,{n,m}?匹配n个.当用@"\w*?"匹配"abcd"时,会有五次成功匹配,每次都匹配的结果都是空字符串,为什么会是5次呢,这是因为正则引擎在匹配一个表达式时是一个字

MySQL正则表达式使用

  使用REGEXP关键字 1.基本字符匹配 ? 1 2 3 SELECT prod_name From Products Where prod_name REGEXP'.000' LIKE和REGEXP区别 LIKE会匹配这个列,而REGEXP会在列值内进行匹配 在MySQL中正则表达式不区分大小写,要区分需使用BINARY关键字,如Where prod_name REGEXP BINARY'Jet.000' 2.进行OR匹配 使用"|" ? 1 2 3 SELECT prod_na