PHP fgetcsv 定義和用法(附windows與linux下兼容問題)
更新時間:2012年05月29日 16:01:17 作者:
PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個包含這些字段的數(shù)組
PHP fgetcsv 定義和用法
PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。
與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個包含這些字段的數(shù)組。
fgetcsv() 出錯時返回 FALSE,包括碰到文件結(jié)束時。
注釋:從 PHP 4.3.5 起,PHP fgetcsv() 的操作是二進(jìn)制安全的。
語法
提示和注釋
注釋:CSV 文件中的空行將被返回為一個包含有單個 null 字段的數(shù)組,不會被當(dāng)成錯誤。
注釋:該函數(shù)對區(qū)域設(shè)置是敏感的。比如說 LANG 設(shè)為 en_US.UTF-8 的話,單字節(jié)編碼的文件就會出現(xiàn)讀取錯誤。
注釋:如果碰到 PHP 在讀取文件時不能識別 Macintosh 文件的行結(jié)束符,可以激活 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處理的有空數(shù)據(jù)產(chǎn)生起初以為中php版本問題,其實和版本沒有關(guān)系 在window下開發(fā)的同事都沒有問題,而自己的本本和服務(wù)器上,和使用linux系統(tǒng)的同事 都出現(xiàn)空數(shù)據(jù)的問題
google一下
設(shè)置區(qū)域:簡體中文,UTF-8編碼
setlocale(LC_ALL, 'zh_CN.UTF-8');
PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。
與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個包含這些字段的數(shù)組。
fgetcsv() 出錯時返回 FALSE,包括碰到文件結(jié)束時。
注釋:從 PHP 4.3.5 起,PHP fgetcsv() 的操作是二進(jìn)制安全的。
語法
| fgetcsv(file,length,separator,enclosure) |
| 參數(shù) | 描述 |
| file | 必需。規(guī)定要檢查的文件。 |
| length | 可選。規(guī)定行的最大長度。必須大于 CVS 文件內(nèi)最長的一行。 在 PHP 5 中該參數(shù)是可選的。在 PHP 5 之前是必需的。 如果忽略(在 PHP 5.0.4 以后的版本中設(shè)為 0)該參數(shù)的話,那么長度就沒有限制,不過可能會影響執(zhí)行效率。 |
| separator | 可選。設(shè)置字段分界符(只允許一個字符),默認(rèn)值為逗號。 |
| enclosure | 可選。設(shè)置字段環(huán)繞符(只允許一個字符),默認(rèn)值為雙引號。 該參數(shù)是在 PHP 4.3.0 中添加的。 |
注釋:CSV 文件中的空行將被返回為一個包含有單個 null 字段的數(shù)組,不會被當(dāng)成錯誤。
注釋:該函數(shù)對區(qū)域設(shè)置是敏感的。比如說 LANG 設(shè)為 en_US.UTF-8 的話,單字節(jié)編碼的文件就會出現(xiàn)讀取錯誤。
注釋:如果碰到 PHP 在讀取文件時不能識別 Macintosh 文件的行結(jié)束符,可以激活 auto_detect_line_endings 運行時配置選項。
例子 1
復(fù)制代碼 代碼如下:
<?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
復(fù)制代碼 代碼如下:
<?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處理的有空數(shù)據(jù)產(chǎn)生起初以為中php版本問題,其實和版本沒有關(guān)系 在window下開發(fā)的同事都沒有問題,而自己的本本和服務(wù)器上,和使用linux系統(tǒng)的同事 都出現(xiàn)空數(shù)據(jù)的問題
google一下
設(shè)置區(qū)域:簡體中文,UTF-8編碼
復(fù)制代碼 代碼如下:
setlocale(LC_ALL, 'zh_CN.UTF-8');
您可能感興趣的文章:
- php使用fgetcsv讀取csv文件出現(xiàn)亂碼的解決方法
- PHP中SimpleXML函數(shù)用法分析
- PHP中array_slice函數(shù)用法實例詳解
- php中in_array函數(shù)用法探究
- PHP中mysql_field_type()函數(shù)用法
- php中mt_rand()隨機數(shù)函數(shù)用法
- PHP中substr()與explode()函數(shù)用法分析
- php中convert_uuencode()與convert_uuencode函數(shù)用法實例
- php目錄遍歷函數(shù)opendir用法實例
- php中ftp_chdir與ftp_cdup函數(shù)用法
- php中fgetcsv()函數(shù)用法實例
相關(guān)文章
php中使用preg_replace函數(shù)匹配圖片并加上鏈接的方法
preg_replace 執(zhí)行正則表達(dá)式的搜索和替換,如果只是單純的匹配字符串建議使用str_replace(),因為其執(zhí)行效率高的多2013-02-02
php構(gòu)造方法中析構(gòu)方法在繼承中的表現(xiàn)
這篇文章主要為大家詳細(xì)介紹了php構(gòu)造方法中析構(gòu)方法在繼承中的表現(xiàn),感興趣的小伙伴們可以參考一下2016-04-04
騰訊微博提示missing parameter errorcode 102 錯誤的解決方法
這篇文章主要介紹了騰訊微博提示missing parameter errorcode 102 錯誤的解決方法,是針對騰訊微博接口開發(fā)中比較典型的錯誤問題,需要的朋友可以參考下2014-12-12

