以下は、元の Wordpress コードです。手間をかけるには、単純に変更して他の関数に適用します
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * 配列内を移動し、値からスラッシュを削除します。 * * 配列が渡された場合、array_map() 関数によりコールバックが * 値を関数に戻します。この値のスラッシュは削除されます。 * * @2.0.0以降 * * @parammixed $value 削除される値。 * @return 混合除去された値。 */ 関数tripslashes_deep($value) { if ( is_array($value) ) { $value = array_map('ストリップスラッシュ_ディープ', $value); } elseif ( is_object($value) ) { $vars = get_object_vars( $value ); foreach ($vars as $key=>$data) { $value->{$key} =tripslashes_deep( $data ); } } elseif ( is_string( $value ) ) { $value = ストリップスラッシュ($value); } $value を返す; } |
コードは次のとおりです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
関数 function_deep($function,$value) { 試してください{ if(!function_exists($function)){ $error = '"'.$function.'" は未定義です'; 新しい例外($error)をスローします; } } catch (例外 $e) { echo '例外をキャッチしました: ', $e->getMessage(), "n"; 死ぬ(); } if ( is_array($value) ) { $fun = 配列(); for($i=1;$i $fun[] = $function; } $value = array_map("function_deep",$fun, $value); } elseif ( is_object($value) ) { $vars = get_object_vars( $value ); foreach ($vars as $key=>$data) { $value->{$key} = function_deep($function,$data ); } } elseif ( is_string( $value ) ) { $value = call_user_func($function,$value); } $value を返す; } $arr = 配列( 「私はビーンです」 「私はビーンです」 array("私はビーン","私はビーン") ); var_dump(function_deep("addslashes",$arr)); //結果を出力する // 配列 (サイズ=3) // 0 => 文字列 'I'm bean' (長さ=9) // 1 => 文字列 'I'm bean' (長さ=9) // 2 => // 配列 (サイズ=2) // 0 => 文字列 'I'm bean' (長さ=9) // 1 => 文字列 'I'm bean' (長さ=9) ?> |