ホームページ >バックエンド開発 >PHPチュートリアル >phpのstripslashesとaddslashes_PHPチュートリアルの違い
mysql にデータを書き込む場合、たとえば:
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 がオンかオフかに関係なく、データを追加するときは addslashes() を使用します。オンの場合は、stripslashes() を使用する必要があり、オフの場合は、stripslashes() を使用できません。
オンかオフかを判断するにはどうすればよいですか? get_magic_quotes_gpc() を使用します。
最後の例:
コードをコピー