組み込み関数についてまとめる
ファイル操作(取得・保存・ベースネーム・ディレクトリパスを返す・絶対パスを返す)
file_get_contents()
ファイルの内容をすべて取得する。また、URLを指定してウェブサイトのソースを取得することもできる。
file_put_contents()
文字列をファイルとして保存する。
basename()
ファイルやディレクトリのパスから最後にある名前の部分を返す。
dirname()
ファイルパスからディレクトリパスを取り出して返す。
dirname(__FILE__) とすることで実行中のPHPファイルのあるディレクトリを得ることもできる。
これは「__DIR__」と同義。
realpath() パスの「/./」や「/../」「/」などの参照を全て解決して正規化した絶対パスを返す。
ファイル操作(ファイルが存在しているか?・F、URLオープン・ファイルロック・1行取得・スプリットして取得)
file_exists()
指定されたファイルパスにファイルが存在するかを調べて返す。
fopen()
ファイルやURLをオープンしてストリームに結びつける。
flock()
fopen()によってオープンされたファイルのロック・開放を行う。
fgets()
ファイルポインタから一行取得する。
fgetcsv()
ファイルポインタから一行取得し、指定された文字をもとに区切られた配列を返す。
ファイル関連(fopen() によってオープンされたファイルを書き込み・クローズ・ファイルポインタの位置を先頭に戻す。内容を指定した長さに丸める)
fwrite()
fopen() によってオープンされたファイルストリームに書き込む。
fclose()
fopen() によってオープンされたファイルポインタをクローズする。
rewind()
ファイルポインタの位置を先頭に戻す。
ftruncate()
fopen() によってオープンされたファイルの内容を指定した長さに丸める。
サイズに 0 を指定することでファイルを空にできる。
ファイル関連(ポインタが終端にいるかどうか?・HTTP POSTでアップロードされたかどうか・←真の時指定されたファイル名に移動する)
feof()
ファイルポインタが終端に達しているかを調べて返す。
is_uploaded_file()
ファイルが HTTP POST によりアップロードされたファイルであるかを調べて返す。
不正操作を防ぐために用いられる。
move_uploaded_file()
ファイルが HTTP POST によりアップロードされたファイルである場合、指定されたファイル名に移動する。
ファイル関連(mkdir・ファイル削除・リネームや移動・コピー・ファイルかどうか?・ディレクトリかどうか?・chmod・chown)Linuxと同じコマンドあり
mkdir()
ディレクトリを作る。パーミッションを設定したり入れ子構造のディレクトリを作ることもできる。
unlink()
ファイルを削除する。
rmdir()
ディレクトリを削除する。
rename()
ファイル名を変える。ファイルを移動する。
copy()
ファイルをコピーする。
is_file()
指定されたパスがファイルを指しているかを調べて返す。
is_dir()
指定されたパスがディレクトリを指しているかを調べて返す。
chmod()
ファイルのパーミッションを変更する。
chown()
ファイルのオーナーを変更する。
ネットワーク(特殊文字をエスケープ・生HTTPヘッダーを出力・改行タグ変換・HTML タグを取り除く・連想配列からURLエンコードされたクエリ文字列を生成)
htmlspecialchars()
HTMLの特殊文字として扱われる文字をHTMLエンティティに変換する。
(エスケープ)「<」などは「<」に変換され、HTMLタグとして扱われることを防げるほか、
不正なスクリプトタグを仕込まれて実行されるリスクを回避できる。
大抵は「ENT_QUOTES」フラグを用いてシングルクォートも変換対象にする。
header()
生の HTTP ヘッダーを出力する。
「HTTP/1.0 404 Not Found」などのステータスコードを出力したり、
「Content-Type: image/jpeg」などのファイルヘッダーを出力することができる。
「Location: http://www.example.com」とすることで指定された
URL にリダイレクトする際にも用いられる。
nl2br()
文字列の改行箇所を「<br>」などの改行タグに変換する。
strip_tags()
文字列から HTML タグを取り除く。 許可するタグを指定することもできる。
http_build_query()
連想配列からURLエンコードされたクエリ文字列を生成する。
つまり配列を GET パラメータとして使える「foo=123&bar=hello」のような文字列に変換できる。
(URLとして利用できる文字列に変換・GET、POSTなどのパラメータをフィルタリングしたうえで受け取る・指定したフィルターでデータをフィルタリングする。・セッションを開始する。セッションハイジャック攻撃を防ぐ・セッション情報を全て破棄する・クッキーに値を保存する。)
rawurlencode(), rawurldecode()
rawurlencode() は非アルファベット文字をパーセント記号と16進数を用いて
URL として利用できる文字列に変換する。
rawurldecode() によって元の文字列を復元できる。
filter_input()
GET、POST などのパラメータをフィルタリングしたうえで受け取る。
$_GET、$_POST を直接操作するかわりにこの関数を通す。
filter_var()
指定したフィルターでデータをフィルタリングする。
データがメールアドレスとして正しい書式であるかを調べたり、
特殊文字を取り除いたりするなど、様々なフィルタが利用できる。
session_start()
セッションを開始する。セッションIDを渡すことで現在のセッションを復帰することもできる。
session_regenerate_id()
セッションの情報を位置したままセッションIDを新しく生成した値に置き換える。
セッションハイジャック攻撃を防ぐ手段として用いられる。
session_destroy()
セッション情報を全て破棄する。再開するには再度 session_start() する必要がある。
setcookie() クッキーに値を保存する。有効期限を設定することもできる。
ハッシュ関連(ハッシュ値を生成する・MD5を使いハッシュ値を生成する・擬似乱数ハッシュ値を生成する・MIMEbase64でエンコード・デコードする・JSON形式で返したり・JSON→連想配列にする・マルチバイト文字に基づいたエンコード変換をしてメール送信)
hash()
選択したアルゴリズムに基づいてハッシュ値を生成する。
md5()
MD5 アルゴリズムを用いてハッシュ値を生成する。
random_bytes()
暗号論的に安全な疑似乱数生成器(CSPRNG)を使ったハッシュ値を作成。
base64_encode(), base64_decode()
文字列を MIME base64 方式でエンコード、デコードする。
json_encode(), json_decode()
連想配列を JSON 形式にして返したり、JSON 形式の文字列を連想配列に変換する。
json_decode() を行う際第二引数に true を指定すると
stdClass Object のかわりに連想配列に変換される。
mb_send_mail()
mb_language() により設定された言語に基づいてエンコード変換を行ってメールを送信する。
その他(ファイル読み込み・1つのみ読み込み・変数の内容表示・変数の詳細表示・
カウント・定数定義・)
require();
require_once();
include();
include_once();
別ファイルの読み込み。ファイル読み込めない場合にrequireはエラー、
includeは警告。_onceがついていると同名ファイルは1つのみ読込になる。
読み込む際は __DIR__ を使い絶対パスで指定する。
print_r()
変数の内容をわかりやすく表示する。 文字列に限らず連想配列も表示できるほか、
第二引数に true を指定することで結果を文字列として返すこともできる。
var_dump()
変数の内容を詳細にダンプする。 含まれるオブジェクトの型、内容を細かく知ることができる。
print_r() よりも詳細な内容を知りたい時に使う。
count()
配列やオブジェクトの要素数を数えて返す。
define()
定数を定義する。 大文字のアルファベットで名前をつける習慣がある。
その他(変数宣言されているか?Keyが存在するか?・空(0・Null、false)かどうか?・変数破棄・タイムスタンプ関連)
isset()
変数が宣言されているか、配列にキーが存在するかを返す。
内容が NULL であっても TRUE を返す。
配列にキーが存在するかを調べる関数として array_key_exists() があるが、
そちらは ["key" => NULL] の場合 FALSE を返す。
empty()
変数の内容が空であるかを返す。空文字、「0」、空配列、NULL、FALSE などがからであると判断される。
unset() 指定した変数を破棄する。連想配列から一部のキーを取り除く際にも使える。
time(), microtime() 現在のUNIXタイムスタンプを得る。
1970年1月1日 00:00:00 GMT からの通算秒。
マイクロ秒まで知りたい場合は microtime() を使う。
mktime()
時、分、秒、月、日、年 を指定することでその日時のUNIXタイムスタンプを得る。
date()
UNIXタイムスタンプを日時を表す文字列としてフォーマットして出力する。
日時の取り扱いに関しては date() よりも DateTime クラスを利用するケースが増えている。
Carbonライブラリを使う事も多い。