ホームページ  >  記事  >  php教程  >  PHPのaddslashes関数の詳細な分析と説明

PHPのaddslashes関数の詳細な分析と説明

WBOY
WBOYオリジナル
2016-06-13 12:22:461264ブラウズ

構文: string addedlashes(string str);
内容の説明
この関数は、データベース クエリがスムーズに動作できるように、データベースで処理する必要がある文字列の引用部分にスラッシュを追加します。変更される文字には、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、およびヌル文字 NUL (ヌル バイト) が含まれます。
============ == =============================================== ==
1、フォーム送信時の addlashes のパフォーマンスは、まず get_magic_quotes_gpc() の値に依存します。このとき、
< /FORM>
echo get_magic_quotes_gpc().
" A ".$_POST['message'].
" B ".stripslashes($_POST['message' ]) ;
?>



出力: 1 A include('/home/me/myfile'); B include('/home/me/myfile');
概要: get_magic_quotes_gpc() が 1 に等しい場合、データベースに入らない場合は、結果にはスラッシュが付きます。


2、データベースに送信するときの addslashes のパフォーマンス


コードをコピーします。 > コードは次のとおりです:


test

>

require_once('includes/common.php');

$db->query("INSERT INTO `testtable` ( id , content ) VALUES ('1' , '".$_POST['message']."')");

$query=$db->query("select * from `testtable` where `id` = 1;");
$Result=$db->fetch_array($query);
echo get_magic_quotes_gpc().
" A ".$_POST['message'].
" B ".$Result['content'];
?>



入力: include('/home/me/myfile ' );
出力: 1 A include('/home/me/myfile'); B include('/home/me/myfile');
概要: get_magic_quotes_gpc() が 1 に等しい場合データベースに入力すると、データベースから直接読み取ると、何も変更せずに入力文字列を取得できます。

3、get_magic_quotes_gpc()

サーバー上の get_magic_quotes_gpc() の設定は実行時に変更できません。つまり、Web ページのコードで事前にさまざまな状況を考慮する必要があります。 、データを送信するとき、サーバーがスラッシュを追加したかどうかはまだわかりません。インターネット上で人気のある次の 2 つの関数は、誰もが必要とするものかもしれません。個人的には 2 番目の関数が好きです。
PHP コード:




コードをコピーします
コードは次のとおりです。次のように:

function my_addslashes( $message ){
if(get_magic_quotes_gpc()== 1 ){

return $message }else{ if( is_array($message) ==true){ while(list($key,$value)=each($message)){ $message[$key]=my_addslashes($value);

return $message;

}else{
return addlashes($message)
}
}
}


PHP コード:



コードをコピー

コードは次のとおりです:

function my_addslashes($data){
if(!get_magic_quotes_gpc()) {
return is_array($ data)?array_map('AddSlashes',$data):addslashes($data);

} else { Return $data; }

単純 説明は、get_magic_quotes_gpc() が 1 (サーバーのデフォルト設定は 1) に等しい場合、文字列を変更せずにデータベースに直接保存できるということです。それ以外の場合は、addslashes 関数を使用します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。