ホームページ > バックエンド開発 > PHPチュートリアル > phpのstripslashes()関数とaddslashes()関数の違いの詳細な例

phpのstripslashes()関数とaddslashes()関数の違いの詳細な例

怪我咯
リリース: 2023-03-07 20:08:01
オリジナル
1718 人が閲覧しました

以前、PHP の addslashes() 関数とtripslashes() 関数の関数といくつかの使用法を紹介しましたが、この記事では、PHP tripslashes() 関数とaddslashes() 関数の違いを紹介します。

関数名での違い: ストリップ (strip)、スラッシュ (slash)、スラッシュ (スラッシュ) の追加 (add)、つまり、1 つはスラッシュを取り除くことであり、もう 1 つはスラッシュを追加することです。スラッシュの追加は逆です。

使用シナリオ: 実際、これら 2 つの関数は、データベース操作など、特殊文字を変換する必要がある一部のデータ処理で主に使用されます。データベースに書き込む際には、一重引用符などの特殊文字をエスケープして保存する必要があります。読み取るときは、データベース内のこれらのエスケープされた特殊文字を逆エスケープする必要があります。


mysql にデータを書き込むと、例えば:

mysql_query("update table set `title`='kuhanzhu's blog'");
ログイン後にコピー

エラーが発生します。 ASP と同様、データベースは一重引用符にアレルギーがあります。そして、addslashes は現時点で最も価値があり、asp の replace("'",""","kuhanzhu's blog") と同じ機能を持っています。

セキュリティのために、PHP は magic_quotes_gpc = On 関数を導入しました。処理を行わずに一重引用符をデータベースに直接挿入できます。その後、動作環境を盲目的に信頼するのではなく、一重引用符の問題を考慮する必要があります。

magic_quotes_gpc = On の場合は、addslashes() を使用します。データは ' の形式でデータベースに保存されます。このとき直接出力すると、予想以上に内容が多いことがわかります。そのため、stripslashes() が表示され、それを削除できます (str_replace とは異なります)。 ("" , "",$Str))。

magic_quotes_gpc = Off の場合、addslashes() で処理されたデータは、上記の問題なくデータベースに保存されます。この時点ではデータが直接出力されるため、stripslashes() を使用する必要はありません。

addslashes() とtripslashes() はまったく逆であることを覚えておいてください。

簡単に言えば:

magic_quotes_gpc = On の場合、システムは一重引用符などの問題を自動的に処理します。addslashes() とtripslashes() を使用するかどうかは問題ではありませんが、データを追加するときに使用する場合は問題ありません。データを表示する場合は、addslashes() を使用し、その後、stripslashes() を使用する必要があります

magic_quotes_gpc = Off の場合、システムは一重引用符などの問題を処理しないため、データを挿入する場合は addslashes() を使用する必要がありますが、データを表示する場合は使用しません

分析ができたので、上記の 2 つの状況に従って、次のことが得られます。 magic_quotes_gpc がオンかオフかに関係なく、addslashes() を使用します。 ) データを追加する場合、stripslashes() は使用できません。

それが On か Off かを判断する方法は?

get_magic_quotes_gpc()

関数の例については、この記事を参照してください。

コードは以下の通りです:

代码 
//提交数据,或者变量准备:
$Content=addslashes(”这里面是数据,不管有没单引号或者还是变量”);
//插入数据到数据库,代码省略
//开始显示数据
$Content=”从数据库读取的数据”;
if(get_magic_quotes_gpc()){
  $Content=stripslashes($Content); 
}
echo $Content;
ログイン後にコピー
【おすすめ関連記事】:phpaddslashes()関数とstripslashes()関数の例詳細解説

以上がphpのstripslashes()関数とaddslashes()関数の違いの詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート