maybe_unserialize() の使い方|説明・引数・注意点

説明

maybe_unserialize() は、シリアライズされた文字列を、元のデータに戻す関数です。

基本構文

maybe_unserialize( string $data ): mixed

引数

  • $data:変換する文字列

戻り値

元のデータ。

使い方(サンプル)

$data = maybe_unserialize( $stored );

注意点

  • 信頼できないデータをアンシリアライズすると、危険です。外部から受け取った値には使いません。

実務での使いどころ

  • データベースから、直接取得した値($wpdb->get_var() など)を、元の配列に戻すとき。

よくあるミスと対処

  • get_option() などは、自動で復元される。二重に呼ぶ必要はない。
  • 信頼できない、外部の入力に使っている。オブジェクトが生成され、攻撃に使われるおそれがある。外部の入力は、JSON(json_decode())で扱う。

NG例

$data = maybe_unserialize( $_POST['data'] ); // 外部の入力を、復元している

OK例

$data = json_decode( wp_unslash( $_POST['data'] ), true );

使い分け早見表

関数 役割
maybe_unserialize() シリアライズされた文字列を、元に戻す
maybe_serialize() 配列・オブジェクトを、文字列にする
is_serialized() シリアライズされた形式かを、判定する

関連項目

maybe_serialize()、is_serialized()

公式リファレンス:maybe_unserialize() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました