この記事では主に、PHP の addcslashes 関数とtripcslashes 関数の使用法を例の形で紹介し、固定文字のエスケープ処理とstripcslashes を追加して、関連するスキルを復元します。
この記事では、PHP での addcslashes 関数とtripcslashes 関数の使用法を例とともに分析します。皆さんにもシェアして参考にしてください。 詳細は以下の通りです。
英語版のWebサイトを書くときは、後から英語の情報を記入するのですが、何気なく記入しても問題ありません。指定された内容を入力するたびに、しかし、入力できず、エラーも報告されませんでした。データベースを確認したところ、このフィールドには「TEXT」データ型が使用されていることがわかりました。内容が長すぎるためだと思いました。そこでデータ型を「ロングテキスト」に変更しましたが、送信時にも同じ問題が発生することがわかりました。 addcslashes 関数を紹介しましょう!
その後、同僚に助けを求めたところ、英語の句読点「'」の理由は、MySQL がここで実行された後、ステートメントが自動的に次のように認識されるためであることがわかりました。終わってしまったので追加できません。問題が見つかったので、対応する解決策を見つける必要があります。それは、テキスト コンテンツ内のすべての "'" の前にエスケープ文字 "\" を追加することです。たまたま、PHP には自動的に追加または削除する機能が備わっています。関数addcslashesとstripslashesで文字列から文字をエスケープするので、テストを追加した後、問題は解決しました。平日にプログラムを作成するときは、私が十分に厳密ではなく、常にあれこれの詳細を無視していることがわかります。ハッカーがこれらの問題を発見し、悪用した場合、その Web サイトは基本的に終わりになります。そのため、皆さんはこれを警告として受け止め、私と同じ間違いを犯さないようにしてください。
これら 2 つの関数の使用法を簡単に紹介します。
string addcslashes(string str,string charlist)
最初のパラメータstr は、Lost プロパティの元の文字列になります。
2 番目のパラメータ charlist は、元の文字列のどの文字の前に文字 "\" を付ける必要があるかを指定します。
string stripcslashes(string str)
文字列内の「\」を削除します。
さらに、addslashes 関数を使用して、「'」を直接エスケープすることもできます。
例は次のとおりです:
<?php $sql = "update book set bookname='let's go' where bookid=1"; echo $sql."<br/>"; $new_sql = addcslashes($sql,"'"); echo $new_sql."<br/>"; $new_sql_01 = stripcslashes($new_sql); echo $new_sql_01."<br/>"; echo addslashes($sql); ?>
実行結果は次のとおりです:
update book set bookname='let's go' where bookid=1 update book set bookname=\'let\'s go\' where bookid=1 update book set bookname='let's go' where bookid=1 update book set bookname=\'let\'s go\' where bookid=1
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
PHP テンプレート エンジンの使用法について Smarty 組み込み関数のセクションとセクションその他のセクション
方法PHP テンプレート エンジンを使用する Smarty 組み込み関数セクションとセクションその他の ob_start() 出力のクリアと出力の選択
#
以上がPHPにおけるaddcslashesとstripcslashesの関数解析についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。