PHPの勘所
- スクリプトのご利用は自由です。各自の責任で行ってください。
- 当サイト、他サイトへ直接的、間接的に被害を与えるご利用は禁止です。
- 配付物を利用したことにより、いかなる損害やトラブルが起こっても一切責任は負いません。
- 当サイトはリンクフリーです。(リンクは http://www.yippee.ne.jp/ へお願いします。)
- 1. エラー表示(エラーログ取得)を変える。 error_reporting
- 2. 変数の情報(内容)を見やすく表示する。 print_r
- 3. 定義済み変数を調べる。
- 4. 正規表現によるマッチング(URLからホスト名を取得する) preg_match
- 5. 文字列を検索する。 strpos
- 6. エスケープした復帰、改行文字を元に戻す。 preg_replace
- 7. リダイレクトして強制的にSSL通信に変える。 header
- 1. エラー表示(エラーログ取得)を変える。 error_reporting [このページのトップへ]
- デバッグで重宝です。
- Webサーバの設定よって、エラーログの取得が違います。
- サーバのPHP設定ファイル php.ini の display_errors、 display_startup_errorsが Offの場合エラー表示は行なわれません。error_reporting の設定によりWebサーバにエラーログが取得されますので、Webサーバのエラーログを参照するとエラー内容が確認できます。
- Webエラーログが満杯になる場合もあるで要注意!
- 2. 変数の情報(内容)を見やすく表示する。 print_r [このページのトップへ]
- デバッグで重宝です。
- 配列の内容をチェックするのに便利です。
- var_dump 関数もあります。
- 3. 定義済み変数を調べる。 [このページのトップへ]
- デバッグで重宝です。
- 4. 正規表現によるマッチング(URLからホスト名を取得する) preg_match [このページのトップへ]
- 正規表現を理解する手がかりとして。
- 5. 文字列を検索する。 strpos [このページのトップへ]
- 正規表現に寄らなない検索なら、こちらが早いと言われています。
- 6. エスケープした復帰、改行文字を元に戻す。 preg_replace [このページのトップへ]
- mysql_real_escape_string() 関数はコールする前に、MySQL と接続 mysql_connect() が、確立されていなければなりません。
-
// ######## // mysql_real_escape_string() 関数で // SQL文中で用いる文字列の特殊文字をエスケープした // 復帰、改行文字をpreg_replace() 関数で元に戻す。 // ######## // 元の文字列 $str = "復帰、改行文字を\r\nエスケープします。"; // エスケープする $esstr = mysql_real_escape_string($str); // 元に戻す。(誤り) $restr_NG = preg_replace("/\\r\\n/", "\r\n", $esstr); // 元に戻す。(正解) $restr_OK = preg_replace("/\\\\r\\\\n/", "\r\n", $esstr); // パターンの\\\\ に注意、\\ では正しく動作しません。 echo <<< EODT ■元の文字列 $str ■エスケープ後の文字列 $esstr ■元に戻した文字列(誤り:元に戻っていない。) $restr_NG ■元に戻した文字列(正解) $restr_OK
EODT; /* 上の場合の表示例 ■元の文字列 復帰、改行文字を エスケープします。 ■エスケープ後の文字列 復帰、改行文字を\r\nエスケープします。 ■元に戻した文字列(誤り:元に戻っていない。) 復帰、改行文字を\r\nエスケープします。 ■元に戻した文字列(正解) 復帰、改行文字を エスケープします。 */
- 7. リダイレクトして強制的にSSL通信に変える。 header [このページのトップへ]
- header() 関数をコールする前に出力があるとエラーとなります。
-
// ######## // SSL(HTTPS)通信よってアクセスされているか判定し、そうでない場合は // リダイレクトして強制的にSSL通信に変える。 // 注意:header() 関数をコールする前に出力があるとエラーとなります。 // ######## if (!$_SERVER['HTTPS']) { $jpurl = "Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; header("$jpurl"); // httpsへリダイレクト exit; } else { echo "■ https 接続中 ! ■
\n"; }