WordPress.org

Make WordPress Core

Ticket #14429: faster-is_serialized.diff

File faster-is_serialized.diff, 1.0 KB (added by sambauers, 4 years ago)
  • wp-includes/functions.php

     
    232232        if ( !is_string( $data ) ) 
    233233                return false; 
    234234        $data = trim( $data ); 
     235        if ( empty($data) ) 
     236                return false; 
    235237        if ( 'N;' == $data ) 
    236238                return true; 
    237         if ( !preg_match( '/^([adObis]):/', $data, $badions ) ) 
     239        if ( ':' !== substr( $data, 1, 1 ) ) 
    238240                return false; 
    239         switch ( $badions[1] ) { 
     241        $badion = substr( $data, 0, 1 ); 
     242        if ( !in_array( $badion, array( 'a', 'd', 'O', 'b', 'i', 's' ) ) ) 
     243                return false; 
     244        switch ( $badion ) { 
    240245                case 'a' : 
    241246                case 'O' : 
    242247                case 's' : 
    243                         if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) ) 
     248                        if ( preg_match( "/^{$badion}:[0-9]+:.*[;}]\$/s", $data ) ) 
    244249                                return true; 
    245250                        break; 
    246251                case 'b' : 
    247252                case 'i' : 
    248253                case 'd' : 
    249                         if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) ) 
     254                        if ( preg_match( "/^{$badion}:[0-9.E-]+;\$/", $data ) ) 
    250255                                return true; 
    251256                        break; 
    252257        }