ホームページ >バックエンド開発 >PHPチュートリアル >phpのstripslashesとaddslashes_PHPチュートリアルの違いの概要
この記事では主にphpのstripslashesとaddslashesの違いを紹介し、必要な友人に共有したいと思います。
たとえば、データを mysql に書き込むときは次のようになります。 コードは以下のように表示されます: mysql_query("更新テーブルセット `title`='kuhanzhu のブログ'"); それはうまくいきません。 ASP と同様、データベースは一重引用符にアレルギーがあります。そして、addslashes は現時点で最も価値があり、asp の replace("‘",""","kuhanzhu's blog") と同じ機能を持っています。 セキュリティのため、PHP では、処理を行わずに一重引用符をデータベースに直接挿入できる Magic_quotes_gpc = On 関数が導入されています。その後、Off の場合は、一重引用符を盲目的に信頼するのではなく、一重引用符の問題を考慮する必要があります。 magic_quotes_gpc = On にすると、addslashes() で処理したデータが ' の形でデータベースに保存されます。 このとき直接出力すると、思ったより内容が多いので、stripslashes() が表示されます。削除できます (str_replace("", "",$Str) とは異なります)。 magic_quotes_gpc = Off の場合、addslashes() で処理されたデータは ' の形式でデータベースに保存されます。これで直接出力される場合は、addslashes() がデータを挿入する役割を果たします。時間、データは正常です。もう、stripslashes() を使用する必要はありません。 addslashes() とtripslashes() はまったく逆です。 ダイレクト メモリ:addslashes() は 1 つを追加し、stripslashes() は 1 つを削除します。 それで、いつ使用するのですか? シンプルにこう言います。 magic_quotes_gpc = On の場合、システムは一重引用符などの問題を自動的に処理します。addslashes() とtripslashes() のどちらを使用するかは関係ありません。ただし、データを追加するときに addslashes() を使用する場合は、stripslashes() を使用する必要があります。データを表示しています。 magic_quotes_gpc = Off の場合、システムは一重引用符などの問題を処理しないため、データを挿入する場合は addslashes() を使用する必要があり、データを表示する場合はtripslashes() を使用する必要はありません。 分析ができたので、プログラムを実行するときに何をすべきでしょうか?上記の 2 つの状況によれば、次のことが得られます。 magic_quotes_gpc が On か Off に関係なく、データを追加するときは addslashes() を使用します。On の場合は、stripslashes() を使用する必要があります。Off の場合、stripslashes() は使用できません。 オンかオフかを判断するにはどうすればよいですか? get_magic_quotes_gpc() を使用します。 最後の例: コードは以下のように表示されます: コード // データを送信するか、変数を準備します。 $Content=addslashes("一重引用符や変数の有無に関係なく、これはデータです"); //データベースにデータを挿入します。コードは省略されています //データの表示を開始 $Content="データベースから読み取られたデータ"; if(get_magic_quotes_gpc()){ $Content=ストリップスラッシュ($Content); } $Content をエコーします。 )