PHP/phpbook/PHP関数

Last-modified: 2010-10-22 (金) 12:28:02

関数

文字型関数

 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)){