php写接口入门

了解JSON

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 JSON 具有自我描述性,更易理解

JSON 是存储和交换文本信息的语法。类似 XML。

JSON 比 XML 更、更,更易解析

格式转化

学习了php的基本语法的你们肯定知道数组Array这个基本数据啦,因为我们前端显示出的数据库数据一般由数组表示的,那么基本数据数组和JSON之间要怎么转换呢?

jsonencode():将基本数据数组转换为json格式 jsondeconde():将json格式转化为基本数据数组格式

ps:从后台返回数据(echo $json)到前台,获得数据时候,一般同学都是选择用eval()函数来进行格式转化,考虑到对项目安全性问题,小编个人建议大家少用,而选择用getJSON()函数。它具有相同的功能,而且安全性要强一些。

常见的json格式:

json四原则:

“:”:数据在名称/值对中 “,”:数据由逗号分隔 “{ }”:花括号保存对象 “[ ]”:方括号保存数组

写php接口

个人写接口的时间不长,从网上资料及视频教程中得出经验:写简单接口,就相当写MVC中的MC,只写逻辑代码层,把功能用函数封装起来,到时候include,直接调用就好了。

php接口知识

(如若手机显示不全,可右滑)
interface Animal{
    public function bite();
}

class Man implements People{
    public function say(){
        echo 'i can say';
    }    

    public function dance(){
        echo 'i can dance';
    }
}

class Woman implements People{
    public function say(){
        echo 'i can say girl voice';
    }    

    public function dance(){
        echo 'i can dance like a goose';
    }
}


class Bird implements Animal{
    public function bite(){
        echo 'i can bite';
    }
}

class Hybreed implements People,Animal{
    public function say(){
        echo 'i can say';
    }

    public function dance(){
        echo 'i can dance';
    }

    public function bite(){
        echo 'i can bite';
    }
}

$hybreed = new Hybreed;
echo $hybreed->say()."\r\n";
echo $hybreed->dance()."\r\n";
echo $hybreed->bite()."\r\n";

接口存在的意义就是实现“多重继承”,准确的来说应该就做“多重实现“,因为一个php类只能有一个父类,而一个类却可以实现多个接口,就像大一学C++时,上面代码interface.php中的Hybreed类,即实现了people接口,又实现了Animal接口,而通过这种多重继承,最终的$hybreed即获得了人类的say和dance的方法,又获得了动物的bite方法。而Man类和Woman类分别实现People的接口,采用不同的内容去重写了say和dance方法,正是一种多态的体现。

登录注册api接口实例

(如若手机显示不全,可右滑)
//数据库连接部分--开始
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password=""; // 连接数据库密码
$mysql_database="hello"; // 数据库的名字

 // 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);
if(!$conn) {
    echo "数据库连接失败!".mysql_error;
}
mysql_select_db($mysql_database, $conn);
//数据库部分--结束

/* 登录、注册、修改个人信息、显示用户接口‘菜单’代码--开始*/

//获取url参数
$action = isset($_POST['action']) ? $_POST['action'] : '';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$psd = isset($_POST['psd']) ? $_POST['psd'] : '';

