init($params);
}
/**
* Initializes object.
* @param array $params
* @throws Exception
*/
public function init($params)
{
try {
isset($params['var']) ? $this->var = $params['var'] : false;
} catch(Exception $e) {}
}
/**
* Max string of user-input
* @param string, length and dots.
* @return string
*/
public function maxstring($string,$len,$dots)
{
$wordarray = explode(' ',$string);
$returnstring = '';
$c = count($wordarray);
for($i = 0; $i < $c; $i++) {
if(strlen($returnstring) >= $len) {
break;
} else {
$returnstring .= $wordarray[$i] . ' ';
}
}
if($dots == true) {
$returnstring .= '...';
}
return $returnstring;
}
/**
* Sanitizes user-input
* @param string
* @return string
*/
public function cleaninput($string)
{
if(is_array($string)) {
return @array_map("htmlspecialchars", $string, array(ENT_QUOTES, self::PHPENCODING));
} else {
return htmlspecialchars($string, ENT_QUOTES, self::PHPENCODING);
}
}
public function sanitize($string,$method='',$len=false)
{
$data = '';
switch($method) {
case 'alpha':
$this->data = preg_replace('/[^a-zA-Z]/','', $string);
break;
case 'trim':
if(isset($string)) {
if(trim($string) != "") {
$this->data = $string;
} elseif(strlen($string) > 2) {
$this->data = $string;
} else {
$this->data = false;
}
} else {
$this->data = false;
}
break;
case 'num':
if($string > self::MAXINT) {
return false;
} else {
$this->data = preg_replace('/[^0-9]/m','', $string);
}
break;
case 'dir':
$this->data = preg_replace('/[^a-zA-Z-0-9\.\/]/m','', $string);
break;
case 'email':
$this->data = preg_replace('/[^a-zA-Z-0-9\-\_.@\/]/m','', $string);
break;
case 'search':
$this->data = preg_replace('/[^a-zA-Z-0-9\-\s\:\/]/m','', $string);
break;
case 'cat':
$this->data = preg_replace('/[^a-zA-Z-0-9\-_\/]/m','', $string);
break;
case 'alphanum':
$this->data = preg_replace('/[^a-zA-Z-0-9]/m','', $string);
break;
case 'field':
$this->data = preg_replace('/[^a-zA-Z-0-9\-\_.@\/]/','', $string);
break;
case 'option':
$string = preg_replace('/[^a-zA-Z-0-9\-\_.]/','', $string);
$this->data = htmlspecialchars($string,ENT_QUOTES,self::PHPENCODING);
break;
case 'query':
$search = ['`','"','\'',';'];
$replace = ['','','',''];
$this->data = str_replace($search,$replace,$string);
break;
case 'cols':
// comma is allowed for selecting multiple columns.
$search = ['`','"','\'',';'];
$replace = ['','','',''];
$this->data = str_replace($search,$replace,$string);
break;
case 'table':
$search = ['`','"',',','\'',';','$','%','>','<'];
$replace = ['','','','','','','','',''];
$this->data = str_replace($search,$replace,$string);
break;
case 'unicode':
$this->data = preg_replace("/[^[:alnum:][:space:]]/u", '', $string);
break;
case 'encode':
$this->data = htmlspecialchars($string,ENT_QUOTES,self::PHPENCODING);
break;
case 'log':
if($len == false) {
$len = 255;
}
if(strlen($string) > $len) {
$this->data = false;
} else {
$this->data = htmlspecialchars($string,ENT_QUOTES,self::PHPENCODING);
}
break;
case 'entities':
$this->data = htmlentities($string, ENT_QUOTES | ENT_HTML5, self::PHPENCODING);
break;
case 'url':
$search = ['`','"',',','\'',';','$','%','>','<','\/'];
$replace = ['','','','','','','','','','/'];
$this->data = stripslashes(str_replace($search,$replace,$string));
break;
case 'domain':
$search = ['http://','www.'];
$replace = ['',''];
$this->data = str_ireplace($search,$replace,$string);
break;
case 'image':
$search = ['..','`','"',',','\'',';','%','>','<',];
$replace = ['','','','','','','','',''];
$this->data = stripslashes(str_ireplace($search,$replace,$string));
break;
case 'json':
$find = ['.json','./','../','\\','..','?','<','>'];
$replace = ['','','','','','','',''];
$this->data = str_ireplace($find,$replace,$string);
break;
default:
return $this->data;
}
return $this->data;
}
public function format($string,$method=false) {
$returnstring = '';
switch($method) {
default:
$returnstring = $this->sanitize($string,'encode');
$returnstring = substr($returnstring,0,512);
$find = ['\n','\r','\t'];
$replace = ['
','
',' '];
$returnstring = str_ireplace($find,$replace,htmlspecialchars($returnstring, ENT_QUOTES, 'UTF-8'));
return nl2br($returnstring);
break;
}
return $returnstring;
}
}
?>