ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでのストリップスラッシュと追加スラッシュの使用法の違い

php_PHP チュートリアルでのストリップスラッシュと追加スラッシュの使用法の違い

WBOY
WBOYオリジナル
2016-07-13 17:14:541085ブラウズ

phpではstripslashesとaddslashesをよく使いますが、stripslashesとaddslashesの使い方と違いを詳しく紹介します。

スラッシュを追加します

addslashes() 関数は、指定された定義済み文字の前にバックスラッシュを追加します。

これらの事前定義された文字は次のとおりです:

•一重引用符 (')
•二重引用符 (")
•バックスラッシュ ()
•NULL

この例では、文字列内の事前定義された文字にバックスラッシュを追加します。

注: デフォルトでは、PHP 命令 magic_quotes_gpc がオンになっており、すべての GET、POST、COOKIE データに対して addslashes() が自動的に実行されます。 magic_quotes_gpc によってエスケープされた文字列に対して addslashes() を使用しないでください。二重エスケープが発生するためです。この状況が発生した場合は、関数 get_magic_quotes_gpc() を使用して検出できます。

コードは次のとおりです コードをコピー

/**
* 処理にaddslashes()を使用するかどうかを決定します
*
* @param 文字列 $str
*
*/

関数 str_addslashes($str, $db_type='mysql') {
if(get_magic_quotes_gpc()){
スイッチ($db_type){
ケース「アクセス」:
$str = ストリップスラッシュ($str);
$str = str_replace("'","''",$str); 休憩
}
}その他{
スイッチ($db_type){
ケース「mysql」:
$str = ラッシュを追加($str);
休憩;
ケース「アクセス」:
$str = str_replace("'","''",$str);
休憩
}
}
$str;
を返します }

カスタム関数 str_addslashes の説明: 送信プロセス中に magic_quotes_gpc がオンになっているかどうかがわからない場合は、この方法で処理できます。オンの場合、mysql データベースは処理しませんが、アクセス データベースは引き続き処理する必要があります。最初に削除してから、一重引用符を二重引用符に置き換えます。オフの場合、mysql データベースに

を追加します

ストリップスラッシュ()

stripslashes() 関数は、addslashes() 関数によって追加されたバックスラッシュを削除します。

コード

コードは次のとおりですコードをコピー
//データを送信するか、変数を準備します:

$Content=addslashes("一重引用符や変数の有無にかかわらず、これはデータです");

//データベースにデータを挿入します。コードは省略されています

//データの表示を開始します

$Content=”データベースから読み取られたデータ”;

if(get_magic_quotes_gpc()){

$Content=ストリップスラッシュ($Content)
}

$Content をエコー;

違いのまとめ

magic_quotes_gpc = Onの場合、addslashes()で処理したデータは'の形でデータベースに保存されます。このとき直接出力してみると、思ったより内容が多いのでstripslashes()します。と表示される場合は削除できます(str_replace("", "",$Str) とは異なります)。

magic_quotes_gpc = Off の場合、addslashes() で処理されたデータは ' の形式でデータベースに保存されます。addslashes() は、エラーなくデータを挿入する役割を果たします。今度はそうであれば、データは正常です。もう、stripslashes() を使用する必要はありません。

addslashes() とtripslashes() はまったく逆です。 ダイレクト メモリ:addslashes() は 1 つ追加し、stripslashes() は 1 つ削除します

http://www.bkjia.com/PHPjc/628898.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/628898.html技術記事 PHPではストリップスラッシュとアッドスラッシュをよく使いますが、ストリップスラッシュとアッドスラッシュの使い方とその違いについて詳しく紹介します。 addlashes addlashes() 関数...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。