【XAMPP】
apacheやMySQLなど一括で環境構築できるので便利
※Skype起動中はapacheのサービスが起動できない。なにかが競合してる?
【エスケープ文字の処理について】
文字列をスラッシュでクォートする
string addslashes ( string $str )
データベースへの問い合わせなどに際してクォートされるべき文字の前に バックスラッシュを挿入した文字列を返します。 クォートされるべき文字とは、シングルクォート('), ダブルクォート("),バックスラッシュ (\) ,NUL (NULL バイト) です。
addslashes() の使用例は、 データベースにデータを登録するときです。例えば、 O'reilly という名前をデータベースに挿入するには、 エスケープする必要があります。ほとんどのデータベースでは O\'reilly という具合に \ を使用します。これはデータベースにデータを格納する場合のみ必要です。 追加される \ は挿入されません。 PHP のディレクティブ magic_quotes_sybase を \ にすると、' はもうひとつの ' でエスケープされます。
PHP ディレクティブ magic_quotes_gpc はデフォルトでは on で、 全ての GET、POST、COOKIE データについて基本的に addslashes() を実行します。 magic_quotes_gpc によってすでにエスケープされた文字列に対して addslashes() を実行しないでください。 さもないと、重複してエスケープされてしまいます。 関数 get_magic_quotes_gpc() はこれを確認するのに役立つかも知れません。
クォートされた文字列のクォート部分を取り除く
string stripslashes ( string $str )
注意: magic_quotes_sybase が on の場合はバックスラッシュは取り除かれず、そのかわりに 2 つの アポストロフィが 1 つに置き換えられます。
stripslashes() の使用例は、PHP ディレクティブ magic_quotes_gpc が on (デフォルトでオン) かつ、 データをエスケープして (データベースのような) ある場所に挿入していない場合です。 例えば、単純に HTML フォームからのデータを直接出力するような場合です。
上記を使わずとも、GETやPOSTで送信された値は、php.iniの設定で自動でエスケープしてくれる。
GPC(Get/Post/Cookie)処理に関するmagic_quotesの設定を行います。 magic_quotesがonの場合、'(シングルクオート)、"(ダブルク オート)、\(バックスラッシュ) 、NULLには全て自動的にバックスラッ シュでエスケープ処理が行われます。
なのですが!!
magic_quotes_gpcディレクティブ = ON
ほとんど至るところで、自動的にaddslashesしているようなもの・・・ってことは?
使っちゃダメって事ですね
結局、Shift_JISは使うなと・・・
日本語(マルチバイト文字?)って、いたるところで、問題になりますね・・・
日本人に生まれて、よくなかったーーーーーーー!!
【相対パスについて】
includeとかrequireする時に、相対パスで設定したっくて、
www
index.php
folder1
aaa.php
folder2
bbb.php
って構成の時に
aaa.phpでbbb.phpをrequireしたいとするじゃないですか、
require("../folder2/bbb.php")
って、したらよさそうですが・・・
エラーになっちゃいます><
「実行したファイルのあるディレクトリが常に実行時のカレントディレクトリになる」っていう規則があるそうで・・・
参照:
http://www.hoge256.net/2007/08/61.html
解決方は、参照しているファイルのディレクトリを基にパスを取得することで回避することができ、
具体的には dirname(__FILE__) を使うらしい。
require(dirname(__FILE__) . "/../folder2/bbb.php");
って感じ?
【セッションにオブジェクトをぶち込む!!】
serializeすれば、いいそうだ。
取りだすときは、
unserializeを使うそうだ・・・
$_SESSION["obj"] = serialize($object);
$object = unserialize($_SESSION["obj")];
最終更新:2010年01月19日 08:52