Newer
Older
WebMCR / upload / engine / filter.class.php
@Qexy.org Qexy.org on 23 Sep 2016 1 KB Beta 1.4.0
<?php

if(!defined("MCR")){ exit("Hacking Attempt!"); }

function filter($var, $type, $opt=''){
	if(!empty($opt)){ $opt = json_decode($opt, true); }

	switch($type){
		case 'int':
			return intval($var);
		break;


		case 'float':
			return floatval($var);
		break;


		case 'bool':
			return filter_var($var, FILTER_VALIDATE_BOOLEAN);
		break;


		case 'hsc':
			return htmlspecialchars($var);
		break;


		case 'chars':
			return preg_replace("/[^\w]+/i", "", $var);
		break;


		case 'nums':
			return preg_replace("/[^\d]+/", "", $var);
		break;


		case 'email':
			return preg_replace("/[^a-z0-9\-\@\.]+/i", "", $var);
		break;


		case 'ipv4':
			return preg_replace("/[^\d\.]+/", "", $var);
		break;


		case 'domain':
			return preg_replace("/[^a-z0-9\-\.]+/i", "", $var);
		break;


		case 'string':
			return preg_replace("/[\'\"\`\>\<\{\\\}\%]+/i", "", $var);
		break;


		case 'num_array':
			$new_array = array();

			if(!is_array($var) || empty($array)){ return $new_array; }

			foreach($var as $key => $value){ $new_array[$key] = (@$opt['float']) ? floatval($value) : intval($value); }

			return $new_array;
		break;


		case 'more_than_zero':
			if(is_array($var)){
				foreach($var as $key => $val){
					if(@$opt['float']){
						$var[$key] = (floatval($var)<=0) ? 1 : floatval($var);
					}else{
						$var[$key] =(intval($var)<=0) ? 1 : intval($var);
					}
				}

				return $var;
			}else{
				if(@$opt['float']){
					return (floatval($var)<=0) ? 1 : floatval($var);
				}else{
					return (intval($var)<=0) ? 1 : intval($var);
				}
			}
		break;

		default: return false;
	}
}

?>