1. 程式人生 > >PHP開發API介面的例項程式碼

PHP開發API介面的例項程式碼

分享一例php實現API介面的程式碼,實現使用者的註冊、登入、查詢使用者資訊的功能,是學習PHP API開發的不錯例項,有興趣的朋友研究下吧。

PHP API介面的服務端部分

程式碼示例:

<?php
/**

*三目
* PHP開發API介面 服務端

*/
require 'conn.php';
header('Content-Type:text/html;charset=utf-8');
 
$action = $_GET['action'];
switch ($action) {
 
    //註冊會員
    case"adduserinfo";
        $username = lib_replace_end_tag(trim($_GET['username']));
        $password2 = lib_replace_end_tag(trim($_GET['userpassword']));
        $password = md5("$password2" . ALL_PS);
        $email = lib_replace_end_tag(trim($_GET['email']));
 
        if ($username == '' || $password2 == '' || $password == '') {
            $res = urlencode("引數有誤");


            exit(json_encode($res)); //有空資訊
        }
 
        $sql = "select username from `member` where username='$username'";
        $query = mysql-query.html target=_blank class=infotextkey>mysql_query()($sql, $conn);
        $count = mysql_num_rows($query);
 
        if ($count > 0) {
            exit(json_encode(1)); //返回1
表示註冊失敗
        } else {
 
            $addsql = "insert into `member` (username,password,email) values ('$username','$password','$email')";
            mysql_query($addsql);
            exit(json_encode(0)); //返回0表示註冊成功
        }
        break;
 
 
    //查詢使用者資訊
    case"selectuserinfo";
        $username = lib_replace_end_tag($_GET['username']);
        $sql = "select id,username,nickname,mobile from `member` where username='$username'";
        $query = mysql_query($sql, $conn);
        $row = mysql_fetch_array($query);
        foreach ($row as $key => $v) {
            $res[$key] = urlencode($v);
        }
        exit(json_encode($res));
        break;
    //會員登入

    case"userlogin";
        $username = lib_replace_end_tag($_GET['username']);
        $password2 = lib_replace_end_tag(trim($_GET['userpassword']));
        $password = md5("$password2" . ALL_PS);
        $sqluser = "select id,username,password from `member` where username='" . $username . "' and password='" . $password . "'";
        $queryuser = mysql_query($sqluser);
        $rowuser = mysql_fetch_array($queryuser);
        if ($rowuser && is_array($rowuser) && !empty($rowuser)) {
            if ($rowuser['username'] == $username && $rowuser['password'] == $password) {
                if ($rowuser['password'] == $password) {
                    $res = urlencode("登入成功");
                    exit(json_encode($res));
                } else {
                    $res = urlencode("密碼錯誤");
                    exit(json_encode($res));
                }
            } else {
                $res = urlencode("使用者名稱不存在");
                exit(json_encode($res));
            }
        } else {
            $res = urlencode("使用者名稱密碼錯誤");
            exit(json_encode($res));
        }
        /*
         * 0:表示登入成功,1:表示密碼錯誤,2:使用者名稱不存在,3:使用者名稱密碼錯誤
         */
        break;
 
    default:
        exit(json_encode(error));
  }

}

PHP API 客戶端部分

程式碼示例:

<?php
/**
* PHP API介面 客戶端
* edit: 辦公用品
*/
header('Content-Type:text/html;charset=utf-8'); //避免輸出亂碼
 
function httpPost($url, $parms) {
    $url = $url . $parms;
    if (($ch = curl_init($url)) == false) {
        throw new Exception(sprintf()("curl_init error for url %s.", $url));
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    if (is_array($parms)) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data;'));
    }
    $postResult = @curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($postResult === false || $http_code != 200 || curl_errno($ch)) {
        $error = curl_error($ch);
        curl_close($ch);
        throw new Exception("HTTP POST FAILED:$error");
    } else {
        // $postResult=str_replace()("\xEF\xBB\xBF", '', $postResult);
        switch (curl_getinfo($ch, CURLINFO_CONTENT_TYPE)) {
            case 'application/json':
                $postResult = json_decode()($postResult);
                break;
        }
        curl_close($ch);
        return $postResult;
    }
}
$postUrl = "http://pujia.test.com/api/server.php";
 
$p=$_GET['p'];
if ($p =="selectuserinfo") {
 
    $username = $_GET['username'];
    $parms = "?action=selectuserinfo&username=" . $username . "";
 
} elseif ($p =="adduserinfo") {
 
    $username = $_GET['username'];
    $userpassword = $_GET['userpassword'];
    $parms = "?action=adduserinfo&username=" . $username . "&userpassword=" . $userpassword . "";
 
} elseif ($p =="userlogin") {
    $username = $_GET['username'];
    $userpassword = $_GET['userpassword'];
    $parms = "?action=userlogin&username=" . $username . "&userpassword=" . $userpassword . "";
 
}
$res = httpPost($postUrl, $parms); //$parms
$res = json_decode($res);
print_r(urldecode(json_encode($res)));

}

相關推薦

PHP開發API介面例項程式碼

分享一例php實現API介面的程式碼,實現使用者的註冊、登入、查詢使用者資訊的功能,是學習PHP API開發的不錯例項,有興趣的朋友研究下吧。PHP API介面的服務端部分程式碼示例:<?php/***三目* PHP開發API介面 服務端*/require 'conn.

PHP開發api介面安全驗證

