phper로서 OSC에 합류하면서 지금까지 공유한 유일한 코드가 php라는 것을 오늘에서야 알았습니다. 프로젝트에서 작성한 공통 클래스를 공유했습니다.
/ordinary 배열은 키를 통해 형식화된 데이터를 반환합니다 http://www.du52.com/text.php?id=581
- include_once('Param.class.php');
- // GET/POST 데이터 설정 시뮬레이션
- $_REQUEST['int' ] = '1243';
- $_REQUEST['str'] = '안녕하세요';
- $_REQUEST['bool'] = 'true';
- $_REQUEST['arr'] = '1, 2,3,4';
- $_REQUEST['json'] = json_encode(array('a' => 'a', 'b' => 'b'));
- $_REQUEST[ 'date'] = date('Y-m-d H:i:s');
- // 단일 데이터 읽기
- var_dump(Param::getInt('int', 0));echo '
var_dump(Param::getInt('undefine-int', -1));echo ' ';
- var_dump(Param::getStr('str', ' default '));echo '
';
- var_dump(Param::getBool('bool', NULL));echo '
';
- var_dump(Param: : : getStrArray('arr', ',', NULL));echo '
';
- var_dump(Param::getJson('json', NULL));echo '
';
- var_dump(Param::getTime('date', -1));echo '
';
- echo '
';echo ' ';
- // 일괄 획득
- $fields = array();
- $fields[] = array('int', Param::$FIELD_TYPE_INT, 0);
- $fields [ ] = array('undefine-int', Param::$FIELD_TYPE_INT, -1);
- $fields[] = array('str', Param::$FIELD_TYPE_STR, 'default');
- $ 필드 [] = 배열('bool', Param::$FIELD_TYPE_BOOL, 0);
- $fields[] = 배열('arr', Param::$FIELD_TYPE_STRARR, 0);
- $fields[] = 배열 ('json', Param::$FIELD_TYPE_JSON, 0);
- $fields[] = array('date', Param::$FIELD_TYPE_TIME, -1);
- $data = Param::parse( $ fields);
- var_dump($data);
- echo '
';echo ' ';
- // 배열 데이터 가져오기
- $source = array ('int' => '1234', 'str' => 'hello');
- var_dump(Param::getInt('int', -1));echo '
;
- var_dump(Param::getStr('str', 'default'));echo '
';
- ?>
코드 복사
- int(1243)
- int(-1)
- string(5) "hello"
- bool(true)
- array(4) { [ 0]=> 문자열(1) "1" [1]=> 문자열(1) "2" [2]=> 문자열(1) "3" [3]=> " }
- array(2) { ["a"]=> string(1) "a" ["b"]=> string(1) "b" }
- int(1408603747)
-
-
- array(7) { ["int"]=> int(1243) ["undefine-int"]=> int(-1) ["str"]=> ) "안녕하세요" ["bool"]=> bool(true) ["arr"]=> array(4) { [0]=> 1) "2" [2]=> 문자열(1) "3" [3]=> 문자열(1) "4" } ["json"]=> 배열(2) => string(1) "a" ["b"]=> string(1) "b" } ["date"]=> int(1408603747) }
-
- int(1243)
- string(5) "hello"
코드 복사
- /**
- * 매개변수 관리
- *
- * @author wangaibo168@163.com
- * @charset utf-8
- */
- class Param {
- /**
- *기본 생성자
- */
- 비공개 함수 __construct(){}
- /**
- * 기본 데이터 가져오기
- * @param $name
- * @param null $def
- * @param null $arr
- * @return null
- */
- 공개 정적 함수 getData($name,$def=null,$arr=null){
- if (is_null($name) || $name==='') return $def;
- $name = Trim($name);
- $temp = is_array($arr)?$arr:$_REQUEST;
- if(array_key_exists($name,$temp)) return $temp[$name];
- return $def;
- }
- /**
- * 문자열 데이터 가져오기
- * @param $name
- * @param string $def
- * @param null $arr
- * @return string
- */
- 공용 정적 함수 getStr($name,$def='',$arr=null){
- $value = self::getData($name,$def,$arr);
- return @strval($value );
- }
- /**
- * 수치 데이터 가져오기
- * @param $name
- * @param int $def
- * @param null $arr
- * @return int
- */
- 공개 정적 함수 getInt($name,$def=0,$arr=null){
- $value = self: :getData($name,$def,$arr);
- return @intval($value);
- }
- /**
- * 부울 유형 데이터 가져오기
- * @param $name
- * @param bool $def
- * @param null $arr
- * @return bool
- */
- 공용 정적 함수 getBool( $name,$def=false,$arr=null){
- $value = self::getData($name,$def,$arr);
- if(is_string($value)){
- $value = strtolower($value);
- if($value=='true' || $value=='1') true 반환;
- if($value=='false' || $value=='0') false 반환;
- }
- if(is_int($value) ){
- if($value==1) return true;
- if($value==0) return false;
- }
- if(is_object($value)){
- return $value!=null;
- }
- return $def;
- }
- /**
- * 배열 유형 데이터 가져오기
- * @param $name
- * @param array $def
- * @param null $arr
- * @return array
- */
- 공개 정적 함수 getArray($name,$def=array (),$arr=null){
- $value = self::getData($name,$def,$arr);
- if(!is_array($value)){
- $value = 배열 ($value);
- }
- return $value;
- }
- /**
- * JSON 형식 데이터 가져오기
- * @param $name
- * @param array $def
- * @param null $arr
- * @return array
- */
- 공개 정적 함수 getJson($name,$def=array( ),$arr=null){
- $value = self::getStr($name,null,$arr);
- if($value==null) return $def;
- $value = @ json_decode($value,true);
- if(is_array($value) && count($value)>0) return $value;
- return $def;
- }
-
- / **
- * 시간 형식은 2013-12-02 11:00:11이며 타임스탬프로 변환됩니다.
- * @param $name
- * @param int $def
- * @param null $arr
- * @return int
- */
- 공개 정적 함수 getTime($name,$def=0,$arr=null){
- $value = self::getStr($name,'',$arr);
- if(empty($value)) return $def;
- $value = Trim($value);
- if(preg_match('/^([0-9]{4})-([ 0-9]{1,2})-([0-9]{1,2})s ([0-9]{1,2}):([0-9]{1,2}): ([0-9]{1,2})$/',$value,$ret)){
- if(is_array($ret) && count($ret)==7){
- 목록( $t,$y,$m,$d,$h,$mi,$s) = $ret;
- return mktime($h,$mi,$s,$m,$d,$y);
- }else{
- return $def;
- }
- }
- if(preg_match('/^([0-9]{4})-([0-9]{1 ,2})-([0-9]{1,2})$/',$value,$ret)){
- if(is_array($ret) && count($ret)==4){
- list($t,$y,$m,$d) = $ret;
- return mktime(0,0,0,$m,$d,$y);
- }else{
- return $def;
- }
- }
- return $def;
- }
-
- /**
- * 시간 형식은 2013-12-02 11:00:11이며 숫자(14자리)로 변환됩니다.
- * @param $name
- * @param string $def
- * @param null $ arr
- * @return bool|string
- */
- 공개 정적 함수 getDate($name, $def='00000000000000',$arr=null){
- $value = self::getTime($name,0,$arr);
- if($value>0){
- 반환 날짜( 'YmdHis',$value);
- }
- return $def;
- }
-
- /**
- * 格式化字串日期為標準日期
- * @param $value
- * @param bool $full
- * @param string $def
- * @return string
- */
- public static function formatDate($value,$full=false,$def=''){
- if(empty($value)) return $ def;
- $value = trim($value);
- if(preg_match('/^([0-9]{4})([0-9]{2})([0-9] {2})([0-9]{2})([0-9]{2})([0-9]{2})$/',$value,$ret)){
- if (is_array($ret) && count($ret)==7){
- list($t,$y,$m,$d,$h,$mi,$s) = $ret;
- if($y==0 || $m==0 || $d==0) return $def;
- if(!$full && $h==0 && $mi==0 && $s= =0){
- return "$y-$m-$d";
- }
- return "$y-$m-$d $h:$mi:$s";
- } else{
- return $def;
- }
- }
- }
-
- /**
- * 取得浮點數資料
- * @param $name
- * @param int $def
- * @param null $arr
- * @return float
- */
- 公用靜態函數($name,$def=0 ,$arr=null){
- $value = self::getData($name,$def,$arr);
- return @doubleval($value);
- }
-
- / **
- * 取得並將字串轉換為陣列
- * @param $name
- * @param string $limit
- * @param array $def
- * @param null $arr
- * @return array
- */
- 公用靜態函式getStrArray($name,$limit=',',$def=array(),$arr=null){
- $value = self::getStr($ name,'',$arr);
- if(empty($value)) return $def;
- $arr =explode($limit,$value);
- if(!is_array($arr) ) return $def;
- $value = array();
- foreach($arr as $v){
- if(empty($v)) continue;
- $value[] = $v ;
- }
- return $value;
- }
-
- /**
- * 設定原生資料
- * @param $name
- * @param $value
- */
- public static function setData($name,$value){
- if(空($name)) return;
- $_GET[$name] = $value;
- $_POST[$name] = $value;
- $_REQUEST[$name] = $value;
- }
-
- /**
- * 根據舊的資料設定新的原生資料
- * @param $name
- * @param $oldName
- */
- public static function setDataByName($name,$oldName){
- if(empty($name) ||空($oldName)) return;
- $value = self::getData($oldName);
- self::setData($name,$value);
- }
-
- /* *
- * @var string 原生資料型別
- */
- public static $FIELD_TYPE_DATA = 'data';
-
- /**
- * @var string 數值資料型別
- */
- public static $FIELD_TYPE_INT = 'int';
-
- /** * @var string 字串資料型別
- **/
- public static $FIELD_TYPE_STR = 'str';
-
- /**
- * @var string 浮點數資料型別
- */
- public static $FIELD_TYPE_DOUBLE = 'double';
-
-
- ** */
- public static $FIELD_TYPE_BOOL = 'bool';
-
- /**
- * @var string 布林資料型別
- */
- public static $FIELD_TYPE_JSON = 'json';
- public static $FIELD_TYPE_JSON = 'json';
- >
- * @var string JSON資料型別
- */
- public static $FIELD_TYPE_ARRAY = 'array';
-
- /**
- * @var string 陣列資料型別
- */
- public static $FIELD_TYPE_TIME = '時間';
-
- /**
- * @var string 時間戳記資料型別
- */
- public static $FIELD_TYPE_DATE = 'date';
-
- /**
- * @var string 字串時間資料型別
- */
- public static $FID_TY ';
-
- /**
- * @var string 字串陣列資料型別
- */
- 公共靜態函數parse($fields){
- if(!is_array($fields) || count($fields)==0) return array();
- $data = array();
- foreach($fields as $field){
- if(!is_array($field) || count($field)!=3) continue ;
- list($name,$type,$def) = $field;
- if(empty($name) ||empty($type)) continue;
- $type = strtolower($type) ;
- if($type==self::$FIELD_TYPE_DATA){
- $value = self::getData($name,$def);
- }else if($type==self::$ FIELD_TYPE_INT){
- $value = self::getInt($name,$def);
- }else if($type==self::$FIELD_TYPE_STR){
- $value = self::getStr( $name,$def);
- }else if($type==self::$FIELD_TYPE_DOUBLE){
- $value = self::getDouble($name,$ def);
- }else if( $type==self::$FIELD_TYPE_BOOL){
- $value = self::getBool($name,$def);
- }else if($type== self::$FIELD_TYPE_ARRAY){
- $value = self::getArray($name,$def);
- }else if($type==self::$FIELD_TYPE_TIME){
- $value = self::getTime($name,$def);
- }else if($type==self::$FIELD_TYPE_DATE){
- $value = self::getDate($name,$def);
- }else if($type==self::$FIELD_TYPE_JSON){
- $value = self::getJson($name, $def);
- }else if($type==self::$FIELD_TYPE_STRARR){
- $value = self::getStrArray($name,',',$def);
- }else{
- $value = $def;
- }
- $data[$name] = $value;
- }
- return $data;
- }
-
- /**
- * JSON 데이터 형식
- * @param $name
- * @param $fields
- * @param null $arr
- * @return 배열
- */
- 공개 정적 함수 parseJSON($name,$fields,$arr=null){
- if(!is_array($fields) || count($fields)==0) return array( );
- $data = array();
- $temp = self::getJson($name,null,$arr);
- if(!is_array($temp)) $temp = array() ;
- foreach($fields as $field){
- if(!is_array($field) || count($field)!=3) continue;
- list($name,$type,$def ) = $field;
- if(empty($name) || 비어 있음($type)) 계속;
- $type = strtolower($type);
- if($type==self::$FIELD_TYPE_DATA){
- $value = self::getData($name, $def,$temp);
- }else if($type==self::$FIELD_TYPE_INT){
- $value = self::getInt($name,$def,$temp);
- } else if($type==self::$FIELD_TYPE_STR){
- $value = self::getStr($name,$def,$temp);
- }else if($type==self::$ FIELD_TYPE_DOUBLE){
- $value = self::getDouble($name,$def,$temp);
- }else if($type==self::$FIELD_TYPE_BOOL){
- $value = self: :getBool($name,$def,$temp);
- }else if($type==self::$FIELD_TYPE_ARRAY){
- $value = self::getArray($name,$def,$temp );
- }else if($type==self::$FIELD_TYPE_TIME){
- $value = self::getTime($name,$def,$temp);
- }else if($type ==self::$FIELD_TYPE_DATE){
- $value = self::getDate($name,$def,$temp);
- }else if($type==self::$FIELD_TYPE_JSON){
- $value = self::getJson($name,$def,$temp);
- }else if($type==self::$FIELD_TYPE_STRARR){
- $value = self::getStrArray($name ,',',$def,$temp);
- }else{
- $value = $def;
- }
- $data[$name] = $value;
- }
- $data 반환;
- }
- }
- ?>
复제대码
|