今回はPHPで指定したファイルや文字列を読み込んでくれるfile_get_contents()を紹介してみようと思います。
#file_get_contents()とは
一言で表すと指定したファイルやURLを全て文字列に読み込んでくれる関数になります。
リファレンスにはこう書いてあります。
file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) : string
#####説明
_この関数は file() と似ていますが、 offset で指定した場所から開始し maxlen バイト分だけ ファイルの内容を文字列に読み込むという点が異なります。 失敗した場合、file_get_contents() は FALSE を返します。
file_get_contents()はファイルの内容を文字列に読み込む 方法として好ましいものです。もしOSがサポートしていれば パフォーマンス向上のためにメモリマッピング技術が使用されます。
##引数
引数に当たる部分を解説していきます。
$filename
読み込みたいファイルやURLを指定します。
$use_include_path
指定するとinclude_pathからファイルを検索できます。
指定しない場合はfalseです。
$context
独自のコンテキストを使う場合に指定します。
使わない場合はNULLを返します。
$offset
読み込みを開始する位置を指定します。
$maxlen
読み込むデータの最大バイト数を指定します。
返り値
読み込んだファイル、URLの内容を文字列で返します。
読み込みに失敗した場合には、falseを返します。
##サンプルコード
###ファイルandURL
<?php
$file = file_get_contents('php.txt');//('〜')ここにファイル名やURLを入れる
echo $file;
?>
実行結果
php.txtの内容が文字列で返されます。
###ファイルの一部
指定したファイルを「読み込み開始位置」から「読み込み終了位置」まで読み込み、それを出力するコードです。
<?php
$abc = file_get_contents('abc.txt');
var_dump( $abc );
$abc = file_get_contents('abc.txt', false, NULL, 3, 10);
var_dump( $abc );
?>
file_get_contents(ファイル,false, NULL,読み込み開始位置,読み込み終了位置)
実行結果
string(27) "abcdefghijklmnopqrstuvwxyz"
string(10) "defghijklm"
#終わりに
PHPのファイルURLの内容を取得するfile_get_contentsでサーバーの設定によっては、データの取得ができない場合がありました。そのような場合でも他にcURLというものが存在するので、こちらを使ってみてもいいと思います。
その内cURLの記事も載せるのでよかったらみてください。
参考サイト
https://webkaru.net/php/function-file-get-contents/
https://www.php.net/manual/ja/function.file-get-contents
https://www.tam-tam.co.jp/tipsnote/program/post8753.html
https://qiita.com/shinkuFencer/items/d7546c8cbf3bbe86dab8