【PHP】file_get_contentsを使ってファイル、WEBページの情報を取得!

PHPのfile_get_contents()関数は、ファイルを文字列に読み込みや、
WEBページのHTMLを読み込むために使用される組み込み関数です。
この関数は、メモリマッピングテクニックを使用しているため、パフォーマンスが向上し、ファイルの内容を読み取るために好ましい方法をとっています。
今回はfile_get_contents()関数について解説していきます。

ここでは、PHPのfile_get_contents()関数を使ったファイルの読み込みやWEBページの読み込み方法を
サンプルコードを使って分かり易く解説していきます。

file_get_contents()関数とは

冒頭でも書きましたが、file_get_contents()関数は指定したファイルの内容を全て取得する関数になります。
取得する内容は文字列となりますので、file()関数とは異なります。

構文

file_put_contents()関数は以下のようになります。

パラメータ

file_get_contents()関数は、1つの必須パラメータと4つのオプションパラメータを受け入れます。

パラメータ 説明
$ファイル名/URLパス/td> チェックするファイルまたはディレクトリのパスを指定します。
$インクルードパス これは、include_path(php.ini内)内のファイルが1に設定されている場合にもファイルを検索するオプションのパラメーターです。
$コンテキスト これは、読み取り用のファイルの開始点を指定するために使用されるオプションのパラメーターです。
$オフセット ユーザーからfloat型を読み取る。
$読み込むデータの最大バイト数 これは、読み取るバイト数を指定するために使用されるオプションのパラメーターです。

戻り値

成功した場合は読み取りデータ、失敗した場合はfalseを返します。

エラーと例外

スペースなどの特殊文字を含むファイルを開く場合は、最初にurlencode()を使用してエンコードする必要があります。
file_get_contents()関数はブール値FALSEを返しますが、falseと認識される非ブール値を返す場合もあります。
E_WARNINGレベルのエラーは、ファイル名が見つからない場合、maxlengthがゼロ未満の場合、
またはストリーム内の指定されたオフセットの検索に失敗した場合に生成されます。

file_get_contentsを使ってファイルの情報取得

ファイルの内容を全て読み込み

まずはファイルの内容を全ての読み込みこんでみましょう。
test.txtには以下のような内容が書かれています。

test.txt

file_get_contents()関数を使ってファイルの内容を全て読み込んでみましょう。

出力結果

こんにちは
フライテックのエンジニアです。
最近Javaの案件が多いのです。
人材募集してますので気になった方は
是非、「フライテック」で検索で

ファイルの一部の読み込み

次はファイルの一部を読み込んでみましょう。
先ほどのtest.txtを準備します。

test.txt

5文字目から15文字分読み込んみます。
するとこのようなコードになります。

 

出力結果

フライテックのエンジニアです。

このようにオフセットと最大バイト数を設定することでファイルの一部を読み込む
ことができます。

file_get_contentsを使ってWEBページの情報取得

Webページの内容を読み込む

先ほどはテキストの内容を読み込んでみましたが、
file_get_contents()関数はWebページの内容も読み込むことができます。
Webページの内容の読み込み方は以下のようになります。

内容としてはそれほど変わりませんが、パラメータがテキストファイルのディレクトリではなく、
URLをhttpまたはhttpsから指定するとWebページの内容の読み込むことができます。
試しに、フライテックのURLを指定してWebページの内容を読み込んでみましょう。

出力結果

<!– [if IE]><meta http-equiv=”X-UA-Compatible” content=”IE=edge”><![endif]–>フライテックが運営するITエンジニアの案件・求人情報サイト【フライテック】。フリーランスエンジニア向け案件への参画サポートを行うITエンジニア専門のエージェントです。….

このようにWebページの内容を読み込むことができます。
これはフライテックのホーム画面の内容となっています。
もし、気になる方は、フライテックのホーム画面を確認し、取得した内容と比べみてください。

エラー/例外の場合の処理

エラーや例外の場合どのような処理が行われるのか確認してみましょう。
次の例を見てください。

出力結果

PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /workspace/Main.php on line 2

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し