マジッククオートを無効にする独自のPHP関数
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
PHPには、マジッククオートと呼ばれる無駄な機能があります。
PHPのmagic_quotes_gpcがオンになっていると、マジッククオートが有効になってしまい、フォームから渡されたデータに対し、内部的にaddslashes()関数が実行されます。
スポンサーリンク
この結果、たとえば単一引用符「’」は、「\’」と、バックスラッシュがついて自動的にエスケープされます。
サブミット済みのフォーム入力データを、HTML上に出力した場合などは、余計な「\」(バックスラッシュ)がついて、とても不便です。
マジッククオートがオンの場合、stripslashes()関数を使いアンエスケープした後、htmlentities()やhtmlspecialchars()でHTMLエスケープすると、HTML上への出力が上手く行きます。
以下は、頻繁に使うstripslashes()関数のコードを、簡単にする独自の関数定義です。
/********* w_gmss()関数 ********** マジッククオートが有効な場合は、 stripslashesでアンエスケープ。 @パラメータは以下の1つ $str 文字列 **********************************/ function w_gmss($str) { if (get_magic_quotes_gpc()) { if (is_array($str)) { return array_map("w_gmss", $str); } else { return stripslashes($str); } } else { return $str; } }
フォームから渡されたデータを、HTML上に出力する場合は、以前定義したHTMLエスケープを簡単にするPHP関数とともに使って・・・
$escape_str = w_he(w_gmss($str));
とすれば、マジッククオートをオフにした後、HTMLエスケープすることができます。
スポンサーリンク
>> 次の記事 : URLを簡単に組み立てるPHP関数
<< 前の記事 : HTMLエスケープを簡単にする独自のPHP関数
- - 関連記事 -
- strpos() や strcmp() など間違えやすいif文での判定
- htmlentities() と htmlspecialchars() の違い
- PHPの内部エンコードと出力文字コード、スクリプト文字コード
- PHPのデバッグ・xdebugをxamppで有効にする
- CakePHPの日本語対応、国際化
- コマンドラインでPHPが起動できない
- 直接ファイルが実行されたときだけ起動するスクリプト
- ディレクトリを探索してリンク一覧表示
- PHPとRubyのコードの書き方を比較
- コメントアウトの使い分けと、/*** ~ ***/とか// — を単語登録
- PHPでvar_dump()を使ったお手軽デバッグコード
- プログラミング練習問題をPHPで解いてみた
- CakePHPはMVCかつフルスタックのフレームワーク
- PHP5のクラス定義とオブジェクトのおさらい
- フレームワークCakePHPにチャレンジ
- sort・asort・ksort 配列を並べ替える関数
- foreach構文
- PHPの配列
- strcmp関数
- strcasecmp関数
スポンサーリンク