関数
文字型関数
boolean ctype_alpha(string text)
#英字だけならTRUE, 英字以外が含まれていればFALSE
boolean ctype_alnum(string text)
#英数字だけならTRUE
boolean ctype_digit(string text)
#数字だけならTRUE
※ただし、小数点が入るとFALSE
boolean ctype_upper(string text) / boolean ctype_lower(string text)
#大文字 / 小文字だけならTRUE
文字列関数
int strlen(string string)
#文字数をバイト数で取得
int mb_strlen(string str [, string encoding])
#文字数を文字の数で取得
substr('abcde', 1, 3) --> bcd substr('abcde', 4) --> de
#文字の一部を取り出し
#マイナスを入れると、最後に向かって何文字目という意味になる
substr('abcde', -3) --> cde
mb_substr
#substrはバイト数だが、こちらは、2バイト文字を1文字としてカウント
str_replace $str = '港区六本木'; $str = str_replace('港区', '東京都港区', $str);
#→$strが東京都港区六本木になる
string nl2br(string string)
文字列中に\nがあると、<br />\nに変換する
※ただし、文字列は、" "で囲む必要がある。
' 'だと\nがただの文字になってしまう
mb_convert_encoding $str = "元になっている文字列"; $str = mb_convert_encoding($str, "JIS", "SJIS");
#SJISをJISにエンコード
#変換元は , で区切って複数指定可能
#「auto」を指定した場合には「ASCII,JIS,UTF-8,EUC-JP,SJIS」と同じになる
$name = mb_encode_mimeheader($str);
#文字列をMIMEヘッダ内で使われる文字列にエンコード
#デフォルトはISO-2022-JP(Base64)
#第2引数で変更も可能だが、特に必要ないと思われる。
sprintf
#http://www.phpbook.jp/func/string/index7.htmlを見よ
変数操作関数
string gettype( ~ );
#~の型を文字列(たとえば、boolean, integerなど)で返す。
boolean is_numeric( ~ )
#~が数値ならばTRUE。
#ただし、数値として有効な文字列もTRUEになる(数値文字列)
boolean is_bool(mixed var) boolean is_float(mixed var) boolean is_int(mixed var) boolean is_string(mixed var) boolean is_null(mixed var)
#名は体を表す
boolean isset(mixed var1, mixed var2, ...)
#変数が存在すればTRUE
#存在していても、NULLだとFALSEになってしまう
#複数変数を , で指定した場合はすべて存在してはじめてTRUE
#連想配列にキーがあるかをチェックすることが可能
$var = array('りんご'=>'赤','メロン'=>'緑');
print(isset($var['りんご'])); // TRUE
print(isset($var['スイカ'])); // FALSE
配列関数
int extract(array var_array, [変換フラグ], [プレフィクス]);
#連想配列が、'キー' => 値となっていたとき、こいつにextractをすると、
#$キー = 値 という形でキーが変数名になった形で代入される。
#2番目の引数は省略もできるが、変数がすでに存在した場合などの
#挙動を指定することができる。
#省略すると、EXTR_OVERWRITEになる(値を上書きする)
#3番目の引数はプレフィクスで、通常はキーが変数名になるが、
#キーの前に任意の文字列をくっつけて、変数名にすることができる
#なお、どのタイミングでプレフィクスを付けるかも2番目の引数で指定する
bool in_array(探すもの, 対象となる配列, 型チェックフラグ)
#配列の中に調べたい値が含まれているかをチェックする
#型チェックフラグをTRUEにしておくと、型が同じかまでチェックする
#デフォルトでは、FALSE
mixed array_search(探すもの, 対象となる配列, 型チェックフラグ )
#配列に含まれているかをチェックして、その「キーを返す」
array array_unique(array array)
#配列中に重複した値が入っている場合に、取り除いた配列を返す
#内部的には、Stringにして比較している
#配列の値をStringでソートしたあと重複削除するので、
#残る配列は必ずしも配列の順番の若いほうではない
#連想配列などでキーが異なっていても消してしまう
int count(mixed var , 再帰チェックフラグ)
#配列に含まれる項目数を取得する
#配列に配列が含まれている場合、再帰チェックフラグにCOUNT_RECURSIVEを
#入れておくと、その配列の項目数も合算する
ファイル関連
$fp = fopen('sample.txt', 'r'); //戻り値はresource型
$flag = fclose($fp);
if ($flag){
print('無事クローズしました');
}else{
print('クローズに失敗しました');
}
#オープンとクローズ
bool flock(resource handle, ロック方法をフラグで指定)
#排他制御のためのロックを行う
#成功すればTRUE、失敗すればFALSEを返す
string fgets ( resource handle [,最大読み込みバイト数] )
#1行読み込み。
#デフォルトだと、読み込みサイズが1024バイトなので注意
bool feof(resource handle)
#ファイルポインタがEOFならTRUE
#fgetsと併せて、以下のように使うことが多い。
while (!feof($fp)) {
$buffer = fgets($fp);
int fwrite(resource handle, string string [, int length])
#fgetsの逆。戻り値は書き込んだバイト数で、失敗の場合はFALSE
時間
日付・時間
date('Y m d') time()
#時間は、1970念1月1日~の通算秒
#dateの中身は、('Y年m月')のように通常の文字列と合わせることが可能
#Yやmやdをエスケープする場合は、\を付ければOK
$today = getdate();
#$todayに連想配列の形で日付と時刻が代入される。
#→print($today['month']);のようにして取り出せる
int mktime([int hour [, int minute [, int second [, int month [, int day [, int year]]]]]])
#該当する日付+時間のタイムスタンプを表す数字を作る。
#引数を省略した場合は、現在時刻の値が使われる。
$str = strftime("%Y / %m / %d %H:%M:%S");
#指定したフォーマットで時刻を作る
乱数
rand( [最小, 最大] ) mt_rand( [最小, 最大] )
#同じものだが、mt_randのほうが高速に改善されている。
#最小と最大を省略すると、0~RAND_MAX(32768)になる
#最大値はRAND_MAX以上を指定することも可能
終了
exit("表示文字"); die("表示文字");
#どちらも同じ(エイリアス)
正規表現
preg_match関数をもちいる。
パターンには、'/ パターン /'という指定の仕方をし、
パターンが含まれていれば、ヒットとなる。
戻り値は、ヒットがあれば1、なければ0、失敗すればFALSE
$pattern = '/He/';
$str = 'Hello';
if (preg_match($pattern, $str)){