ホームページ  >  記事  >  バックエンド開発  >  PHP fgetcsv の定義と使用法 (Windows と Linux での互換性の問題あり)_PHP チュートリアル

PHP fgetcsv の定義と使用法 (Windows と Linux での互換性の問題あり)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:18:41877ブラウズ

PHP fgetcsv の定義と使用法

PHP fgetcsv() 関数は、ファイル ポインターから 1 行を読み取り、CSV フィールドを解析します。
PHP fgets() と似ていますが、PHP fgetcsv() は読み取った行を解析して CSV 形式のフィールドを見つけ、これらのフィールドを含む配列を返す点が異なります。

fgetcsv()は、ファイルの終端に達した場合など、エラーが発生した場合にFALSEを返します。

注: PHP 4.3.5 以降、PHP fgetcsv() の操作はバイナリセーフです。

文法

fgetcsv(ファイル,長さ,区切り記号,囲み文字)
パラメータ 説明
ファイル 必須。チェックするドキュメントを指定します。
長さ オプション。線の最大長を指定します。 CVS ファイル内の最長の行よりも大きくする必要があります。
このパラメータは PHP 5 ではオプションです。 PHP 5 より前では必須。
このパラメータを省略した場合(PHP 5.0.4 以降のバージョンでは 0 に設定)、長さに制限はありませんが、実行効率に影響を与える可能性があります。
区切り文字 オプション。フィールド区切り文字を設定します (1 文字のみ使用可能)。デフォルトはカンマです。
エンクロージャー オプション。フィールド折り返し文字を設定します (1 文字のみ使用可能)。デフォルト値は二重引用符です。
このパラメータは PHP 4.3.0 で追加されました。
ヒントとメモ

注: CSV ファイル内の空行は、単一の null フィールドを含む配列として返され、エラーとして扱われません。
注: この機能はロケール設定の影響を受けます。たとえば、LANG が en_US.UTF-8 に設定されている場合、シングルバイトでエンコードされたファイルには読み取りエラーが発生します。
注: ファイルを読み取るときに PHP が Macintosh ファイルの行末文字を認識できない場合は、auto_detect_line_endings ランタイム構成オプションをアクティブにすることができます。

例 1
コードをコピーします コードは次のとおりです:

$file = fopen("contacts.csv","r");
print_r(fgetcsv($file); ));
fclose($file);


CSV ファイル:
George, John, Thomas, USA James, Adrew, USA
配列 ( [0] => George [1] = > John [2] => Thomas [3] => USA )

コードをコピーします

コードは次のとおりです:
$file = fopen("contacts.csv ","r"); while(! feof($file)) { print_r(fgetcsv($file))
;
CSV ファイル:
George, John, Thomas, USA James, Adrew, Martin, USA
出力は次のようになります:
Array ( [0] => George [1] => John [2] => Thomas [3] => USA 配列 ( [0] => James [1] => Adrew [2] => Martin [3] => USA )


Windows と Linux 間の互換性の問題


今日、Linux プラットフォームでの fgetcsv 処理に関する問題が報告されました。空のデータが生成されたとき、最初は PHP のバージョンの問題だと思いましたが、実際には Windows で開発している同僚は問題ありませんでした。ただし、空のデータの問題は、私自身のノートブックやサーバーだけでなく、Linux システムを使用している同僚でも発生します

Google で調べてください

ロケールを設定してください: 簡体字中国語、UTF-8 エンコーディング

コードをコピーしてください

は次のとおりです:


setlocale(LC_ALL, 'zh_CN.UTF-8');
http://www.bkjia.com/PHPjc/325433.html
www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/325433.html

技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php array_PHPチュートリアルの勉強メモ次の記事:php array_PHPチュートリアルの勉強メモ

関連記事

続きを見る