ファイルから最初の行を読み取る最も簡単な方法

file php
ファイルから最初の行を読み取る最も簡単な方法

ファイルからのみ最初の行を読み取る最も簡単で簡単な方法は何ですか? `file`を使用できることは知っていますが、私の場合、ファイル全体をロードする時間を無駄にする意味はありません。

できればワンライナー。

  45  10


ベストアンサー

まあ、あなたはすることができます:

$f = fopen($file, 'r');
$line = fgets($f);
fclose($f);

1行ではありませんが、1行にすると、エラーチェックのためにねじ込まれたり、必要以上にリソースを開いたままにしたりするため、複数の行を維持する必要があります。

Edit

ファイルが*絶対に*存在することがわかっている場合は、ワンライナーを使用できます。

$line = fgets(fopen($file, 'r'));

その理由は、PHPがリソース用にhttp://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization[RAII]を実装しているためです。

つまり、ファイルハンドルがスコープから外れると(この場合はfgetsの呼び出し直後に発生します)、閉じられます。

116


$firstline=`head -n1 filename.txt`;

27


$line = '';
$file = 'data.txt';
if($f = fopen($file, 'r')){
  $line = fgets($f); // read until first newline
  fclose($f);
}
echo $line;

6


file()関数について誰も言及していないことに感心しました。

$line = file($filename)[0];

またはversion_compare(PHP_VERSION、 “5.4.0”)<0の場合:

$line = array_shift(file($filename));

6


if(file_exists($file)) {
    $line = fgets(fopen($file, 'r'));
}

2


freadにアクセスして、読み込むファイルサイズを宣言できます。

0


私のプロジェクトの1つ(qSandbox)では、このアプローチを使用して、とにかく読んだテキストファイルの最初の行を取得します。 メールテンプレートはテキストファイルにあり、件名は最初の行にあります。

$subj_regex = '#^\s*(.+)[\r\n]\s*#i';

// subject is the first line of the text file. Smart, eh?
if (preg_match($subj_regex, $buff, $matches)) {
    $subject = $matches[1];
    $buff = preg_replace($subj_regex, '', $buff); // rm subject from buff now.
}

0


fgets()は、最後に新しい行である「」を返しますが、このコードを使用すると、最後にlineBreakなしで最初の行が表示されます。

$handle = @fopen($filePath, "r");
$text=fread($handle,filesize($filePath));
$lines=explode(PHP_EOL,$text);
$line = reset($lines);

0


ファイル全体を読むことを気にしない場合、ワンライナーは次のようになります。

$first_line = array_shift(array_values(preg_split('/\r\n|\r|\n/', file_get_contents($file_path), 2)));

🙂

-1


これを試して:

$file = 'data.txt';
$data = file_get_contents($file);
$lines = explode

-6


タイトルとURLをコピーしました