Heim Backend-Entwicklung PHP-Tutorial 参数格式化读取

参数格式化读取

Jul 25, 2016 am 08:47 AM

作为一名phper,今天才发现,从加入osc到现在,分享的各种代码,就只有一篇php.顿觉脸红,特分享在项目中自己写的一个常用类.

GET数据/POST数据/普通数组 通过key返回格式化后的数据
http://www.du52.com/text.php?id=581
  1. include_once('Param.class.php');
  2. // 模拟设置GET/POST数据
  3. $_REQUEST['int'] = '1243';
  4. $_REQUEST['str'] = 'hello';
  5. $_REQUEST['bool'] = 'true';
  6. $_REQUEST['arr'] = '1,2,3,4';
  7. $_REQUEST['json'] = json_encode(array('a' => 'a', 'b' => 'b'));
  8. $_REQUEST['date'] = date('Y-m-d H:i:s');
  9. // 单个数据读取
  10. var_dump(Param::getInt('int', 0));echo '
    ';
  11. var_dump(Param::getInt('undefined-int', -1));echo '
    ';
  12. var_dump(Param::getStr('str', 'default'));echo '
    ';
  13. var_dump(Param::getBool('bool', NULL));echo '
    ';
  14. var_dump(Param::getStrArray('arr', ',', NULL));echo '
    ';
  15. var_dump(Param::getJson('json', NULL));echo '
    ';
  16. var_dump(Param::getTime('date', -1));echo '
    ';
  17. echo '
    ';echo '
    ';
  18. // 批量获取
  19. $fields = array();
  20. $fields[] = array('int', Param::$FIELD_TYPE_INT, 0);
  21. $fields[] = array('undefined-int', Param::$FIELD_TYPE_INT, -1);
  22. $fields[] = array('str', Param::$FIELD_TYPE_STR, 'default');
  23. $fields[] = array('bool', Param::$FIELD_TYPE_BOOL, 0);
  24. $fields[] = array('arr', Param::$FIELD_TYPE_STRARR, 0);
  25. $fields[] = array('json', Param::$FIELD_TYPE_JSON, 0);
  26. $fields[] = array('date', Param::$FIELD_TYPE_TIME, -1);
  27. $data = Param::parse($fields);
  28. var_dump($data);
  29. echo '
    ';echo '
    ';
  30. // 获取数组数据
  31. $source = array('int' => '1234', 'str' => 'hello');
  32. var_dump(Param::getInt('int', -1));echo '
    ';
  33. var_dump(Param::getStr('str', 'default'));echo '
    ';
  34. ?>
