$value ) { if ( is_string( $key ) && preg_match( self::SECRET_KEY_PATTERN, $key ) ) { $clean[ $key ] = self::MASK; } elseif ( is_array( $value ) ) { $clean[ $key ] = self::redact( $value ); } elseif ( is_string( $value ) ) { $clean[ $key ] = self::mask_bearer( $value ); } else { $clean[ $key ] = $value; } } return $clean; } /** * Masks "Bearer " fragments that may appear inside free text. * * @param string $text Text. */ public static function mask_bearer( string $text ): string { return (string) preg_replace( '/Bearer\s+[A-Za-z0-9\-\._~\+\/]+=*/', 'Bearer ' . self::MASK, $text ); } }