テキストファイルのすべての行を配列に読み取り、各行を新しい要素にしようとしています。
これまでの私のコード。
<?php
$file = fopen("members.txt", "r");
$i = 0;
while (!feof($file)) {
$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);
?>
特別な処理が必要ない場合は、 this が探しているものを実行する必要があります
$lines = file($filename, FILE_IGNORE_NEW_LINES);
私が見つけた最速の方法は次のとおりです。
// Open the file
$fp = @fopen($filename, 'r');
// Add each line to an array
if ($fp) {
$array = explode("\n", fread($fp, filesize($filename)));
}
ここで、$ filenameはファイルのパスと名前です。 ../filename.txt。
テキストファイルの設定方法によっては、\ nビットをいじる必要があるかもしれません。
これを使用してください:
$array = explode("\n", file_get_contents('file.txt'));
<?php
$file = fopen("members.txt", "r");
$members = array();
while (!feof($file)) {
$members[] = fgets($file);
}
fclose($file);
var_dump($members);
?>
$yourArray = file("pathToFile.txt", FILE_IGNORE_NEW_LINES);
FILE_IGNORE_NEW_LINES
は、各配列要素の最後に改行を追加しないようにしますFILE_SKIP_EMPTY_LINES
を使用して空行をスキップすることもできます
参照 ここ
$lines = array();
while (($line = fgets($file)) !== false)
array_Push($lines, $line);
明らかに、最初にファイルハンドルを作成し、$file
に保存する必要があります。
それは簡単です:
$lines = explode("\n", file_get_contents('foo.txt'));
file_get_contents()
-ファイル全体を文字列として取得します。
explode("\n")
-区切り文字でストリングを分割します"\n"
-改行のASCII-LFエスケープとは.
ただし、注意が必要です。ファイルにUNIX-行末記号があることを確認してください。
"\n"
が適切に機能しない場合は、2改行の別のコーディングがあり、"\r\n"
、"\r"
、または"\025"
を試すことができます。
$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);
あなたは正しい軌道に乗っていましたが、投稿したコードにはいくつかの問題がありました。まず第一に、whileループには閉じ括弧がありませんでした。次に、$ line_of_textはループの繰り返しごとに上書きされます。これは、ループ内の=を。=に変更することで修正されます。 3番目に、実際の改行ではなくリテラル文字「\ 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);
?>
$file = file("links.txt");
print_r($file);
これは、txtファイルを配列として受け入れます。したがって、links.txtファイルに何かを書いて(1つの要素に1行を使用して)、このページを実行してください:)配列は$ fileになります
ここでは非常によくカバーされていますが、REALLYがここにリストされているものよりも優れたパフォーマンスを必要とする場合は、strtok
を使用するこのアプローチを使用できます。
$Names_Keys = [];
$Name = strtok(file_get_contents($file), "\n");
while ($Name !== false) {
$Names_Keys[$Name] = 0;
$Name = strtok("\n");
}
注:これは、ファイルが改行文字として\n
で保存されていることを前提としています(必要に応じて更新できます)。ルックアップテーブル。in_array
の代わりにisset
の使用を許可します(はるかに高速です)。