|
php fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。
與php fgets() 類(lèi)似,不同的是 php fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個(gè)包含這些字段的數(shù)組。
fgetcsv() 出錯(cuò)時(shí)返回 FALSE,包括碰到文件結(jié)束時(shí)。
注釋?zhuān)簭?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ù)的話(huà),那么長(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 中添加的。 |
注釋?zhuān)篊SV 文件中的空行將被返回為一個(gè)包含有單個(gè) null 字段的數(shù)組,不會(huì)被當(dāng)成錯(cuò)誤。
注釋?zhuān)涸摵瘮?shù)對(duì)區(qū)域設(shè)置是敏感的。比如說(shuō) LANG 設(shè)為 en_US.UTF-8 的話(huà),單字節(jié)編碼的文件就會(huì)出現(xiàn)讀取錯(cuò)誤。
注釋?zhuān)喝绻龅?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
輸出類(lèi)似:
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
輸出類(lèi)似:
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下開(kāi)發(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技術(shù):PHP fgetcsv 定義和用法(附windows與linux下兼容問(wèn)題),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。