文档章节

PHP开发APP接口

永不止步0929
 永不止步0929
发布于 2016/08/26 14:35
字数 604
阅读 19
收藏 1

PHP开发APP接口

一.php后台给APP android 封装传递数据

1.     json方式封装接口

      <?php

class Response{

       /*

       *按json方式输出通信数据

       *@param integer $code 状态码

       *@param string $message 提示信息

       *@param array $data 数据

       */

       public static function json($code,$message='',$data){

              if(!is_numeric($code)){

                     return '';

              }

              $result=array(

                     'code'=>$code,

                     'message'=>$message,

                     'data'=>$data

              );

              //$result=iconv('GBK' , 'UTF-8',$result);  将utf-8转换为gbk

              echo json_encode($result);

              exit();

       }

}

2.     xml方式封装接口

    /*

  *按xml方式输出通信数据

  *@param integer $code 状态码

  *@param string $message 提示信息

  *@param array $data 数据

  */

    public static function xmlEncode($code,$message,$data=array()){

       if(!is_numeric($code)){

              return '';

       }

       $result=array(

         'code'=>$code,

         'message'=>$message,

         'data'=>$data

  );

  header("Content-Type:text/xml");

  $xml="<?xml version='1.0' encoding='UTF-8'?>\n";

  $xml.="<root>\n";

  $xml.=self::xmlToEncode($result);

       

  $xml.="</root>";

  echo $xml;

    }

    //将数组拼装成xml

    public static function xmlToEncode($data){

       // 注:xml节点不能为数字

       $xml=$atte="";

       foreach ($data as $key => $value) {

              if(is_numeric($key)){

                     $atte="id='{$key}'";

                     $key="item";

              }

              $xml.="<{$key}{$atte}>";

              $xml.=is_array($value) ? self::xmlToEncode($value) : $value;

              $xml.="</{$key}>\n";

       }

       return $xml;

}

3.     综合方式输出通信数据

  /*

  *综合方式输出通信数据

  *@param integer $code 状态码

  *@param string $message 提示信息

  *@param array $data 数据

  *@param array $type 数据类型 默认json

  */

    public static function show($code,$message='',$data=array(),$type='json'){

       if(!is_numeric($code)){

              return '';

       }

       $result=array(

         'code'=>$code,

         'message'=>$message,

         'data'=>$data

  );

  if($type=='json'){

         self::json($code,$message,$data);

         exit;

  }elseif($type=='array'){ //调试模式

         var_dump($result);

  }elseif($type=='xml'){

         self::xmlEncode($code,$message,$data);

  }else{

 

  }

    }

二.Android给PHP后台传递数据(图片)

Android端

1.      //HTTP上传图片  

2.      RequestParams params = new RequestParams();  

3.      try {  

4.          //将压缩后的bitmap保存为图片文件  

5.          String saveImgPath=getSD_Path()+"/saveimg.png";  

6.          File saveimg=new File(saveImgPath);  

7.          FileOutputStream fos = new FileOutputStream(saveimg);  

8.          bmp.compress(Bitmap.CompressFormat.PNG, 100, fos);  

9.          fos.flush();  

10.        fos.close();  

11.        //上传压缩后的文件,大约100k左右  

12.        File uploadImg=new File(saveImgPath);  

13.        <span style="color:#ff0000;">params.put("attach", uploadImg);</span>  

14.    } catch (FileNotFoundException e) {  

15.        e.printStackTrace();  

16.    } catch (IOException e) {  

17.        e.printStackTrace();  

18.    }  

19.    //上传地址  

20.            String url=URLConfigs.UploadHeadImage_ukey+myprefs.Ukey().get();  

21.    <span style="color:#ff0000;">String url="http://192.168.0.8/upload.php";</span>  

22.            LogUtil.e(TAG, "upload img url :"+url);  

23.    AsyncHttpUtil.post_loading(context,url, params, new MyTextHttpResponseHandler() {  

24.        @Override  

25.        public void onSuccess(int status, Header[] arg1, String json) {  

26.            super.onSuccess(status, arg1, json);  

27.            LogUtil.e(TAG, "上传图片  json :"+json);  

28.            RespondBaseEntity entity=GsonUtil.GetFromJson(json, RespondBaseEntity.class);  

29.            if(entity.isStatus()){  

30.                //上传成功,设置图片  

31.                face.setImageBitmap(bmp);  

32.                ToastUtils.show(context, "上传成功");  

33.            }else{  

34.                ToastUtils.show(context, json);  

35.            }  

36.              

37.            myprefs.position().put(0);  

38.        }  

2.PHP端接收

<?php 

         $base_path = "./upload/"; //存放目录 

         if(!is_dir($base_path)){ 

             mkdir($base_path,0777,true); 

         } 

         $target_path = $base_path . basename ( $_FILES ['attach'] ['name'] ); 

         if (move_uploaded_file ( $_FILES ['attach'] ['tmp_name'], $target_path )) { 

             $array = array ( 

                     "status" => true, 

                     "msg" => $_FILES ['attach'] ['name']  

             ); 

             echo json_encode ( $array ); 

         } else { 

             $array = array ( 

                     "status" => false, 

                     "msg" => "There was an error uploading the file, please try again!" . $_FILES ['attach'] ['error']  

             ); 

             echo json_encode ( $array ); 

         } 

?> 

© 著作权归作者所有

共有 人打赏支持
永不止步0929
粉丝 0
博文 29
码字总数 7592
作品 0
海淀
程序员
私信 提问
PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [7] APP 错误日志接口

PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [7] APP 错误日志接口 APP 上线以后可能遇到的问题: ① APP 强退 ② 数据加载失败 ③ APP 潜在问题 错误日志需要记录的内容 数据表 erro...

蜗牛奔跑
2016/10/15
27
0
用PHP写APP接口,现在我也在学习中。。。

现在app这么火,作为一个phper,应该知道如何写app的接口,下面做一个讲解。Index: 第1章 APP接口简介 - 第2章 封装通信接口方法 2-1 JSON方式封装通信接口 (14:39) 2-2 PHP生成XML数据 (12:...

YSail
2018/07/05
0
0
PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计

APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② 版本升级接口开发以及 APP 演示 /** version_upgrade 版本升级信息表 */CREATE TABLE ( smallint(4) unsigned NOT NULL AUTO_...

蜗牛奔跑
2016/10/15
69
0
小蚂蚁学习APP接口开发(9)—— APP版本升级的接口实例

今天的笔记主要来记录最后两个知识要点之一,APP客户端版本升级的接口开发。 APP的开发主要由伟大而神圣的用户来更新,更新的流程应该是这样的: 开启APP——请求初始化接口init.php——检测...

嗜学如命的小蚂蚁
2015/10/21
2.5K
1
PHP开发工程师实习生看过来,有报酬喔~~~~~

我们需要这样的你: 1.有责任心,能够积极处理交给你的任务工作。 2.能有3个月以上的时间实习,每周至少3天时间,上不封顶。 3.技术上希望你对PHP开发有过至少1个项目经验,熟悉APP 后台接口...

万里虎
2016/04/23
826
5

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
今天
6
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
6
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
10
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部