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】exif_read_data - 画像ファイルから「EXIF」ヘッダを読み込む

【PHP】
exif_read_data - 画像ファイルから「EXIF」ヘッダを読み込む




「exif_read_data」関数は、
画像ファイルの「EXIF」ヘッダ情報を読み込むことができる関数。
画像の

・ファイル名
・更新日時
・ファイルサイズ
・寸法
・カラー情報
・カメラ情報
・レンズ情報

などを取得できる。

ファイルサイズなどで、
プログラムの条件分岐ができるので、
画像関連のプログラムでは、良く使う便利なヘッダ情報。


「exif_read_data」関数の書式

$ImageData_Exif = exif_read_data("./ディレクトリ名/ファイル名.jpg");
var_dump($ImageData_Exif)."<br>";


$ImageData_Exif = exif_read_data($変数名);
var_dump($ImageData_Exif)."<br>";


Back



「exif_read_data」関数で取得できる「EXIF」ヘッダ情報


良く使われる「EXIF」ヘッダ情報は、

["FileName"]=> string(18) "ファイル名.jpg"
["FileDateTime"]=> int(1601767100)
["FileSize"]=> int(395401)
["MimeType"]=> string(10) "image/jpeg"
["COMPUTED"]=> array(9) {
    ["html"]=> string(24) "width="800" height="533""
    ["Height"]=> int(533)
    ["Width"]=> int(800)
    ["IsColor"]=> int(1)
    ["ByteOrderMotorola"]=> int(0)
    ["CCDWidth"]=> string(3) "1mm"
    ["ApertureFNumber"]=> string(5) "f/5.0"
    ["Thumbnail.FileType"]=> int(2)
    ["Thumbnail.MimeType"]=> string(10) "image/jpeg"
    }
["UndefinedTag:0xA434"]=> string(17) "レンズスペック(24-75mm F2.8)"

あたりが良く使われる。
ファイルサイズや寸法、ファイルの種類などを読み取って、
ファイルを振り分けたり、画像を縮小加工したりと、
データ内容を読み取って、色々と分岐条件が作れたりするので、
便利なヘッダ情報。


「EXIF」ヘッダ全情報

array(62) {
["FileName"]=> string(18) "ファイル名.jpg"
["FileDateTime"]=> int(1601767100)
["FileSize"]=> int(395401)
["FileType"]=> int(2)
["MimeType"]=> string(10) "image/jpeg"
["SectionsFound"]=> string(30) "ANY_TAG, IFD0, THUMBNAIL, EXIF"
["COMPUTED"]=> array(9) {
    ["html"]=> string(24) "width="800" height="533""
    ["Height"]=> int(533)
    ["Width"]=> int(800)
    ["IsColor"]=> int(1)
    ["ByteOrderMotorola"]=> int(0)
    ["CCDWidth"]=> string(3) "1mm"
    ["ApertureFNumber"]=> string(5) "f/5.0"
    ["Thumbnail.FileType"]=> int(2)
    ["Thumbnail.MimeType"]=> string(10) "image/jpeg"
    }
["ImageWidth"]=> int(5472)
["ImageLength"]=> int(3648)
["BitsPerSample"]=> array(3) {
    [0]=> int(8)
    [1]=> int(8)
    [2]=> int(8)
    }
["PhotometricInterpretation"]=> int(2)
["Make"]=> string(4) "カメラメーカー名"
["Model"]=> string(11) "カメラ機種"
["Orientation"]=> int(1)
["SamplesPerPixel"]=> int(3)
["XResolution"]=> string(13) "4000000/10000"
["YResolution"]=> string(13) "4000000/10000"
["ResolutionUnit"]=> int(2)
["Software"]=> string(48) "編集ソフト名 (OS名)"
["DateTime"]=> string(19) "2021:01:05 18:08:22"
["Exif_IFD_Pointer"]=> int(272)
["THUMBNAIL"]=> array(6) {
    ["Compression"]=> int(6)
    ["XResolution"]=> string(4) "72/1"
    ["YResolution"]=> string(4) "72/1"
    ["ResolutionUnit"]=> int(2)
    ["JPEGInterchangeFormat"]=> int(1054)
    ["JPEGInterchangeFormatLength"]=> int(5895)
    }
["ExposureTime"]=> string(4) "1/60"
["FNumber"]=> string(3) "5/1"
["ExposureProgram"]=> int(3)
["ISOSpeedRatings"]=> int(1250)
["UndefinedTag:0x8830"]=> int(2)
["UndefinedTag:0x8832"]=> int(1250)
["ExifVersion"]=> string(4) "0231"
["DateTimeOriginal"]=> string(19) "2020:12:25 13:30:32"
["DateTimeDigitized"]=> string(19) "2020:12:25 13:30:32"
["UndefinedTag:0x9010"]=> string(6) "+09:00"
["UndefinedTag:0x9011"]=> string(6) "+09:00"
["UndefinedTag:0x9012"]=> string(6) "+09:00"
["ShutterSpeedValue"]=> string(15) "5906891/1000000"
["ApertureValue"]=> string(15) "4643856/1000000"
["BrightnessValue"]=> string(9) "9064/2560"
["ExposureBiasValue"]=> string(4) "7/10"
["MaxApertureValue"]=> string(8) "1024/256"
["MeteringMode"]=> int(5)
["LightSource"]=> int(0)
["Flash"]=> int(16)
["FocalLength"]=> string(8) "1788/100"
["ColorSpace"]=> int(1)
["ExifImageWidth"]=> int(800)
["ExifImageLength"]=> int(533)
["FocalPlaneXResolution"]=> string(15) "135838255/32768"
["FocalPlaneYResolution"]=> string(15) "135838255/32768"
["FocalPlaneResolutionUnit"]=> int(3)
["FileSource"]=> string(1) ""
["SceneType"]=> string(1) ""
["CustomRendered"]=> int(0)
["ExposureMode"]=> int(0)
["WhiteBalance"]=> int(0)
["DigitalZoomRatio"]=> string(5) "16/16"
["FocalLengthIn35mmFilm"]=> int(48)
["SceneCaptureType"]=> int(0)
["Contrast"]=> int(0)
["Saturation"]=> int(0)
["Sharpness"]=> int(0)
["UndefinedTag:0xA432"]=> array(4) {
    [0]=> string(7) "900/100"
    [1]=> string(8) "7200/100"
    [2]=> string(5) "28/10"
    [3]=> string(5) "45/10"
    }
["UndefinedTag:0xA434"]=> string(17) "レンズスペック(24-75mm F2.8)"
}



Back