is_serialized()


WordPress関数is_serialized()は、文字列がシリアライズされたデータ形式であるかを確認するために使用されます。この関数は、データの整合性をチェックし、適切な処理を行うために非常に重要です。

構文

is_serialized( string $data );
  • $data (string) — チェック対象のデータ。

例 1. シリアライズされた文字列の確認

以下のコードは、データがシリアライズされているかどうかをチェックします。

<?php
$data = 'a:1:{s:3:"key";s:5:"value";}';
if ( is_serialized($data) ) {
    echo 'シリアライズ済みのデータです。';
} else {
    echo 'シリアライズされていないデータです。';
}
?>

例 2. シリアライズされていないデータの確認

非シリアライズ文字列の場合のチェック方法です。

<?php
$data = '普通の文字列';
if ( is_serialized($data) ) {
    echo 'シリアライズ済みのデータです。';
} else {
    echo 'シリアライズされていないデータです。';
}
?>

例 3. 配列のシリアライズを確認

配列をシリアライズしてチェックします。

<?php
$array = serialize(array('key' => 'value'));
if ( is_serialized($array) ) {
    echo '配列はシリアライズされています。';
} else {
    echo '配列はシリアライズされていません。';
}
?>

例 4. JSON形式データとの比較

JSON形式の文字列とシリアライズ形式の違いを確認します。

<?php
$json_data = json_encode(array('key' => 'value'));
if ( is_serialized($json_data) ) {
    echo 'JSONデータはシリアライズされています。';
} else {
    echo 'JSONデータはシリアライズされていません。';
}
?>

例 5. カスタムフィールドデータの確認

カスタムフィールドの値がシリアライズされているかどうかをチェックします。

<?php
$meta_value = get_post_meta(get_the_ID(), 'custom_meta_key', true);
if ( is_serialized($meta_value) ) {
    echo 'カスタムフィールドはシリアライズされています。';
} else {
    echo 'カスタムフィールドはシリアライズされていません。';
}
?>

注意事項

  • この関数は、シリアライズされたデータであるかどうかのみを判定します。データの内容自体を確認することはできません。
  • 不正なデータが渡された場合でもエラーにはならず、falseを返します。

関連機能: