rest_sanitize_array()


WordPressのrest_sanitize_array()関数は、配列データをREST APIで適切に使用するためにサニタイズします。

構文

rest_sanitize_array( array $array );
  • $array (array) — サニタイズする配列。

例 1: 配列の基本的なサニタイズ

以下のコードは、文字列要素を持つ配列をサニタイズします。

<?php
$array = array( 'テスト', '<script>alert("悪意のあるコード");</script>' );
$sanitized = rest_sanitize_array( $array );
print_r( $sanitized );
?>

例 2: 数値配列のサニタイズ

数値データを含む配列をサニタイズする方法です。

<?php
$array = array( 1, 2, 3, '<script>alert("悪意のあるコード");</script>' );
$sanitized = rest_sanitize_array( $array );
print_r( $sanitized );
?>

例 3: ネストされた配列のサニタイズ

ネストされた配列をサニタイズする際の例です。

<?php
$array = array(
    'key1' => '<script>alert("悪意のあるコード");</script>',
    'key2' => array( 'nested' => '<div>HTMLタグ</div>' )
);
$sanitized = rest_sanitize_array( $array );
print_r( $sanitized );
?>

例 4: JSONデータから変換した配列のサニタイズ

JSONデータを配列に変換し、それをサニタイズします。

<?php
$json = '{"key1":"<script>alert(\"攻撃\");</script>","key2":"正常な値"}';
$array = json_decode( $json, true );
$sanitized = rest_sanitize_array( $array );
print_r( $sanitized );
?>

例 5: ユーザー入力からの配列のサニタイズ

フォームから送信されたデータをサニタイズします。

<?php
$array = filter_input_array( INPUT_POST, FILTER_SANITIZE_STRING );
$sanitized = rest_sanitize_array( $array );
print_r( $sanitized );
?>

注意事項:

  • rest_sanitize_array()は主にREST API向けの関数であり、他の用途では適切でない場合があります。
  • 関数は再帰的に配列内のすべての要素を処理しますが、カスタムサニタイズロジックが必要な場合は別途処理を追加する必要があります。

関連機能: