PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

addslashes - 文字列をスラッシュでクォートする | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

addslashes

(PHP 4, PHP 5, PHP 7)

addslashes文字列をスラッシュでクォートする

説明

string addslashes ( string $str )

エスケープすべき文字の前にバックスラッシュを付けて返します。 エスケープすべき文字とは、シングルクォート('), ダブルクォート("),バックスラッシュ (\) ,NUL (NULL バイト) です。

addslashes() 関数 を使う例として、PHPが評価する文字列データを入力する場合が挙げられます。たとえば、O'Reilly というデータを $str に格納して評価する場合、$str をエスケープする(つまり eval("echo '".addslashes($str)."';"); する) 必要があります。

セキュリティ上の理由で、データベースパラメータをエスケープするには DBMS 固有のエスケープ関数 (たとえば MySQL 用の mysqli_real_escape_string() や、 PostgreSQL 用の pg_escape_literal()pg_escape_string()) を使うべきです。 識別子(例: テーブル名やフィールド名)をエスケープするときは、データベースパラメータとは別の仕様をDBMSは使います。 PostgreSQL の pg_escape_identifier() のように、DBMS によっては識別子用のエスケープ関数を提供しているものもありますが、全ての DBMS が提供しているわけではありません。 提供されていない場合は、お使いのデータベースシステムのマニュアルを参照し、適切なエスケープ方法を調べるようにしてください。

お使いの DBMS がエスケープ関数を提供しておらず、 DBMS が 特別な文字をエスケープするのに \ を使っている場合、 その DBMS に適切なエスケープ方法である場合に限って、 addslashes() 関数を使うことができます。 ほとんどのデータベース上では、 addslashes()関数を パラメータのエスケープに使うと、セキュリティ問題が起きる原因となりうることに注意してください。

PHP 5.4 より前のバージョンでは、 magic_quotes_gpc が デフォルトで on だったため、 原則として addslashes() 関数がすべての GET, POST, COOKIE のデータに対して実行されていました。 magic_quotes_gpc によって既にエスケープされた文字列に対して addslashes()関数 を絶対に実行してはいけません。2重エスケープになるからです。 get_magic_quotes_gpc()関数 で既にエスケープが行われているかを簡単にチェックできます。

パラメータ

str

エスケープしたい文字列。

返り値

エスケープされた文字列を返します。

例1 addslashes() の例

<?php
$str 
"Is your name O'Reilly?";

// 出力: Is your name O\'Reilly?
echo addslashes($str);
?>

参考


忘却曲線を使ってこの関数を確実に記憶に残す

フォーラムで「addslashes - 文字列をスラッシュでクォートする」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | addslashes - 文字列をスラッシュでクォートする」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: