ホームページ > バックエンド開発 > PHPチュートリアル > 毎日新しいPHP関数を学ぶ(2) fgetcsv()/fgets()

毎日新しいPHP関数を学ぶ(2) fgetcsv()/fgets()

WBOY
リリース: 2016-06-13 12:19:01
オリジナル
973 人が閲覧しました

毎日新しい PHP 関数を学習します (2) fgetcsv()/fgets()

ファイルの読み取りと書き込みは一般的なアクションであり、複雑です。いくつかありますが、簡単なものもあります。最も一般的に使用され便利なものは file_get_contents() と file_put_conents() です。ファイルを開いたり閉じたりする必要はありません。
しかし、非常に大きなファイルを読み取る場合、file_get_contents() はすべての内容をメモリに読み取るため、メモリ オーバーフローが発生します。ループで 1 行ずつ読み取るのが最善です。 fgetcsv() は csv ファイルの 1 行を読み取るために使用され、fgets() は通常のファイルを読み取るために使用されます。

fgetcsv()

csv は、各フィールドが「,」で区切られ、各行が「n」で区切られた、特別にフォーマットされた形式のテキスト ファイルです。 fgetcsv を使用して各フィールドを読み取ることも、fgets を使用して各行を読み取り、explode(‘,’,$data) を使用して各行のデータを分離することもできます。
fgetcsv — ファイル ポインタから 1 行を読み取り、CSV フィールドを解析します

array fgetcsv ( resource $handle [, int $ 長さ = 0 [, 文字列 $区切り文字 = ',' [, 文字列 $囲み = '"' [, 文字列 $エスケープ = '' ]] ] ] )

パラメータ

ハンドル
fopen()、popen()、または fsockopen() によって生成された有効なファイル ポインターを受け入れます >
length は CVS ファイル内の最長の行より大きくなければなりません。このパラメータは PHP 5 ではオプションです (PHP 5.0.4 以降では 0 に設定されます)。

delimiter フィールドの区切り文字を設定します (1 文字のみ使用可能)

enclosure 🎜>フィールドを設定します。折り返し文字 (1 文字のみ許可)
escape
エスケープ文字 (1 文字のみ許可) を設定します。 注: CSV フィールドの文字長が設定された長さを超える場合、関数は毎回その長さの文字のみを読み取り、インデックス 0 の配列を返します。区切り文字「,」が出現すると、区切り文字の後の文字列はブロックされます。> 33 r4444

fgets()

fgets — ファイル ポインタから 1 行を読み取ります
<code><?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);}?> </code>
ログイン後にコピー

パラメータ


handle

ファイル ポインタは有効である必要があり、fopen() または fsockopen() によって正常に開かれた (かつ、fclose() によってまだ閉じられていない) ファイルを指している必要があります。
ハンドルで指定されたファイルから行を読み取り、改行文字 (戻り値に含まれる)、EOF または Stop after length (1 バイトが含まれる) に遭遇すると最大 length - 1 バイトの長さの文字列を返します。長さが指定されていない場合、デフォルトは 1K、つまり 1024 バイトになります。

注:

PHP 4.3 以降、length が省略された場合、行の長さは 1024 とみなされ、データはストリームから読み取られ続けます。行の終わり。ファイル内のほとんどの行が 8KB を超える場合は、スクリプトで最大行長を指定すると、リソースをより効率的に利用できます。

戻り値
<code>string fgets ( resource $handle [, int $length ] )</code>
ログイン後にコピー
ポインタハンドルが指すファイルから length - 1 バイトを読み取った後の文字列を返します。 ファイル ポインタにデータが存在しない場合は FALSE を返します。

エラーが発生した場合は FALSE を返します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート