本文实例讲述了php实现的返回数据格式化类及其用法,在字符串处理中非常具有实用价值。分享给大家供大家参考。具体方法如下:
DataReturn.class.php类文件如下:
<?php /** 返回数据格式化类 * Date: 2011-08-15 * Author: fdipzone */ class DataReturn{ // class start private $type; private $xmlroot; private $callback; private $returnData; public function __construct($param=array()){ $this->type = $this->exists($param,'type')? strtoupper($param['type']) : 'JSON'; // 类型 JSON,XML,CALLBACK,ARRAY $this->xmlroot = $this->exists($param,'xmlroot')? $param['xmlroot'] : 'xmlroot'; // xml root dom name $this->callback = $this->exists($param,'callback')? $param['callback'] : ''; // JS callback function name $format = array(); $format['retcode'] = $this->exists($param,'format.retcode')? $param['format']['retcode'] : 'retcode';//retcode 对应名称 $format['msg'] = $this->exists($param,'format.msg')? $param['format']['msg'] : 'msg'; //msg 对应名称 $format['data'] = $this->exists($param,'format.data')? $param['format']['data'] : 'data'; //data 对应名称 $result = array(); $result[$format['retcode']] = $this->exists($param,'retcode')? $param['retcode'] : 0; $result[$format['msg']] = $this->exists($param,'msg')? $param['msg'] : ''; $result[$format['data']] = $this->exists($param,'data')? $param['data'] : ''; $this->returnData = $result; } //输出数据 public function data_return(){ ob_clean(); switch($this->type){ case 'JSON': $this->json_return(); break; case 'XML': $this->xml_return(); break; case 'CALLBACK': $this->callback_return(); break; case 'ARRAY': $this->array_return(); break; default: $this->json_return(); } exit(); } //输出JSON格式数据,如有callback参数则返回JSONP格式 private function json_return(){ header('content-type:text/html;charset=utf-8'); if(empty($this->callback)){ echo json_encode($this->returnData); }else{ echo $this->callback.'('.json_encode($this->returnData).');'; } } //输出XML格式数据 private function xml_return(){ header('content-type:text/xml;charset=utf-8'); echo $this->xml_encode($this->returnData,$this->xmlroot); } //输出JSON格式数据,并调用callback方法 private function callback_return(){ header('content-type:text/html;charset=utf-8'); $this->callback = empty($this->callback)? 'callback' : $this->callback; echo "<script type=\"text/javascript\">\r\n"; echo $this->callback."(".json_encode($this->returnData).");\r\n"; echo "</script>"; } //输出数组格式数据 private function array_return(){ header('content-type:text/html;charset=utf-8'); echo '<pre class="brush:php;toolbar:false">'; print_r($this->returnData); echo ''; } //XML编码 private function xml_encode($data, $root='xmlroot', $encoding='utf-8') { $xml = "\n"; $xml.= "\n"; $xml.= $this->data_to_xml($data); $xml.= "" . $root . ">"; return $xml; } //数组转XML格式 private function data_to_xml($data) { if (is_object($data)) { $data = get_object_vars($data); } $xml = ''; foreach ($data as $key => $val) { is_numeric($key) && $key = "item id=\"$key\""; $xml.=""; $xml.= ( is_array($val) || is_object($val)) ? $this->data_to_xml($val) : $this->cdata($val); list($key, ) = explode(' ', $key); $xml.="$key>\n"; } return $xml; } //判断数据是否存在 private function exists($obj,$key=''){ if($key==''){ return isset($obj) && !empty($obj); }else{ $keys = explode('.',$key); for($i=0,$max=count($keys); $i标记 private function cdata($val){ if(!empty($val) && !preg_match('/^[A-Za-z0-9+$]/',$val)){ $val = ''; } return $val; } } // class end ?>
demo示例程序如下:
<?php require_once('DataReturn.class.php'); $param = array( // DataReturn 参数 'type' => 'JSON', // 输出的类型 JSON,XML,CALLBACK,ARRAY 默认为 JSON 'retcode' => '1000', // retcode 的值,默认为0 'msg' => '', // msg 的值,默认为空 'data' => array( // 要输出的数据 'id' => '100', 'name' => 'fdipzone', 'gender' => 1, 'age' => 28 ), 'format' => array( // 输出的数据key格式,默认为 retcode,msg,data 'retcode' => 'status', 'msg' => 'info', 'data' => 'result' ), 'xmlroot' => 'xmlroot', // 当type=XML时,XML根节点名称,默认为xmlroot 'callback' => 'callback' /* 回调方法名称 type=JSON时,默认为空,如不为空,则输出callback({data}); type=CALLBACK时,默认为callback,自动调用页面JS回调方法 */ ); $obj = new DataReturn($param); // 创建DataReturn类对象 $obj->data_return(); // 按格式输出数据 ?>
希望本文所述对大家php程序设计的学习有所帮助。

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。

Fibers在PHP8.1中引入,提升了并发处理能力。1)Fibers是一种轻量级的并发模型,类似于协程。2)它们允许开发者手动控制任务的执行流,适合处理I/O密集型任务。3)使用Fibers可以编写更高效、响应性更强的代码。

PHP社区提供了丰富的资源和支持,帮助开发者成长。1)资源包括官方文档、教程、博客和开源项目如Laravel和Symfony。2)支持可以通过StackOverflow、Reddit和Slack频道获得。3)开发动态可以通过关注RFC了解。4)融入社区可以通过积极参与、贡献代码和学习分享来实现。

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具