ホームページ >バックエンド開発 >PHPチュートリアル >クイックヒント:PHPでローカルファイルを読み取る方法

クイックヒント:PHPでローカルファイルを読み取る方法

William Shakespeare
William Shakespeareオリジナル
2025-02-08 13:35:11507ブラウズ

Quick Tip: How To Read a Local File with PHP

PHPは、ローカルファイル操作に3つのネイティブ関数を提供します:file()file_get_contents()fopen()。これらの機能を中心に完全なライブラリが構築されていますが、それらは依然としてPHPファイルを迅速に操作する好ましい方法です。

最初にこれらの機能の機能を理解し、次にそれらの作業例を調べます。

file()およびfile_get_contents()

file()およびfile_get_contents()は非常に同様に機能します。彼らはすべてファイル全体を読みます。ただし、file()はファイルを配列に読み取り、file_get_contents()はファイルを文字列に読み取ります。どちらの機能もバイナリセーフです。つまり、あらゆるタイプのファイルコンテンツに使用できます。

file()を使用する場合は特に注意してください。返す配列はnewlinesで分離されますが、各要素は引き続き新しいラインで取り付けられます。

fopen()

fopen()関数は完全に異なって動作します。ファイルを読み取るか書き書き込むストリームとして機能するファイル記述子を開きます。

PHPマニュアルはこれを説明しています:

最も単純な形式では、ストリームはストリーミング可能な動作を示すリソースオブジェクトです。つまり、それは線形方法でそれから読み込んだり書いたりすることができ、fseek()を使用してストリームのどこにでもジャンプすることが可能かもしれません。

単純に言えば、fopen()を呼び出すことは何もしません、それはストリームのみを開きます。

ストリームを開いてファイルハンドルを持っている場合、fread()fwrite()などの他の機能を使用してファイルを操作できます。完了したら、fclose()を使用してストリームを閉じることができます。

次の例を表示します:

<code class="language-php"><?php
    $filepath = "/usr/local/sitepoint.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
    fclose($handle);</code>

上記の関数はファイルをより詳細に制御することができますが、PHPドキュメントに記載されているとおり、file()またはfile_get_contents()関数よりもはるかに低いです。

は、ファイルの内容を文字列に読み取るための好ましい方法です。オペレーティングシステムがサポートしている場合、メモリスワップテクノロジーを使用してパフォーマンスを向上させます。 file_get_contents()

非常に使いやすいです:file_get_contents()

<code class="language-php"><?php
    $file_contents = file_get_contents('./file.txt');</code>
これにより、

のコンテンツがfile.txtに読み取られます。 $file_contents

ファイルの一部のみが必要な場合は、これを行うことができます:

<code class="language-php"><?php
    $file_contents = file_get_contents('./file.txt', FALSE, NULL, 20, 14);</code>
これは、20番目の文字から始まる

14文字を読みます。 file.txtのすべてのパラメーターの詳細については、公式ドキュメントを参照してください。 file_get_contents()PHPでローカルファイルを読み取るためのFAQ

PHPの

file_get_contents()の違いは何ですか? fopen()

およびfile_get_contents()はどちらもPHPのファイルを読み取るために使用されますが、それはわずかに異なって動作します。 fopen()ファイルを文字列に読み取り、ファイル全体を単一の文字列として返します。この関数はシンプルで使いやすいですが、多くのメモリを消費できるため、大きなファイルには適していません。一方、file_get_contents()はファイルまたはURLを開き、fopen()fgets()などの他のファイル関連機能で使用できるリソースを返します。この関数は、ファイルが行ごとに読み取られるため、大きなファイルの方が柔軟で効率的です。 fwrite()

PHPでファイルを読み取るときにエラーを処理する方法は?

PHPは、ファイルを読み取るときにエラーを処理するいくつかの方法を提供します。一般的なアプローチは、関数の前に「@」演算子を使用してエラーメッセージを抑制することです。もう1つの方法は、

関数を使用して、ファイルが読み取れようとする前に存在するかどうかを確認することです。また、関数を使用して、ファイルが読み取り可能かどうかを確認することもできます。エラーが発生した場合、これらの関数はfalseを返し、エラーを優雅に処理できるようになります。 file_exists() is_readable() PHPのリモートサーバーからファイルを読み取ることはできますか?

はい、PHPでは、

または

関数(ローカルファイルパスの代わりにURLを使用)を使用してリモートサーバーからファイルを読み取ることができます。ただし、セキュリティ上の理由から、この機能は一部のサーバーで無効になる場合があります。ファイルのfile_get_contents()設定を表示することで有効になっているかどうかを確認できます。 fopen() php.ini PHPでファイルの特定の行を読み取る方法は? allow_url_fopen

PHPは、ファイルの特定の行を読み取るための組み込み関数を提供しませんが、これを

関数を使用して配列に読み取り、インデックスを作成して必要な行にアクセスすることでこれを行うことができます。インデックスは0から始まるので、最初の行はインデックス0、2番目の行はインデックス1などです。

PHPでバイナリモードでファイルを読み取る方法は? file()

PHPでバイナリモードのファイルを読み取るには、「b」フラグを使用して

関数を使用できます。これは、画像や実行可能ファイルなどのバイナリファイルを読み取るのに特に便利です。ファイルを開いた後、データをバイナリ文字列として返す

関数を使用して読み取ることができます。

fopen() PHPでCSVファイルを読み取る方法は? fread()

PHPは、CSVファイルを読み取るための

関数を提供します。この関数は、読み取る行のCSV形式フィールドを解析し、読み取りフィールドの配列を返します。この関数をループに使用して、CSVファイル全体を読み取ることができます。

PHPでファイルを逆に読み取る方法は?

PHPは、ファイルを逆に読み取るための組み込み関数を提供しませんが、これをfile()関数を使用してアレイに読み取り、array_reverse()関数を使用して配列を逆にすることでこれを行うことができます。

ロックせずにPHPでファイルを読み取る方法は?

デフォルトでは、PHPはそれらを読み取るときにファイルをロックしません。ただし、ファイルがロックされていないことを確認する必要がある場合は、ファイルを読み取る前にLOCK_SHフラグを使用してflock()関数を使用できます。この関数は、共有ロックの取得を試み、他のプロセスが同時にファイルを読み取ることができます。

PHPで大きなファイルを効率的に読み取る方法は?

PHPで大規模なファイルを効率的に読み取るには、fopen()関数を使用してファイルを開き、ループのfgets()関数を使用して行ごとに読み取ることができます。この方法は、ファイル全体を文字列または配列に読み取るよりもメモリ節約です。

PHPでファイルを読み取り、コンテンツをブラウザに出力する方法は?

PHPのファイルを読み取り、コンテンツをブラウザに出力するには、readfile()関数を使用できます。この関数はファイルを読み取り、それを出力バッファーに書き込み、それをブラウザに送信します。これは、ユーザーにファイル(画像やダウンロード可能なファイルなど)を提供する便利な方法です。

以上がクイックヒント:PHPでローカルファイルを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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