133

テキスト ファイルのすべての行を配列に読み込んで、各行を新しい要素にしようとしています。
これまでの私のコード。

<?php
$file = fopen("members.txt", "r");
while (!feof($file)) {

$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);

?>
4

11 に答える 11

416

特別な処理が必要ない場合は、これで目的の処理が実行されるはずです

$lines = file($filename, FILE_IGNORE_NEW_LINES);
于 2011-05-28T04:48:46.543 に答える
41

私が見つけた最速の方法は次のとおりです。

// Open the file
$fp = @fopen($filename, 'r'); 

// Add each line to an array
if ($fp) {
   $array = explode("\n", fread($fp, filesize($filename)));
}

$filename は、ファイルのパスと名前になります。../ファイル名.txt。

テキスト ファイルの設定方法によっては、\n ビットをいじる必要がある場合があります。

于 2012-01-02T19:37:18.520 に答える
22
<?php
$file = fopen("members.txt", "r");
$members = array();

while (!feof($file)) {
   $members[] = fgets($file);
}

fclose($file);

var_dump($members);
?>
于 2011-05-28T04:45:16.317 に答える
9

それはとても簡単です:

$lines = explode("\n", file_get_contents('foo.txt'));

file_get_contents()- ファイル全体を文字列として取得します。

explode("\n")- 文字列を区切り文字で分割します"\n"- 改行の ASCII-LF エスケープとは何ですか。

ただし、注意してください。ファイルの末尾がUNIX -Line であることを確認してください。

"\n"正しく動作しない場合は、改行の別のコーディングがあり、試すことができます"\r\n""\r"または"\025"

于 2014-03-21T16:17:38.097 に答える
7
$lines = array();
while (($line = fgets($file)) !== false)
    array_push($lines, $line);

明らかに、最初にファイル ハンドルを作成し、それを に保存する必要があります$file

于 2011-05-28T04:45:55.513 に答える
3
$file = __DIR__."/file1.txt";
$f = fopen($file, "r");
$array1 = array();

while ( $line = fgets($f, 1000) )
{
    $nl = mb_strtolower($line,'UTF-8');
    $array1[] = $nl;
}

print_r($array);
于 2013-12-01T13:28:36.793 に答える
1
    $file = file("links.txt");
print_r($file);

これにより、txt ファイルが配列として受け入れられます。したがって、このページを実行した後、links.txt ファイル (1 つの要素に対して 1 行を使用) に何かを書き込みます:) 配列は $file になります

于 2014-03-22T22:37:35.343 に答える
1

あなたは正しい道を進んでいましたが、投稿したコードにはいくつかの問題がありました。まず、while ループの閉じ括弧がありませんでした。次に、$line_of_text はすべてのループ反復で上書きされます。これは、ループ内で = を .= に変更することで修正されます。第三に、実際の改行ではなく、リテラル文字 '\n' を分解しています。PHP では、一重引用符はリテラル文字を表しますが、二重引用符は実際にはエスケープ文字と変数を解釈します。

    <?php
        $file = fopen("members.txt", "r");
        $i = 0;
        while (!feof($file)) {
            $line_of_text .= fgets($file);
        }
        $members = explode("\n", $line_of_text);
        fclose($file);
        print_r($members);
    ?>
于 2011-05-30T05:24:43.920 に答える