Exemple #1
0
 /**
  * Cleans $value for $type
  *
  * @param  string|int|float|mixed  $value
  * @param  string                  $type   Const int GetterInterface::COMMAND|GetterInterface::INT|...
  * @return string|int|float|boolean|mixed
  *
  * @throws \InvalidArgumentException
  */
 public static function clean($value, $type)
 {
     switch ($type) {
         case GetterInterface::COMMAND:
         case null:
             return preg_replace('/[^A-Za-z0-9_\\.-]/', '', $value);
         case GetterInterface::INT:
             return @(int) $value;
         case GetterInterface::UINT:
             return @abs((int) $value);
         case GetterInterface::NUMERIC:
             return (string) preg_replace('/^(\\d*).*$/', '\\1', $value);
         case GetterInterface::FLOAT:
             return (double) $value;
         case GetterInterface::BOOLEAN:
             return (bool) $value;
         case GetterInterface::STRING:
             return InjectionsFilter::filter($value, 'text');
         case GetterInterface::HTML:
             return InjectionsFilter::filter($value, 'html');
         case GetterInterface::BASE64:
             return (string) preg_replace('/[^A-Z0-9\\/+=]/i', '', $value);
             break;
         case GetterInterface::RAW:
             return $value;
         default:
             throw new \InvalidArgumentException(sprintf('Unknown Get::get type "%s"', preg_replace('/[^A-Za-z0-9_\\.-]/', '', $type)));
     }
 }