1. PHP / Говнокод #17447

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function maybe_unserialize( $original ) {
            if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in
                    return @unserialize( $original );
            return $original;
    }

    Wordpress <3
    is_serialized тоже блещет
    https://core.trac.wordpress.org/browser/tags/4.1/src/wp-includes/functions.php#L265

    Запостил: Fike, 15 Января 2015

    Комментарии (7) RSS

    • монада maybe е-мое
      Ответить
    • to_be_or_not_to_be_unserialize
      Ответить
    • maybe_try_to_serialize_if_it_possible();
      Ответить
    • АААААААААААААААААААААААА БЛЯДЬ

      function maybe_serialize( $data ) {
              if ( is_array( $data ) || is_object( $data ) )
                      return serialize( $data );
              // Double serialization is required for backward compatibility.
              // See https://core.trac.wordpress.org/ticket/12930
              if ( is_serialized( $data, false ) )
                      return serialize( $data );
              return $data;
      }
      Ответить
      • while ( is_serialized( $data ) ) $data = unserialize( $data );
        Ответить
      • >// Double serialization is required for backward compatibility.
        Этот код не решает проблему обратной совместимости с обратной совместимостью. Нужно так:
        function maybe_serialize( $data ) {
                if ( is_array( $data ) || is_object( $data ) )
                        return serialize( $data );
                // Double serialization is required for backward compatibility.
                // See https://core.trac.wordpress.org/ticket/12930
                while ( is_serialized( $data, false ) )
                        $data = serialize( $data );
                return $data;
        }
        Ответить

    Добавить комментарий