Created
June 28, 2013 12:14
-
-
Save mpociot/5884259 to your computer and use it in GitHub Desktop.
HTTP Request wrapper class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* HTTP Request | |
* Wrapper Class | |
* | |
* @author Marcel Pociot | |
* @copyright Marcel Pociot 2009-2013 | |
*/ | |
namespace CR; | |
class Request{ | |
private static $instance; | |
private $params = array(); | |
/** | |
* Constructor | |
* | |
*/ | |
public function __construct(){ | |
$this->setParams(); | |
} | |
protected function __clone(){} | |
/** | |
* Returns the current instance of the request wrapper | |
* | |
* @return CR_Request instance | |
*/ | |
public static function getInstance(){ | |
if(self::$instance == null) { | |
self::$instance = new self(); | |
} | |
return self::$instance; | |
} | |
/** | |
* Loads all Parameters from | |
* an array given | |
* | |
* @param array $settings | |
* @return boolean | |
*/ | |
public function setParams($parameters = null){ | |
if(is_array($parameters)){ | |
$requestParameters = $parameters; | |
} else { | |
$requestParameters = $_REQUEST; | |
} | |
foreach ($requestParameters as $var => $value) { | |
$this->params[$var] = $value; | |
} | |
return true; | |
} | |
/** | |
* Returns the value | |
* from the given variable | |
* | |
* @param string $var | |
* @return mixed | |
*/ | |
public function __get($var){ | |
if( isset($this->params[$var]) ) { | |
$value = trim($this->params[$var]); | |
if ( !empty($value) OR $value === 0 OR $value === '0') { | |
return $this->params[$var]; | |
} | |
} | |
return false; | |
} | |
/** | |
* Fill params with array | |
* @param array $params | |
*/ | |
public function fill(Array $params){ | |
$this->params = $params; | |
} | |
public function __set($var,$value) { | |
$this->params[$var] = $value; | |
} | |
/** | |
* Returns var as integer or 0 instead | |
* @param string variable | |
* @return int | |
*/ | |
public function getInt($var){ | |
if( key_exists($var, $this->params) ){ | |
return intval($this->params[$var]); | |
} | |
return 0; | |
} | |
/** | |
* Returns var as postivie integer or 0 instead | |
* @param string variable | |
* @return int | |
*/ | |
public function getPositiveInt($var){ | |
if( key_exists($var, $this->params) ){ | |
$intval = intval($this->params[$var]); | |
if( $intval < 0 ) { | |
$intval = 0; | |
} | |
} | |
return 0; | |
} | |
public function getFloat($var){ | |
if( isset($this->params[$var]) ) | |
{ | |
return floatval($this->params[$var]); | |
} | |
return 0; | |
} | |
public function getString($var){ | |
if( is_string($this->params[$var]) ) { | |
return $this->params[$var]; | |
} | |
return false; | |
} | |
public function getTime($var){ | |
if( strtotime($this->params[$var]) ) { | |
return strtotime($this->params[$var]); | |
} | |
return false; | |
} | |
public function getPassword($var,$minLength) { | |
if( strlen($this->params[$var]) >= $minLength ) { | |
return $this->params[$var]; | |
} | |
return false; | |
} | |
public function getBool($var) { | |
if( isset($this->params[$var]) ) { | |
return '1'; | |
} | |
return '0'; | |
} | |
public function getArray($var){ | |
if( is_array($this->params[$var]) ) { | |
return $this->params[$var]; | |
} else { | |
return array(); | |
} | |
} | |
public function getFromArray($arr, $key){ | |
if( is_array($this->params[$arr]) AND array_key_exists($key, $this->params[$arr]) ) { | |
$value = trim($this->params[$arr][$key]); | |
if ( !empty($value)) { | |
return $value; | |
} | |
} | |
return false; | |
} | |
/** | |
* Get all request variables that contain | |
* a specific string! | |
* | |
* @param string $var | |
* @return array | |
*/ | |
public function getLike($var) { | |
$return = array(); | |
foreach ($this->params as $varey => $value) { | |
if( strstr($varey,$var) ) { | |
$return[$varey] = $value; | |
} | |
} | |
return $return; | |
} | |
public function isBase64($var){ | |
$l = strlen($var); | |
if ($l) { | |
return $var[$l - 1] == '=' && preg_match('/[A-Za-z=\/\+]+/', $var); | |
} | |
return false; | |
} | |
public function checkEmail($var){ | |
$email = strtolower($var); | |
if(!preg_match("/^([_[:alnum:]-]+)(\.[_[:alnum:]-]+)*@([[:alnum:]])([[:alnum:]\.-]+)([[:alnum:]])\.([[:alpha:]]{2,4})$/",$email)){ | |
return false; | |
}else{ | |
return $email; | |
} | |
} | |
public function decodeEmail($var){ | |
if( $this->isBase64($var) ){ | |
return base64_decode($var); | |
} else { | |
return $var; | |
} | |
} | |
public function getEmail($var){ | |
if( !isset($this->params[$var]) ){ | |
return false; | |
} | |
$email = strtolower($this->params[$var]); | |
if(!preg_match("/^([_[:alnum:]-]+)(\.[_[:alnum:]-]+)*@([[:alnum:]])([[:alnum:]\.-]+)([[:alnum:]])\.([[:alpha:]]{2,4})$/",$email)){ | |
return false; | |
}else{ | |
return $email; | |
} | |
} | |
public function getAz09($var){ | |
if(preg_match("/([^0-9a-z])/",strtolower($this->params[$var]))){ | |
return false; | |
}else{ | |
return $this->params[$var]; | |
} | |
} | |
/** | |
* Get an alpha numeric string | |
* | |
* @param string $var | |
* @return string | |
*/ | |
public function getAlNum($var){ | |
if(ctype_alnum(trim($this->params[$var]))){ | |
return $this->params[$var]; | |
}else{ | |
return false; | |
} | |
} | |
public function hasUpload(){ | |
if( !$_FILES ){ | |
return false; | |
} | |
foreach( $_FILES as $var => $v ){ | |
if( is_array( $v ) ) { | |
if( $v['tmp_name'][0] ){ | |
return true; | |
} | |
}else{ | |
if( $v['tmp_name'] ){ | |
return true; | |
} | |
} | |
} | |
return false; | |
} | |
public function decr($var) { | |
$intval = intval($this->params[$var]) - 1; | |
if( $intval <= 0 ) { | |
$intval = 1; | |
} | |
return $intval; | |
} | |
public function incr($var) { | |
$var = $this->getInt($var); | |
if( $var == 0 ) { | |
$var = 1; | |
} | |
return $var+1; | |
} | |
public function toArray() { | |
return $this->params; | |
} | |
public function toObject() { | |
return (object)$this->params; | |
} | |
public function getDefault($field, $default = '') { | |
if (isset($this->params[$field])) { | |
return $this->params[$field]; | |
} else { | |
return $default; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment