all-in-one-event-calendar/lib/validator/human-readable-size.php
2017-11-09 17:36:04 +01:00

36 lines
No EOL
883 B
PHP
Executable file

<?php
/**
* Human readable size validator.
*
* @author Time.ly Network Inc.
* @since 2.0
* @instantiator new
* @package AI1EC
* @subpackage AI1EC.Validator
*/
class Ai1ec_Validator_Human_Readable_Size extends Ai1ec_Validator {
/* (non-PHPdoc)
* @see Ai1ec_Validator::validate()
*/
public function validate() {
$checked_string = trim( strtoupper( $this->_value ) );
// Bytes - Get the first number
$bytes = '0';
preg_match( '/^([0-9\.]+)/', $checked_string, $matches );
if ( count( $matches ) == 2 ) {
$bytes = $matches[1];
}
// Unit - Get the first letter
$unit = 'B';
preg_match( '/([KMGT]{1})/', $checked_string, $matches );
if ( count( $matches ) == 2 ) {
$unit = $matches[1];
}
return $bytes . $unit;
}
}