is_serialized_string()


WordPress関数is_serialized_string()は、与えられた文字列がシリアライズされた文字列であるかどうかを判定するために使用されます。この関数は、特定の形式にエンコードされたデータを検証する際に役立ちます。

構文

is_serialized_string( string $data );
  • $data (string) — チェックする文字列。

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

以下のコードは、指定された文字列がシリアライズされているかを確認します。

<?php
$data = 'a:1:{s:5:"key";s:5:"value";}';
if ( is_serialized_string( $data ) ) {
    echo 'シリアライズされた文字列です。';
}
?>

例 2. 無効な文字列の検証

このコードは、無効な文字列がシリアライズされていないことを確認します。

<?php
$data = 'not a serialized string';
if ( ! is_serialized_string( $data ) ) {
    echo 'シリアライズされた文字列ではありません。';
}
?>

例 3. ユーザー入力の検証

ユーザー入力がシリアライズされた文字列かどうかを判定します。

<?php
$user_input = $_POST['user_data'] ?? '';
if ( is_serialized_string( $user_input ) ) {
    echo '有効なデータ形式です。';
}
?>

例 4. シリアライズデータの処理

シリアライズされた文字列の場合にデータをデシリアライズして処理します。

<?php
$data = 'a:1:{s:5:"key";s:5:"value";}';
if ( is_serialized_string( $data ) ) {
    $unserialized = unserialize( $data );
    print_r( $unserialized );
}
?>

例 5. データベースからの値のチェック

データベースから取得した値がシリアライズされているかを確認します。

<?php
$value = get_option( 'custom_option' );
if ( is_serialized_string( $value ) ) {
    echo 'シリアライズされた値です。';
}
?>

注意事項

  • is_serialized_string()は、文字列が正確にシリアライズされた形式であるかどうかを判定するだけで、データの安全性を保証するものではありません。
  • ユーザーからの入力データを使用する場合は、常にエスケープやサニタイズを行ってください。

関連機能: