用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php中fgetcsv函数在php5.2.8 中的数据不完整

时间:2015-01-23  来源:西部数据  作者:西部数据

问题解析出来的数据不完整,有为空的字段,网上查了下说是在php5.2.8 中存在bug,解决办法是使用自定义函数,代码如下:

  1. function __fgetcsv(& $handle$length = null, $d = ','$e = '"') {  
  2.      $d = preg_quote($d);  
  3.      $e = preg_quote($e);  
  4.      $_line = "";  
  5.      $eof=false;  
  6.      while ($eof != true) {  
  7.          $_line .= (emptyempty ($length) ? fgets($handle) : fgets($handle$length));  
  8.          $itemcnt = preg_match_all('/' . $e . '/'$_line$dummy);  
  9.          if ($itemcnt % 2 == 0)  
  10.              $eof = true;  
  11.      }  
  12.      $_csv_line = preg_replace('/(?: |[ ])?$/'$d, trim($_line));  
  13.      $_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';  
  14.      preg_match_all($_csv_pattern$_csv_line$_csv_matches);  
  15.      $_csv_data = $_csv_matches[1];  
  16.      for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {  
  17.          $_csv_data[$_csv_i] = preg_replace('/^' . $e . '(.*)' . $e . '$/s''$1' , $_csv_data[$_csv_i]);  
  18.          $_csv_data[$_csv_i] = str_replace($e . $e$e$_csv_data[$_csv_i]);  
  19.      }  
  20.      return emptyempty ($_line) ? false : $_csv_data;  
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门