ITメモ
PHP
PHP マニュアル(PHP Official Web)
Basic Knowlege / 基礎知識
「CentOS」にPHPをインストール方法PHPファイルの作り方外部「クラスファイル」「関数ファイル」を読み込む方法変数の使い方定義済み変数の使い方関数の使い方配列の使い方クラスの使い方ヒアドキュメントの使い方PHPの演算子条件分岐
Access Info / アクセス インフォ
IPアドレスを確認する方法アクセスされたURLパスを確認する方法PCとスマートフォンの判定アクセスしたページから特定ページにリダイレクトさせる方法
ファイル・ディレクトリ
ファイルとディレクトリの操作方法(作成・確認・削除)ディレクトリ内のファイル・ディレクトリPath(URL)を配列に格納する方法
ファイルの読み込みと書き込み
「file_get_contents」関数を使ってファイルを読み込む方法「readfile」関数を使ってファイルを読み込む方法「file」関数を使ってファイルを読み込む方法「fread」関数を使ってファイルを読み込む方法「fgets」関数を使ってファイルを読み込む方法「fwrite」関数を使ってファイルに書き込みをする方法
チェック
「is_file」関数 - 指定パスがファイルかをチェックする方法「is_dir」関数 - 指定パスがディレクトリかをチェックする方法
画像ファイル
画像ファイルのIPTC情報を取得する方法 画像ファイルをZipファイル形式でダウンロードさせる画像をコピーする方法画像のキーワード情報を取得する方法画像ファイルから「EXIF」ヘッダを読み込む画像の大きさ・画像情報を取得する
情報
「PHP」の出力系関数 - プログラミングで必須のデータ内容をチェックする方法関数の返り値を複数で受け取る方法使用可能なメモリ使用量を変更する方法mb_send_mail - エンコード変換を行ってメールを送信する「Google」「Goolge Map]に渡した値が文字化けするときの解決方法PHPで日付比較をする方法
文字列
「文字列」の長さを取得する方法【 substr 】「文字列」から一部分を取り出す方法【 explode 】「文字列」を分割する方法【 preg_split 】正規表現で「文字列」を分割するランダムな数字を取得する方法
文字の検索
「strpos」関数で指定文字の最初の位置を確認する方法「preg_match」関数で指定した「正規表現」で検索する方法
文字の置換
「str_replace」関数で指定した文字列を置き換える方法「preg_replace」関数で指定した文字列を置き換える方法
文字の削除
「trim」関数 - 文字列の両端から指定文字を削除する方法「ltrim」関数 - 文字列の先頭から指定文字を削除する方法「rtrim」関数 - 文字列の末尾から指定文字を削除する方法文字列の中にある「文字」を削除する方法「改行」を削除する方法文字列の「空白(スペース)」を削除する方法
配列
配列に値を追加する方法配列の値を削除する方法配列の有無を確認する方法配列の中から重複した値を削除する配列の空の値を削除する配列の並び順を変えるis_array - 変数が配列かを確認するin_array - 配列の中に指定した値があるか確認するimplode - 値の間に文字加えて配列を文字列に変換するarray_merge - 配列と配列を結合する方法
ライブラリ
「PHP」で使えるライブラリの種類「GD」ライブラリの使い方
Server / サーバー
サーバーの最大実行可能時間を変更する





【PHP】「fread」関数を使ってファイルを読み込む方法

【PHP】
「fread」関数を使ってファイルを読み込む方法




「fread」関数は、
ファイル内容を一度で読み込むタイプのファイル読み込み関数。
「fread」関数だけでは機能させることができず、
あらかじめ「fopen()」関数などで、「ファイルポインタ」を作成する必要がある。

「fread」関数では、
「ファイルパス(ファイルURL)」で指定するのではなく、
「ファイルポインタ」で指定するので、
「fopen()」関数などを一緒に記述する必要がある。


ファイル内容を文字列として読み込むのであれば、
「file_get_contents()」を利用する方が効率的。



「fread」関数とは


「fread」関数は、
バイナリセーフなファイルを読み込む関数。

「fread」関数は、
「fopen()」関数で取得したファイルポインタから、
ファイルの最後までか、第二引数「length」で指定した「バイト数」分ファイルに内容を読み込む。
第二引数「length」を指定しなかった場合は、
ファイルの最後「EOF (ファイルの終端)」までファイル内容を読み込む。


ファイルの中身を「文字列」に格納するなら、「file_get_contents()」が効率的。

「fread()」関数は、ファイルポインタの現在地から読み込み開始される。
ポインタの現在位置を調べるには、「ftell()」関数を使用し、
ポインタ位置を巻き戻すには、「rewind()」を使用する。


Back

「fread」関数の書式


「fread」関数は、
「fopen()」関数を使用して、
「ファイルポインタ」を作成しないと利用する事ができない。

ファイルを読み込むのに、一手間がいるファイル読み込み関数。



fread(resource $stream, int $length): string|false
fread(ファイルポインタ, 読み込み文字数): 返り値



パラメータ

パラメータ説明
stream 「fopen()」を使用して作成した「ファイルシステムポインタリソース」を指定。
length 読み込む最大バイト数を指定する。
戻り値 読み込んだ文字列を返す。
失敗した場合「false」を返す。



「fread」関数のサンプルコード

//ファイル内容を読み込んで変数に格納する
$filename = "ファイル名.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);



//バイナリファイル(画像など)の読み込み
「バイナリファイル」と「テキストファイル」の形式の違いは、
「fopen()」関数の「mode」パラメータに「b」を指定する必要がある。


$filename = "ファイル名.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);



//リモートファイルを読み込む
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);


$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
exit("Failed to open stream to URL");
}

$contents = '';

while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);



Back