ホームページ > バックエンド開発 > PHPチュートリアル > コードがテキスト ファイルのすべての行ではなく、最後の行のみを配列に保存するのはなぜですか?

コードがテキスト ファイルのすべての行ではなく、最後の行のみを配列に保存するのはなぜですか?

DDD
リリース: 2024-10-29 03:09:02
オリジナル
760 人が閲覧しました

Why does my code only store the last line of the text file in the array, instead of all lines?

テキスト ファイルの行を配列要素に読み取る

質問:

このコード スニペットでは、テキスト ファイルを 1 行ずつ配列に読み込みます:

<code class="php">$file = fopen("members.txt", "r");
while (!feof($file)) {
  $line_of_text = fgets($file);
  $members = explode('\n', $line_of_text);
}
fclose($file);</code>
ログイン後にコピー

$members 配列には、テキスト ファイルの各行の要素ではなく、最後の行だけが含まれるのはなぜですか?

回答:

提供されたコードはテキスト ファイルから行を正しく読み取りますが、行の配列の作成時に問題が発生します。ループ内でexplode('n', $line_of_text)を使用すると、反復ごとに$members配列が上書きされ、最終的には最後の行のみが保存されます。

この問題を解決するには、代わりにfile関数を使用してください:

<code class="php">$lines = file($filename, FILE_IGNORE_NEW_LINES);</code>
ログイン後にコピー

この関数は、各要素がテキスト ファイルの行を表す配列を直接作成します。 FILE_IGNORE_NEW_LINES を使用すると、各行の改行文字がスキップされ、配列には行の内容のみが含まれるようになります。

以上がコードがテキスト ファイルのすべての行ではなく、最後の行のみを配列に保存するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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