ファイルの読み取りと書き込みは一般的なアクションであり、ファイルを読み取るための関数は文字通り何千もあり、複雑なものもあれば単純なものもあります。最も一般的に使用され便利なものは file_get_contents() と file_put_conents() です。ファイルを開いたり閉じたりする必要はありません。
ただし、非常に大きなファイルを読み取る場合、file_get_contents() はすべての内容をメモリに読み取るため、メモリ オーバーフローが発生します。ループで 1 行ずつ読み取るのが最適です。 fgetcsv() は csv ファイルの 1 行を読み取るために使用され、fgets() は通常のファイルを読み取るために使用されます。
csv は、各フィールドが「,」で区切られ、各行が「n」で区切られた特別にフォーマットされたフォームテキストファイルです。 fgetcsv を使用して各フィールドを読み取ることも、fgets を使用して各行を読み取り、explode(‘,’,$data) を使用して各行のデータを分離することもできます。
fgetcsv ? ファイル ポインタから 1 行を読み取り、CSV フィールドを解析します
array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = ',' [, string $enclosure = '"' [ , string $escape = '' ]]]] )
handle
fopen()、popen() または fsockopen() によって生成された有効なファイル ポインターを受け入れます
長さ
は、 CVS ファイル。このパラメータは PHP 5 ではオプションです。このパラメータを省略した場合 (PHP 5.0.4 以降のバージョンでは 0 に設定)、長さに制限はありませんが、実行効率に影響する可能性があります。区切り文字 (1 文字のみ許可)
囲み
フィールド ラッパーの設定 (1 文字のみ許可)
エスケープ
エスケープ文字の設定 (1 文字のみ許可)、デフォルトはバックスラッシュ
注: CSV の文字長フィールドが設定された長さより大きい場合、関数は毎回その長さの文字のみを読み取り、インデックス 0 の配列を返します。区切り文字「,」が出現すると、区切り文字の後の文字列はブロックされます
example
<?phpfile_put_contents('test.csv','user1111,user222'."\n".'user3333,user4444');if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 6, ",")) !== FALSE) { echo $data[0] . "<br />\n"; } fclose($handle);}?>
user11
11 r222
user33
33
r4444
fgets()
string fgets ( resource $handle [, int $length ] )
Parameters
length
注:
戻り値
ポインタハンドルが指すファイルから length - 1 バイトを読み取った後の文字列を返します。 ファイル ポインタにデータが存在しない場合は FALSE を返します。