if($action=='login') {
    login($name, $psd, true);
} else if($action=='register') {
    register($name, $psd);
} else if($action=='modifyPsd') {
    modifyPsd($name, $psd);
} else if($action=='showAll') {
    showAll();
} else {
    $result = array("result"=>"error_request");//返回一个错误提示
    $json = json_encode($result);
    echo $json;

close_conn();
/*‘菜单’代码--结束*/

/*用户登录*/
function login($name, $psd, $normal) {
    global $conn;
    if($conn) {
        $result = mysql_query("select name,psd from student");
        $success = false;
        while($row = mysql_fetch_array($result)) {
            if($name == $row['name'] && $psd == $row['psd']) {
                $success = true;
            }
        }
        if($normal) {
            $login_result = array('login_result'=>$success);
            $json = json_encode($login_result);
            echo $json;
        }
    }
    return $success;
}

/*用户注册*/
function register($name, $psd) {
    $tel = $_POST['tel'];     
    global $conn;

    if($conn) {
        //数据库查询
        $result = mysql_query("select name from student");
        $exist = false;
        while($row = mysql_fetch_array($result)) {
            if($name == $row['name']) {
                //注册失败,用户名已存在;
                $exist = true;
                $register_result = array("register_result"=>false,"error_code"=>0);
                $json = json_encode($register_result);
                echo $json;
            }
        }
        //插入数据库         
        if(!$exist) {
            $id = mysql_num_rows($result) + 1;
            $success = mysql_query("insert into student values('$id', '$name', '$tel', '$psd')");
            if($success) {
                //注册成功
                $register_result = array("register_result"=>$success);
                $json = json_encode($register_result);
                echo $json;
            } else {
                //注册失败,数据库插入错误
                $register_result = array("register_result"=>$success,"error_code"=>1);
                $json = json_encode($register_result);
                echo $json;
            }
        }           
    }
}

/*修改登录密码*/
function modifyPsd($name, $psd) {
    $newpsd = $_POST['newpsd'];
    global $conn;

    if($conn) {
        //用户登录
        $login_result = login($name, $psd, false);
        //修改密码
        if($login_result) {
            $success = mysql_query("update student set psd='$newpsd' where name='$name'");
            if($success) {
                //修改成功
                $modify_result = array("modify_result"=>$success);
                $json = json_encode($modify_result);
                echo $json;
            } else {
                //修改失败,数据库错误
                $modify_result = array("modify_result"=>$success,"error_code"=>1);
                $json = json_encode($modify_result);
                echo $json;
            }
        } else {
                //修改失败,登录失败
                $modify_result = array("modify_result"=>false,"error_code"=>2);
                $json = json_encode($modify_result);
                echo $json;
        }
    }
}

//显示所有用户
function showAll() {
    global $conn;
    if($conn) {
        $result = mysql_query("select * from student");
        $success = false;
        $array_data = array();

        $total = mysql_num_rows($result);
        //$data = array("total"=>$total,"datas"=>array(array("data"=>"123","name"=>"zhugeheng"),
        //                                                                                   array("data"=>"456","name"=>"zhaodanni")
        //                                                                      ));                                         
        while($row = mysql_fetch_array($result)) {
            $array_temp = array("name"=>$row['name'], "tel"=>$row['tel']);
            array_push($array_data, $array_temp);
        }
        $data = array("total"=>$total,"datas"=>$array_data, "result"=>true);         
        $json = json_encode($data);
        echo $json;

    }
}

//关闭连接
function close_conn() {
    global $conn;
    mysql_close($conn);
}
  尊重原创,转载请注明出处:[http://blog.csdn.net/zhugehengheng/article/details/44645287](http://blog.csdn.net/zhugehengheng/article/details/44645287)

在这里,小编在原作者的基础上对代码进行了部分注释,希望对大家的学习有所帮助,也希望有写接口经验的大牛们加我微信(wzc88czw)交流学习心得。

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2018-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏云霄雨霁

Adblock Plus插件过滤介绍

2280
来自专栏Android自学

【转】jQuery验证控件jquery.validate.js使用说明+中文API

1474
来自专栏Core Net

C# 处理Word自动生成报告 三、设计模板

2765
来自专栏web开发

JavaSript模块规范 - AMD规范与CMD规范介绍

JavaSript模块化     在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?     模块化是指在解决某一个复杂问题或者...

1906
来自专栏更流畅、简洁的软件开发方式

分页控件的使用能不能再简单一点呢,能不能一个页面搞定所有的列表需求?

目的: 1、一个页面(DataList.aspx)可以显示多个模块的列表功能。      一般是有一个列表需求就需要一个aspx文件,如果有100个列表,...

2935
来自专栏程序员宝库

10 种最常见的 Javascript 错误

英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript...

3588
来自专栏Python爬虫与数据挖掘

如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入。

742
来自专栏web

vue组件的生命周期

1293
来自专栏精讲JAVA

web.xml 组件加载顺序

在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要。 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前。

945
来自专栏性能与架构

小程序示例 - 不同页面间的消息传递

场景 假设有两个页面:用户列表页、信息编辑页 在列表中点击后某条信息后,进入编辑页面 ? 修改了用户信息后,返回到列表页,列表中需要显示修改后的信息 例如把 “...

3367

扫码关注云+社区