php fgetcsv() 函數語法參數enclosure詳解

怪我咯
發布: 2023-03-13 13:14:01
原創
2169 人瀏覽過

fgetcsv() 函數從檔案指標讀入一行並解析 CSV 欄位。

與 fgets() 類似,不同的是 fgetcsv() 解析讀入的行並找出 CSV 格式的字段,然後傳回一個包含這些字段的數組

fgetcsv() 出錯時傳回 FALSE,包括碰到檔案結束時。

註解:從 PHP 4.3.5 起,fgetcsv() 的操作是二進位安全的。

語法

fgetcsv(file,length,separator,enclosure)
登入後複製
##file 必要。規定要檢查的文件。 lengthseparator#可選。設定字段分界符(只允許一個字元),預設值為逗號。 enclosure
#參數描述
#可選。規定行的最大長度。必須大於 CVS 文件內最長的一行。

在 PHP 5 中該參數是可選的。在 PHP 5 之前是必需的。

如果忽略(在 PHP 5.0.4 以後的版本中設為 0)該參數的話,那麼長度就沒有限制,不過可能會影響執行效率。

#可選。設定欄位環繞符(只允許一個字元),預設值為雙引號。

此參數是在 PHP 4.3.0 中新增的。

對於enclosure的解釋是圍繞字段的字元。

包含逗號, 雙引號, 或是換行符號的欄位必須放在引號內(只有三個特殊值時需要特別處理)。

欄位內部的引號必須在其前面增加一個引號來實現引號的轉碼。
分隔符號逗號前後的空格 可能不會被修剪掉。
元素中的換行符號將會保留下來。

對應到下面例子,就會比較容易理解上述說明了。

字段1            字段2                        字段中3

##goog  # 我想用fgetscv()把它讀出來並存到array去,就必須對csv檔案中儲存的格式進行限定。

csv儲存的內容有l兩種情況:

(1)情況一,直接是goog,veture"vision,good",abc

這樣你會發現get出來的不是你想要的東西。其array輸出為

Array ( [0] => goog [1] => vetur"evision [2] => good" [3] => abc )

# (2)情況二,csv裡的內容是goog,"veture""vision,good""",abc

這是根據上面的說明對原有內容進行修改過的。加上了圍繞著字元雙引號。

其array輸出是我們想要的

Array ( [0] => goog [1] => veture"vision,good" [2] => abc )
登入後複製

對於上面說明的一些補充,若字段內含有逗號,僅需將該字段用雙引號括住即可,無需再在逗號前面加雙引號。

以上是php fgetcsv() 函數語法參數enclosure詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!