PHP(ぴーえいちぴー) †
リンク集 †
メモ †
- serialize 値の保存可能な表現を生成する
serialize() は、valueの 保存可能なバイトストリーム表現を含む文字列を返します。 型や構造を失わずにPHPの値を保存または渡す際に有用です。
- PHP4と5の共存
- Running PHP 4 and PHP 5 Concurrently
配列全体をエスケープ(MySQL) †
エスケープ済みの配列を返す場合
$sql_values = array_map(create_function( '$a', 'return mysql_real_escape_string($a);'),$values);
入力した配列の各要素をエスケープ
$return = array_walk(create_function( $values, '&$v,$k', '$v = mysql_real_escape_string($v);') );
自作ツール †
- URLエンコード・デコード
- %とか含まれるアレを元に戻したり
- パスワードジェネレーター
- パスワードを考えるのがめんどい時に役立ちます
- PHPマニュアル(chm)の文字化けを解消する
- これいいね
- GDライブラリにGIFを組み込む
- 公式で対応しました
PHPでMVC †
- Model
- VO(Value Object)
VOは、データそのものを表現するためのオブジェクトです。 例えばユーザ情報を保持するためのクラスの定義は次のようになります。 <?php class User { var $id; var $name; var $mail; var $password; var $birthday; // 各属性の set/get メソッド。省略 } ?>
- DAO(Data Access Object)
- VOの集約用クラス
- ロジッククラス(Controllerから直接呼び出されるメソッドを持つ)
- result ロジッククラスの結果を示す
- その他ユーティリティー系クラス
- VO(Value Object)
- View
Viewに関係が無いロジックは組み込まないようにしましょう。
TIPS †
- PHPの文字化けについて
- CUIでphpinfo
$echo '<?php phpinfo(); ?>' | php -Cq
- クラスの定義は使用前に行う。
- 下記はエラーになる。
$test = new test(); class test { function test() { } }
- こうする
class test { function test() { } } $test = new test();
- 下記はエラーになる。
- booleanへの変換
- booleanに明示的に変換を行うには、キャスト (bool) または (boolean) を 使用します。
しかし、演算子、関数、制御構造がboolean 型の引数を必要とする場合には、
値は自動的に変換されるため、多くの 場合、キャストは不要です。型の相互変換 も参照下さい。
- booleanに変換する場合、次の値は FALSEとみなされます。
- booleanの FALSE
- integerの 0 (ゼ ロ)
- floatの 0.0 (ゼロ)
- 空の文字列、 および文字列の "0"
- ゼロを要素とする 配列
- ゼロを要素とする オブジェ クト
- 特別な値 NULL (値がセット されていない変数を含む)
- その他の値は全てTRUEとみなされます。 (全ての resourceを含みます。)
- booleanに明示的に変換を行うには、キャスト (bool) または (boolean) を 使用します。
- PATH
- 実行されたphpファイルがCurrentディレクトリになるので相対PATHはそっから考える
- PHPで可逆暗号の話。
function f_encrypt($string){ $key = CRYPTKEY; if($key===False){ return $string; } $command = "/bin/echo \"${string}\" | ". "/usr/bin/openssl des-ede3 -e -base64 -k '${key}'"; $crypted = exec($command); return $crypted; } function f_decrypt($string){ $key = CRYPTKEY; if($key===False){ return $string; } $command = "/bin/echo \"${string}\" | ". "/usr/bin/openssl des-ede3 -d -base64 -k '${key}'"; $plain = exec($command); return $plain; }
気になる関数 †
- 関数に関連する関数
get_class func_get_args func_num_args func_get_arg get_class get_class_methods get_class_vars
- POST GET関連
urlencode() rawurlencode()
- 配列関連(分割)
join() explode() split preg_split
- 文字コード関連
mb_convert_encoding() mb_convert_kana()
- 日付関連
date() mktime() time()