php で文字列をエスケープする方法: 1. エスケープ文字「\」を使用すると、「\」の直後の最初の文字が意味のない文字または特別な意味を持つ文字になります; 2. addslashes() 関数、構文 " を使用します。スラッシュ($str)を追加します。」
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
PHP プログラミングのプロセスでは、このような問題に遭遇すると、データベースにデータを挿入する際にエラーや文字化けなどの問題が発生することがあります。これは、データベースが受信データ内の文字を制御文字として解釈するためです。この問題を解決するには、マークを使用するか、これらの特殊文字をエスケープする必要があります。
PHP は、これらの問題に特に対処するためのテクノロジを提供しています。文字列をエスケープおよび復元するには 2 つの方法があります。1 つは文字列を手動でエスケープおよび復元し、もう 1 つは自動的にエスケープおよび復元します。
方法 1: 文字列を手動でエスケープして復元する
文字列では、一重引用符 ' '、二重引用符 " "、区切り文字
\ はエスケープ文字であり、\ の直後の最初の文字は意味のない文字または特別な意味を持たない文字になります。たとえば、' は文字列を定義する特殊な記号ですが、\' と記述すると文字列を定義する機能を失い、通常の一重引用符になります。 echo "\'"; を使用して一重引用符を出力すると、エスケープ文字 \ は表示されません。
[例] エスケープワード \ を使用して文字列をエスケープします。
<?php header("Content-type:text/html;charset=utf-8"); echo 'Name:\'php中文网\'<br>Url:\'https://www.php.cn//\''; ?>
実行結果は次のとおりです:
#単純な文字列の場合、文字列をエスケープする手動の方法を使用することをお勧めします。データ文字列が大量にある場合は、自動エスケープ関数を使用して文字列をエスケープすることをお勧めします。
2. 文字列の自動エスケープと復元
文字列の自動エスケープと復元は、PHP が提供するaddslashes()関数とstripslashes()関数を使用して実現できます。
addslashes() この関数は、文字列に \ を追加し、指定された文字列をエスケープします。構文形式は次のとおりです:
addslashes($str)
addslashes() 関数によって返される文字列では、 order データベース クエリやその他のステートメントの必要に応じて、特定の文字の前にバックスラッシュが追加されます。これらの文字は、一重引用符 '、二重引用符 "、バックスラッシュ \、および NULL です。
stripslashes() 関数の役割エスケープされた文字列を復元します。つまり、文字列に追加されたバックスラッシュを削除します。構文形式は次のとおりです:
stripslashes($str)
stripslashes() 関数は、エスケープされたバックスラッシュを削除した後の文字を返します。 \' は ' に変換され、二重バックスラッシュ\\ は単一バックスラッシュ\) に変換されます。
[例] addslashes() 関数を使用して文字列をエスケープし、stripslashes() 関数を使用して復元します。
<?php header("Content-type:text/html;charset=utf-8"); $sql = "select * from php where website='php中文网'"; $str = addslashes($sql); echo $str.'<br>'; $str = stripslashes($str); echo $str; ?>
実行結果は次のとおりです:
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPで文字列をエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。