php的api介面 在實際工作中,使用PHP寫api介面是經常做的,PHP寫好介面後,前臺就可以通過連結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的來源是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安

PHP開發api介面安全驗證方法一

前臺想要呼叫介面,需要使用幾個引數生成簽名。時間戳:當前時間隨機數:隨機生成的隨機數 簽名:特定方法生成的sign簽名 演算法規則在前後臺互動中,演算法規則是非常重要的,前後臺都要通過演算法規則計算出簽名,至於規則怎麼制定,看你怎麼高興怎麼來。我這個演算法規則是時間戳,隨機數,口令按照首字母大小寫順序排序

ThinkPHP5開發API介面例項

介面功能說明: 前端提交學生學號(sno)給Api,Api介面返回此學生的基本資訊 API介面端 <?php namespace app\index\controller; use thin

PHP開發API介面及使用

服務端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['action']; switch ($action) { //

PHP 開發API接口簽名驗證

獲得 參數表 quest 新的 1.3 alt model mod cti 就安全來說,所有客戶端和服務器端的通信內容應該都要通過加密通道(HTTPS)傳輸,明文的HTTP通道將會是man-in-the- middle及其各種變種攻擊的溫床。所謂man-in-the-mid

PHP開發APP介面之封裝通訊介面

PHP開發APP介面之封裝通訊介面 按json方式輸出通訊資料 /** * 按json方式輸出通訊資料 * @param integer $code 狀態碼 * @param string $message 提示資訊 * @p

Restful規範-開發api介面

web服務互動 我們在瀏覽器中能看到的每個網站,都是一個web服務。那麼我們在提供每個web服務的時候,   都需要前後端互動,前後端互動就一定有一些實現方案,我們通常叫web服務互動方案。   目前主流的三種web服務互動方案:     -- REST ( Representational Stat

PHP 開發 APP 介面--XML篇

1.PHP 生成 XML 資料 ① 拼接字串 ② 使用系統類(DomDocument,XMLWriter,SimpleXML) 例1 使用 PHP 系統類中的 DomDocument 類: <?php $dom = new DomDocument('1.0','utf-8'); $elem

PHP 開發 APP 介面 --JSON、XML結合篇

要求: 1.在一個類中封裝多種資料通訊方法(JSON,XML),並且只通過一個入口選擇需要的資料通訊格式 2.客戶端開發工程師可以自行選擇資料傳輸格式(GET 方式) response.php <?php class Response{ const JSON =

PHP 開發 APP 介面--靜態快取篇

儲存靜態快取即把快取寫入檔案。 /** *按綜合方式輸出通訊資料 *@param string $k 檔名 *@param string $v 快取資料 *@param string $path 路徑 *@return string */ file.php <?p

PHP 開發 APP 介面 --Redis篇

Redis 可以定期將資料備份到磁碟中(持久化),同時不僅僅支援簡單的key/value 型別的資料,同時還提供list,set,hash等資料結構的儲存;Memcache 只是簡單的key/value 快取。   ① 開啟 redis 服務: [[email&

PHP 開發 APP 介面 學習筆記與總結--讀取資料庫方式

方案一:讀取資料庫方式 從資料庫讀取資訊→封裝→生成介面資料 應用場景: 資料時效性比較高的系統   方案二:讀取快取方式 從資料庫獲取資訊(第一次設定快取或快取失效時)→封裝(第一次設定快取或快取失效時)→返回資料          

PHP 開發 APP 介面--讀取快取方式

以靜態快取為例。 list.php: 1 <?php 2 require_once 'response.php'; 3 require_once 'db.php'; 4 require_once 'file.php'; 5 6 $page = isset($_GET['pag

swagger 生成 PHP restful API 介面文件

需求: 為客戶端同事寫介面文件的各位後端同學,已經在各種場合回憶了使用自動化文件工具前手寫文件的血淚史. 我的故事卻又不同,因為首先來說,我在公司是 Android 組負責人,屬於上述血淚史中催死人不償命的客戶端陣營. 但血淚史卻是相通的,沒有自動化文件的日子,對介面

PHP開發APP介面 記錄

用於 把資料返給APP介面使用 ,返回 方式有 xml,json,array class Response { /** * 綜合方式輸出資料 * @param integer $code 狀態碼 * @param string $message 提示資訊 * @param a

Yii2 使用 RESTful 寫API介面 例項

Yii2 使用 RESTful? 注意: 我們使用resTful的同時,需要藉助於測試工具進行地址訪問,例如: 谷歌的PostMAN,火狐的HttpRequester工具來訪問 建立一個控制器  我的工作目錄如圖所示 (首先, 參照下面的目錄圖片,可以看出,我建立了兩個

php儲存過程呼叫例項程式碼

程式碼如下: //比如要呼叫的儲存過程為gxtj(a,b)  $db=new mysqli("localhost","ssss","aaaaa","bbbb");  mysqli_query($db,"SET NAMES utf8");  $result=$db-&

Java呼叫REST API介面例項(get,post方法)

public class RestUtil { //get public void getMethod(String url) throws IOException { URL restURL = new URL(url); HttpURLConn

php開發App介面

APP介面簡介: 什麼是app介面?app介面就是用服務端程式如php寫好的指令碼,以供app客戶端請求而獲得資料的一個東西。比如一個視訊app的首頁,肯定有一些視訊列表,那麼當你開啟這個app時,這個封裝在app裡的這個首頁其實會去請求一個遠端php檔案如:http:/