ホームページ >バックエンド開発 >PHPチュートリアル >PHP でファイルを読み取る一般的な方法のまとめ

PHP でファイルを読み取る一般的な方法のまとめ

WBOY
WBOYオリジナル
2016-07-25 08:59:25969ブラウズ
  1. $filename = "/usr/local/something.txt";
  2. $handle = fopen($filename, "r");//バイナリ ファイルを読み取るときは、次のことを追加する必要があります2 番目 各パラメータを 'rb' に設定します
  3. //filesize でファイル サイズを取得し、ファイル全体を一度に文字列に読み込みます
  4. $contents = fread($handle, filesize ($filename));
  5. fclose($handle ) ;
  6. ?>
コードをコピー

読み込むファイルがローカルの通常ファイルではなく、リモートファイルやストリームファイルの場合、filesizeでこれらのサイズを取得できないため、この方法は使用できません。ファイル。このとき、feof() または fread() の戻り値を使用して、ファイルの終端を読み取ったかどうかを判断する必要があります。

例:

  1. $handle = fopen('http://bbs.it-home.org', 'r');
  2. $content = '';
  3. while(!feof($handle )){
  4. $content .= fread($handle, 8080);
  5. }
  6. echo $content;
  7. fclose($handle);
  8. ?>
コードをコピー

または:

  1. $handle = fopen('http://bbs.it-home.org', 'r');
  2. $content = '';
  3. while(false != ($ a = fread($handle, 8080))){// false が返された場合は、ファイルの末尾が読み取られたことを示します
  4. $content .= $a;
  5. }
  6. echo $content;
  7. fclose($handle);
  8. ? >
コードをコピー

2. fgetsメソッド string fgets ( int $handle [, int $length ] ) fgets() は、handle が指すファイルから行を読み取り、最大長 - 1 バイトの文字列を返します。改行文字 (戻り値に含まれる)、EOF、または長さ - 1 バイト (いずれか最初に発生した方) が読み取られたときに停止します。長さが指定されていない場合、デフォルトは 1K、つまり 1024 バイトになります。

  1. $handle = fopen('./file.txt', 'r');
  2. while(!feof($handle)){
  3. echo fgets($handle, 1024);
  4. }
  5. fclose($handle);
  6. ?>
コードをコピー

注: length パラメーターは PHP 4.2.0 からオプションになり、省略した場合、行の長さは 1024 とみなされます。 PHP 4.3 以降、length を省略すると、行の終わりまでストリームからの読み取りが継続されます。ファイル内のほとんどの行が 8KB を超える場合は、スクリプトで最大行長を指定すると、リソースをより効率的に利用できます。 PHP 4.3 以降、この関数はバイナリ ファイルに対して安全に使用できます。以前のバージョンにはありません。

3. fgetsメソッド string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] ) fgets と同じ機能ですが、fgetss は読み取ったテキストから HTML タグと PHP タグを削除しようとします。オプションの 3 番目のパラメータを使用して、削除しないタグを指定できます。

  1. $handle = fopen('./file.txt', 'r');
  2. while(!feof($handle)){
  3. echo fgetss($handle, 1024, '
    ');
  4. }
  5. fclose($handle);
  6. ?>
コードをコピー

4. 配列ファイル ( string $filename [, int $use_include_path [, resource $context ]] ) ファイルの内容を配列に読み取ります。配列内の各項目は、改行を含むファイル内の行に対応します。行終了記号が必要ない場合は、rtrim() 関数を使用して改行文字を除外できます。

  1. $a = file('./file.txt');
  2. foreach($a as $line => $content){
  3. echo 'line '.($line + 1).':'.$content;
  4. }
  5. ?>
コードをコピー

5. int readfile ( string $filename [, bool $use_include_path [, resource $context ]] ) ファイルを読み取り、出力バッファに書き込みます。ファイルから読み取られたバイト数を返します。 @readfile() として呼び出されない限り、エラー時に FALSE を返し、エラー メッセージを表示します。

  1. $size = readfile('./file.txt');
  2. echo $size;
  3. ?>
コードをコピー

1 2 次のページの終わりページ



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。