国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

解決php fgetcsv 讀取csv文件數據不完整問題

2024-09-04 11:47:57
字體:
來源:轉載
供稿:網友

csv文件是在php中有fgetcsv函數來讀取,但在linux是的php5.2.8版本中會發現fgetcsv讀出來的csv文件數據不完整,在windows其它版本中,代碼如下:

  1. # Open the File.  
  2. if (($handle = fopen("test.csv""r")) !== FALSE) {  
  3.     # Set the parent multidimensional array key to 0.  
  4.     $nn = 0;  
  5.     while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {  
  6.          
  7. //print_r($data);  
  8.         # Count the total keys in the row.  
  9.         $c = count($data);  
  10.         # Populate the multidimensional array.  
  11.         for ($x=0;$x<$c;$x++)  
  12.         {  
  13.             $csvarray[$nn][$x] = $data[$x];  
  14.         }  
  15.         $nn++;  
  16.     }  
  17.     # Close the File.  
  18.     fclose($handle);  
  19. }  
  20. //print_r($csvarray); 

這個代碼沒有任何問題,然后我放到了linux中發現有為空的字段了,問題解析出來的數據不完整,有為空的字段,網上查了下說是在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;  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄汾县| 昌黎县| 且末县| 巴中市| 佳木斯市| 武隆县| 涟源市| 邵东县| 新化县| 尤溪县| 济阳县| 腾冲县| 泸水县| 哈巴河县| 安阳市| 内黄县| 大荔县| 竹溪县| 仪征市| 井陉县| 灌阳县| 贡山| 开化县| 大兴区| 阿巴嘎旗| 红安县| 庆元县| 锡林浩特市| 兴仁县| 金昌市| 尼玛县| 永城市| 津市市| 阳泉市| 滦平县| 海丰县| 隆德县| 观塘区| 山东| 昌平区| 登封市|