程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP fgetcsv 定義和用法(附windows與linux下兼容問題)

PHP fgetcsv 定義和用法(附windows與linux下兼容問題)

編輯:PHP綜合
PHP fgetcsv 定義和用法

  PHP fgetcsv() 函數從文件指針中讀入一行並解析 CSV 字段。
  與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行並找出 CSV 格式的字段,然後返回一個包含這些字段的數組。

  fgetcsv() 出錯時返回 FALSE,包括碰到文件結束時。

  注釋:從 PHP 4.3.5 起,PHP fgetcsv() 的操作是二進制安全的。

語法

fgetcsv(file,length,separator,enclosure) 參數 描述 file 必需。規定要檢查的文件。 length 可選。規定行的最大長度。必須大於 CVS 文件內最長的一行。
在 PHP 5 中該參數是可選的。在 PHP 5 之前是必需的。
如果忽略(在 PHP 5.0.4 以後的版本中設為 0)該參數的話,那麼長度就沒有限制,不過可能會影響執行效率。 separator 可選。設置字段分界符(只允許一個字符),默認值為逗號。 enclosure 可選。設置字段環繞符(只允許一個字符),默認值為雙引號。
該參數是在 PHP 4.3.0 中添加的。提示和注釋

注釋:CSV 文件中的空行將被返回為一個包含有單個 null 字段的數組,不會被當成錯誤。
注釋:該函數對區域設置是敏感的。比如說 LANG 設為 en_US.UTF-8 的話,單字節編碼的文件就會出現讀取錯誤。
注釋:如果碰到 PHP 在讀取文件時不能識別 Macintosh 文件的行結束符,可以激活 auto_detect_line_endings 運行時配置選項。

例子 1
復制代碼 代碼如下:
<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>


CSV 文件:
   George, John, Thomas, USA James, Adrew, Martin, USA
輸出類似:
   Array ( [0] => George [1] => John [2] => Thomas [3] => USA )

例子 2
復制代碼 代碼如下:
   <?php
$file = fopen("contacts.csv","r");
while(! feof($file)) { print_r(fgetcsv($file));
} fclose($file);
?>

CSV 文件:
   George, John, Thomas, USA James, Adrew, Martin, USA
輸出類似:
   Array ( [0] => George [1] => John [2] => Thomas [3] => USA Array ( [0] => James [1] => Adrew [2] => Martin [3] => USA )

windows與linux下兼容問題

今天有問題報過來說linux平台下 fgetcsv處理的有空數據產生起初以為中php版本問題,其實和版本沒有關系 在window下開發的同事都沒有問題,而自己的本本和服務器上,和使用linux系統的同事 都出現空數據的問題

google一下

設置區域:簡體中文,UTF-8編碼
復制代碼 代碼如下:
setlocale(LC_ALL, 'zh_CN.UTF-8');
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved