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
true
http://www.bkjia.com/PHPjc/325433.html
技術記事
PHP fgetcsv の定義と使用法 PHP fgetcsv() 関数は、ファイル ポインターから行を読み取り、CSV フィールドを解析します。 PHP fgets() と似ていますが、PHP fgetcsv() は読み込まれた行を解析して調べます...