国产探花免费观看_亚洲丰满少妇自慰呻吟_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;  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹溪县| 张掖市| 武义县| 汕尾市| 阿鲁科尔沁旗| 三河市| 永定县| 正阳县| 屯门区| 额济纳旗| 随州市| 泰宁县| 西丰县| 景洪市| 南平市| 望都县| 西贡区| 连江县| 阿拉尔市| 沈丘县| 天长市| 咸阳市| 通榆县| 兴山县| 永仁县| 金昌市| 承德县| 镶黄旗| 福清市| 佛冈县| 黎平县| 长白| 微博| 青浦区| 托克托县| 横山县| 济源市| 玛多县| 盐边县| 通州市| 大方县|