PHP fgetcsv 定義和用法(附windows與linux下兼容問(wèn)題)
更新時(shí)間:2012年05月29日 16:01:17 作者:
PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個(gè)包含這些字段的數(shù)組
PHP fgetcsv 定義和用法
PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。
與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個(gè)包含這些字段的數(shù)組。
fgetcsv() 出錯(cuò)時(shí)返回 FALSE,包括碰到文件結(jié)束時(shí)。
注釋:從 PHP 4.3.5 起,PHP fgetcsv() 的操作是二進(jìn)制安全的。
語(yǔ)法
提示和注釋
注釋:CSV 文件中的空行將被返回為一個(gè)包含有單個(gè) null 字段的數(shù)組,不會(huì)被當(dāng)成錯(cuò)誤。
注釋:該函數(shù)對(duì)區(qū)域設(shè)置是敏感的。比如說(shuō) LANG 設(shè)為 en_US.UTF-8 的話,單字節(jié)編碼的文件就會(huì)出現(xiàn)讀取錯(cuò)誤。
注釋:如果碰到 PHP 在讀取文件時(shí)不能識(shí)別 Macintosh 文件的行結(jié)束符,可以激活 auto_detect_line_endings 運(yùn)行時(shí)配置選項(xiàng)。
例子 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下兼容問(wèn)題
今天有問(wèn)題報(bào)過(guò)來(lái)說(shuō)linux平臺(tái)下 fgetcsv處理的有空數(shù)據(jù)產(chǎn)生起初以為中php版本問(wèn)題,其實(shí)和版本沒(méi)有關(guān)系 在window下開發(fā)的同事都沒(méi)有問(wèn)題,而自己的本本和服務(wù)器上,和使用linux系統(tǒng)的同事 都出現(xiàn)空數(shù)據(jù)的問(wèn)題
google一下
設(shè)置區(qū)域:簡(jiǎn)體中文,UTF-8編碼
setlocale(LC_ALL, 'zh_CN.UTF-8');
PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。
與PHP fgets() 類似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個(gè)包含這些字段的數(shù)組。
fgetcsv() 出錯(cuò)時(shí)返回 FALSE,包括碰到文件結(jié)束時(shí)。
注釋:從 PHP 4.3.5 起,PHP fgetcsv() 的操作是二進(jìn)制安全的。
語(yǔ)法
| fgetcsv(file,length,separator,enclosure) |
| 參數(shù) | 描述 |
| file | 必需。規(guī)定要檢查的文件。 |
| length | 可選。規(guī)定行的最大長(zhǎng)度。必須大于 CVS 文件內(nèi)最長(zhǎng)的一行。 在 PHP 5 中該參數(shù)是可選的。在 PHP 5 之前是必需的。 如果忽略(在 PHP 5.0.4 以后的版本中設(shè)為 0)該參數(shù)的話,那么長(zhǎng)度就沒(méi)有限制,不過(guò)可能會(huì)影響執(zhí)行效率。 |
| separator | 可選。設(shè)置字段分界符(只允許一個(gè)字符),默認(rèn)值為逗號(hào)。 |
| enclosure | 可選。設(shè)置字段環(huán)繞符(只允許一個(gè)字符),默認(rèn)值為雙引號(hào)。 該參數(shù)是在 PHP 4.3.0 中添加的。 |
注釋:CSV 文件中的空行將被返回為一個(gè)包含有單個(gè) null 字段的數(shù)組,不會(huì)被當(dāng)成錯(cuò)誤。
注釋:該函數(shù)對(duì)區(qū)域設(shè)置是敏感的。比如說(shuō) LANG 設(shè)為 en_US.UTF-8 的話,單字節(jié)編碼的文件就會(huì)出現(xiàn)讀取錯(cuò)誤。
注釋:如果碰到 PHP 在讀取文件時(shí)不能識(shí)別 Macintosh 文件的行結(jié)束符,可以激活 auto_detect_line_endings 運(yùn)行時(shí)配置選項(xiàng)。
例子 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下兼容問(wèn)題
今天有問(wèn)題報(bào)過(guò)來(lái)說(shuō)linux平臺(tái)下 fgetcsv處理的有空數(shù)據(jù)產(chǎn)生起初以為中php版本問(wèn)題,其實(shí)和版本沒(méi)有關(guān)系 在window下開發(fā)的同事都沒(méi)有問(wèn)題,而自己的本本和服務(wù)器上,和使用linux系統(tǒng)的同事 都出現(xiàn)空數(shù)據(jù)的問(wèn)題
google一下
設(shè)置區(qū)域:簡(jiǎn)體中文,UTF-8編碼
復(fù)制代碼 代碼如下:
setlocale(LC_ALL, 'zh_CN.UTF-8');
您可能感興趣的文章:
- php使用fgetcsv讀取csv文件出現(xiàn)亂碼的解決方法
- PHP中SimpleXML函數(shù)用法分析
- PHP中array_slice函數(shù)用法實(shí)例詳解
- php中in_array函數(shù)用法探究
- PHP中mysql_field_type()函數(shù)用法
- php中mt_rand()隨機(jī)數(shù)函數(shù)用法
- PHP中substr()與explode()函數(shù)用法分析
- php中convert_uuencode()與convert_uuencode函數(shù)用法實(shí)例
- php目錄遍歷函數(shù)opendir用法實(shí)例
- php中ftp_chdir與ftp_cdup函數(shù)用法
- php中fgetcsv()函數(shù)用法實(shí)例
相關(guān)文章
關(guān)于Appserv無(wú)法打開localhost問(wèn)題的解決方法
安裝了Appserv時(shí),無(wú)法打開http://localhost或是http://127.0.0.1 下面的具體的解決方法,大家可以參考下。多注意看下端口占用問(wèn)題。2009-10-10
PHP面向?qū)ο髮W(xué)習(xí)之parent::關(guān)鍵字
在PHP中不能定義重名的函數(shù),也包括不能再同一個(gè)類中定義重名的方法,所以也就沒(méi)有方法重載。下面這篇文章主要給大家介紹了PHP面向?qū)ο笾畃arent::關(guān)鍵字的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01
php在頁(yè)面中調(diào)用fckeditor編輯器的方法
fckeditor編輯器的代碼可以寫成一個(gè)函數(shù)或者類別,直接調(diào)用,不用每次都要寫那么多代碼!2011-06-06
PHP開發(fā)不能違背的安全規(guī)則 過(guò)濾用戶輸入
作為PHP程序員,特別是新手,對(duì)于互聯(lián)網(wǎng)的險(xiǎn)惡總是知道的太少,對(duì)于外部的入侵有很多時(shí)候是素手無(wú)策的,他們根本不知道黑客是如何入侵的、提交入侵、上傳漏洞、sql 注入、跨腳本攻擊等等。2011-05-05
php多次include后導(dǎo)致全局變量global失效的解決方法
這篇文章主要介紹了php多次include后導(dǎo)致全局變量global失效的解決方法,實(shí)例分析了$GLOBALS失效的原理與解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
PHP實(shí)現(xiàn)RSA簽名生成訂單功能【支付寶示例】
這篇文章主要介紹了PHP實(shí)現(xiàn)RSA簽名生成訂單功能,涉及php隨機(jī)字符串及編碼相關(guān)操作技巧,以及支付寶公鑰文件讀取與使用方法,需要的朋友可以參考下2017-06-06
關(guān)于使用coreseek并為其做分頁(yè)的介紹
本篇文章是對(duì)使用coreseek并為其做分頁(yè)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