复制代码
  1. int(1243)
  2. int(-1)
  3. string(5) "hello"
  4. bool(true)
  5. array(4) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" }
  6. array(2) { ["a"]=> string(1) "a" ["b"]=> string(1) "b" }
  7. int(1408603747)
  8. array(7) { ["int"]=> int(1243) ["undefined-int"]=> int(-1) ["str"]=> string(5) "hello" ["bool"]=> bool(true) ["arr"]=> array(4) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" } ["json"]=> array(2) { ["a"]=> string(1) "a" ["b"]=> string(1) "b" } ["date"]=> int(1408603747) }
  9. int(1243)
  10. string(5) "hello"
复制代码
  1. /**
  2. * 参数管理
  3. *
  4. * @author wangaibo168@163.com
  5. * @charset utf-8
  6. */
  7. class Param {
  8. /**
  9. * 默认构造函数
  10. */
  11. private function __construct(){}
  12. /**
  13. * 获取原生数据
  14. * @param $name
  15. * @param null $def
  16. * @param null $arr
  17. * @return null
  18. */
  19. public static function getData($name,$def=null,$arr=null){
  20. if(is_null($name) || $name==='') return $def;
  21. $name = trim($name);
  22. $temp = is_array($arr)?$arr:$_REQUEST;
  23. if(array_key_exists($name,$temp)) return $temp[$name];
  24. return $def;
  25. }
  26. /**
  27. * 获取字符串数据
  28. * @param $name
  29. * @param string $def
  30. * @param null $arr
  31. * @return string
  32. */
  33. public static function getStr($name,$def='',$arr=null){
  34. $value = self::getData($name,$def,$arr);
  35. return @strval($value);
  36. }
  37. /**
  38. * 获取数值数据
  39. * @param $name
  40. * @param int $def
  41. * @param null $arr
  42. * @return int
  43. */
  44. public static function getInt($name,$def=0,$arr=null){
  45. $value = self::getData($name,$def,$arr);
  46. return @intval($value);
  47. }
  48. /**
  49. * 获取布尔类型数据
  50. * @param $name
  51. * @param bool $def
  52. * @param null $arr
  53. * @return bool
  54. */
  55. public static function getBool($name,$def=false,$arr=null){
  56. $value = self::getData($name,$def,$arr);
  57. if(is_string($value)){
  58. $value = strtolower($value);
  59. if($value=='true' || $value=='1') return true;
  60. if($value=='false' || $value=='0') return false;
  61. }
  62. if(is_int($value)){
  63. if($value==1) return true;
  64. if($value==0) return false;
  65. }
  66. if(is_object($value)){
  67. return $value!=null;
  68. }
  69. return $def;
  70. }
  71. /**
  72. * 获取数组类型数据
  73. * @param $name
  74. * @param array $def
  75. * @param null $arr
  76. * @return array
  77. */
  78. public static function getArray($name,$def=array(),$arr=null){
  79. $value = self::getData($name,$def,$arr);
  80. if(!is_array($value)){
  81. $value = array($value);
  82. }
  83. return $value;
  84. }
  85. /**
  86. * 获取JSON类型数据
  87. * @param $name
  88. * @param array $def
  89. * @param null $arr
  90. * @return array
  91. */
  92. public static function getJson($name,$def=array(),$arr=null){
  93. $value = self::getStr($name,null,$arr);
  94. if($value==null) return $def;
  95. $value = @json_decode($value,true);
  96. if(is_array($value) && count($value)>0) return $value;
  97. return $def;
  98. }
  99. /**
  100. * 时间格式为2013-12-02 11:00:11,转换为时间戳
  101. * @param $name
  102. * @param int $def
  103. * @param null $arr
  104. * @return int
  105. */
  106. public static function getTime($name,$def=0,$arr=null){
  107. $value = self::getStr($name,'',$arr);
  108. if(empty($value)) return $def;
  109. $value = trim($value);
  110. 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)){
  111. if(is_array($ret) && count($ret)==7){
  112. list($t,$y,$m,$d,$h,$mi,$s) = $ret;
  113. return mktime($h,$mi,$s,$m,$d,$y);
  114. }else{
  115. return $def;
  116. }
  117. }
  118. if(preg_match('/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/',$value,$ret)){
  119. if(is_array($ret) && count($ret)==4){
  120. list($t,$y,$m,$d) = $ret;
  121. return mktime(0,0,0,$m,$d,$y);
  122. }else{
  123. return $def;
  124. }
  125. }
  126. return $def;
  127. }
  128. /**
  129. * 时间格式为2013-12-02 11:00:11,转换为数字(14位)
  130. * @param $name
  131. * @param string $def
  132. * @param null $arr
  133. * @return bool|string
  134. */
  135. public static function getDate($name,$def='00000000000000',$arr=null){
  136. $value = self::getTime($name,0,$arr);
  137. if($value>0){
  138. return date('YmdHis',$value);
  139. }
  140. return $def;
  141. }
  142. /**
  143. * 格式化字符串日期为标准日期
  144. * @param $value
  145. * @param bool $full
  146. * @param string $def
  147. * @return string
  148. */
  149. public static function formatDate($value,$full=false,$def=''){
  150. if(empty($value)) return $def;
  151. $value = trim($value);
  152. if(preg_match('/^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$/',$value,$ret)){
  153. if(is_array($ret) && count($ret)==7){
  154. list($t,$y,$m,$d,$h,$mi,$s) = $ret;
  155. if($y==0 || $m==0 || $d==0) return $def;
  156. if(!$full && $h==0 && $mi==0 && $s==0){
  157. return "$y-$m-$d";
  158. }
  159. return "$y-$m-$d $h:$mi:$s";
  160. }else{
  161. return $def;
  162. }
  163. }
  164. }
  165. /**
  166. * 获取浮点数据
  167. * @param $name
  168. * @param int $def
  169. * @param null $arr
  170. * @return float
  171. */
  172. public static function getDouble($name,$def=0,$arr=null){
  173. $value = self::getData($name,$def,$arr);
  174. return @doubleval($value);
  175. }
  176. /**
  177. * 获取并将字符串转换为数组
  178. * @param $name
  179. * @param string $limit
  180. * @param array $def
  181. * @param null $arr
  182. * @return array
  183. */
  184. public static function getStrArray($name,$limit=',',$def=array(),$arr=null){
  185. $value = self::getStr($name,'',$arr);
  186. if(empty($value)) return $def;
  187. $arr = explode($limit,$value);
  188. if(!is_array($arr)) return $def;
  189. $value = array();
  190. foreach($arr as $v){
  191. if(empty($v)) continue;
  192. $value[] = $v;
  193. }
  194. return $value;
  195. }
  196. /**
  197. * 设置原生数据
  198. * @param $name
  199. * @param $value
  200. */
  201. public static function setData($name,$value){
  202. if(empty($name)) return;
  203. $_GET[$name] = $value;
  204. $_POST[$name] = $value;
  205. $_REQUEST[$name] = $value;
  206. }
  207. /**
  208. * 根据旧的数据设置新的原生数据
  209. * @param $name
  210. * @param $oldName
  211. */
  212. public static function setDataByName($name,$oldName){
  213. if(empty($name) || empty($oldName)) return;
  214. $value = self::getData($oldName);
  215. self::setData($name,$value);
  216. }
  217. /**
  218. * @var string 原生数据类型
  219. */
  220. public static $FIELD_TYPE_DATA = 'data';
  221. /**
  222. * @var string 数值数据类型
  223. */
  224. public static $FIELD_TYPE_INT = 'int';
  225. /**
  226. * @var string 字符串数据类型
  227. */
  228. public static $FIELD_TYPE_STR = 'str';
  229. /**
  230. * @var string 浮点数据类型
  231. */
  232. public static $FIELD_TYPE_DOUBLE = 'double';
  233. /**
  234. * @var string 布尔数据类型
  235. */
  236. public static $FIELD_TYPE_BOOL = 'bool';
  237. /**
  238. * @var string JSON数据类型
  239. */
  240. public static $FIELD_TYPE_JSON = 'json';
  241. /**
  242. * @var string 数组数据类型
  243. */
  244. public static $FIELD_TYPE_ARRAY = 'array';
  245. /**
  246. * @var string 时间戳数据类型
  247. */
  248. public static $FIELD_TYPE_TIME = 'time';
  249. /**
  250. * @var string 字符串时间数据类型
  251. */
  252. public static $FIELD_TYPE_DATE = 'date';
  253. /**
  254. * @var string 字符串数组数据类型
  255. */
  256. public static $FIELD_TYPE_STRARR = 'strarr';
  257. /**
  258. * 根据数据字段格式化数据
  259. * @param $fields
  260. * @return array
  261. */
  262. public static function parse($fields){
  263. if(!is_array($fields) || count($fields)==0) return array();
  264. $data = array();
  265. foreach($fields as $field){
  266. if(!is_array($field) || count($field)!=3) continue;
  267. list($name,$type,$def) = $field;
  268. if(empty($name) || empty($type)) continue;
  269. $type = strtolower($type);
  270. if($type==self::$FIELD_TYPE_DATA){
  271. $value = self::getData($name,$def);
  272. }else if($type==self::$FIELD_TYPE_INT){
  273. $value = self::getInt($name,$def);
  274. }else if($type==self::$FIELD_TYPE_STR){
  275. $value = self::getStr($name,$def);
  276. }else if($type==self::$FIELD_TYPE_DOUBLE){
  277. $value = self::getDouble($name,$def);
  278. }else if($type==self::$FIELD_TYPE_BOOL){
  279. $value = self::getBool($name,$def);
  280. }else if($type==self::$FIELD_TYPE_ARRAY){
  281. $value = self::getArray($name,$def);
  282. }else if($type==self::$FIELD_TYPE_TIME){
  283. $value = self::getTime($name,$def);
  284. }else if($type==self::$FIELD_TYPE_DATE){
  285. $value = self::getDate($name,$def);
  286. }else if($type==self::$FIELD_TYPE_JSON){
  287. $value = self::getJson($name,$def);
  288. }else if($type==self::$FIELD_TYPE_STRARR){
  289. $value = self::getStrArray($name,',',$def);
  290. }else{
  291. $value = $def;
  292. }
  293. $data[$name] = $value;
  294. }
  295. return $data;
  296. }
  297. /**
  298. * 格式化JSON数据
  299. * @param $name
  300. * @param $fields
  301. * @param null $arr
  302. * @return array
  303. */
  304. public static function parseJSON($name,$fields,$arr=null){
  305. if(!is_array($fields) || count($fields)==0) return array();
  306. $data = array();
  307. $temp = self::getJson($name,null,$arr);
  308. if(!is_array($temp)) $temp = array();
  309. foreach($fields as $field){
  310. if(!is_array($field) || count($field)!=3) continue;
  311. list($name,$type,$def) = $field;
  312. if(empty($name) || empty($type)) continue;
  313. $type = strtolower($type);
  314. if($type==self::$FIELD_TYPE_DATA){
  315. $value = self::getData($name,$def,$temp);
  316. }else if($type==self::$FIELD_TYPE_INT){
  317. $value = self::getInt($name,$def,$temp);
  318. }else if($type==self::$FIELD_TYPE_STR){
  319. $value = self::getStr($name,$def,$temp);
  320. }else if($type==self::$FIELD_TYPE_DOUBLE){
  321. $value = self::getDouble($name,$def,$temp);
  322. }else if($type==self::$FIELD_TYPE_BOOL){
  323. $value = self::getBool($name,$def,$temp);
  324. }else if($type==self::$FIELD_TYPE_ARRAY){
  325. $value = self::getArray($name,$def,$temp);
  326. }else if($type==self::$FIELD_TYPE_TIME){
  327. $value = self::getTime($name,$def,$temp);
  328. }else if($type==self::$FIELD_TYPE_DATE){
  329. $value = self::getDate($name,$def,$temp);
  330. }else if($type==self::$FIELD_TYPE_JSON){
  331. $value = self::getJson($name,$def,$temp);
  332. }else if($type==self::$FIELD_TYPE_STRARR){
  333. $value = self::getStrArray($name,',',$def,$temp);
  334. }else{
  335. $value = $def;
  336. }
  337. $data[$name] = $value;
  338. }
  339. return $data;
  340. }
  341. }
  342. ?>
复制代码


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

See all articles