php写接口入门

时间:2022-05-03
本文章向大家介绍php写接口入门,主要内容包括了解JSON、写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()."rn";
echo $hybreed->dance()."rn";
echo $hybreed->bite()."rn";

接口存在的意义就是实现“多重继承”,准确的来说应该就做“多重实现“,因为一个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)交流学习心得。