urlencode_deep()


WordPressの関数urlencode_deep()は、配列やオブジェクト内のすべての値を再帰的にURLエンコードするために使用されます。

構文

urlencode_deep( mixed $value );
  • $value (mixed) — エンコードする値。配列、オブジェクト、または文字列を受け入れます。

例 1: 配列のエンコード

配列内のすべての値をURLエンコードします。

<?php
$data = array( 'name' => 'テスト', 'message' => 'こんにちは' );
$encoded = urlencode_deep( $data );
// 結果: array( 'name' => '%E3%83%86%E3%82%B9%E3%83%88', 'message' => '%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF' )
?>

例 2: オブジェクトのエンコード

オブジェクト内のすべてのプロパティ値をエンコードします。

<?php
$obj = (object) array( 'key1' => '値1', 'key2' => '値2' );
$encoded = urlencode_deep( $obj );
// 結果: (object) array( 'key1' => '%E5%80%A41', 'key2' => '%E5%80%A42' )
?>

例 3: 文字列のエンコード

単一の文字列をURLエンコードします。

<?php
$string = 'https://example.com?param=値';
$encoded = urlencode_deep( $string );
// 結果: 'https%3A%2F%2Fexample.com%3Fparam%3D%E5%80%A4'
?>

例 4: ネストした配列のエンコード

ネストされた配列内のすべての値をエンコードします。

<?php
$data = array(
    'level1' => array(
        'level2' => '値',
    ),
);
$encoded = urlencode_deep( $data );
// 結果: array( 'level1' => array( 'level2' => '%E5%80%A4' ) )
?>

例 5: フォームデータのエンコード

フォームから送信されたデータをエンコードします。

<?php
$form_data = $_POST;
$encoded_data = urlencode_deep( $form_data );
// 結果: フォームデータがURLエンコードされた状態で出力されます
?>

注意事項

  • urlencode_deep()は、元のデータを破壊しないため、結果を新しい変数に格納することを推奨します。
  • 非常に大きな配列やオブジェクトを処理する場合、パフォーマンスに影響を与える可能性があります。

関連機能: