概要
addslashes_strings_only
フィルタは、変数が文字列の場合にバックスラッシュでエスケープする機能を提供します。このフィルタは主にデータベースへの挿入や文字列を安全に出力する目的で使用されます。具体的には、以下のような場面でよく利用されます。
- ユーザーからの入力をデータベースに保存する際
- JSON形式のデータを安全に生成する際
- HTMLの出力を安全にエスケープする際
- クエリ文字列を処理する際
- 機密情報をログに出力する際
- 外部APIへデータを送信する際
- 検索機能での特殊文字を処理する際
- 設定値を安全に保存する際
構文
add_filter( 'addslashes_strings_only', 'callback_function' );
パラメータ
$string
: エスケープが必要な文字列
戻り値
- エスケープされた文字列
関連する関数
使用可能なバージョン
addslashes_strings_only
フィルタは、WordPressバージョン3.0以降で使用可能です。
コアファイルのパス
wp-includes/formatting.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: データベース挿入用のエスケープ処理
$unsafe_string = "O'Reilly";
$safe_string = apply_filters('addslashes_strings_only', $unsafe_string);
このコードでは、O'Reilly
という文字列をエスケープして、安全にデータベースに保存する準備をしています。
サンプルコード2: JSONレスポンスの生成時
$data = [
'name' => "O'Reilly",
'age' => 25,
];
$json_data = json_encode(apply_filters('addslashes_strings_only', $data));
O'Reilly
という名前を含むデータをJSON形式にエンコードする前にエスケープ処理しています。
サンプルコード3: HTML出力時の安全性確保
$user_input = "<script>alert('XSS');</script>";
$safe_output = htmlspecialchars(apply_filters('addslashes_strings_only', $user_input));
echo $safe_output;
ユーザーからの入力に含まれる可能性のある悪意あるスクリプトをエスケープして、安全に出力しています。
サンプルコード4: URLクエリ生成時
$query_param = "search=O'Reilly";
$safe_param = apply_filters('addslashes_strings_only', $query_param);
$url = "https://example.com/search?" . $safe_param;
URLに含まれる検索パラメータをエスケープして、正しくクエリを生成しています。
サンプルコード5: 設定値の安全な保存
$setting_value = "O'Reilly's Bookstore";
$safe_setting = apply_filters('addslashes_strings_only', $setting_value);
update_option('my_option', $safe_setting);
オプション設定を保存する際に、エスケープ処理を行っています。