国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

微信小程序?qū)崿F(xiàn)與后臺PHP交互

2020-03-22 18:57:45
字體:
供稿:網(wǎng)友
接下來將講后臺如何與前臺進行數(shù)據(jù)及圖片之間的交互,相信這一點是很多人所關(guān)注的,因為當時我實在團隊中負責后臺開發(fā),因此對前端不是特別了解,這里我會貼出前端開發(fā)時的部分代碼截圖,html' target='_blank'>微信小程序的官方api介紹地址是:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-network.html

微信與后臺服務器之間的數(shù)據(jù)通信是調(diào)用wx.request(OBJECT)實現(xiàn)的,官方api接口里有對此說明,

例如前臺向后臺發(fā)送數(shù)據(jù),需要鏈接服務器php作用路徑下的具體php文件,并以key-value形式封裝json格式數(shù)據(jù),請看以下代碼:

url是服務器的域名及isbn.php在服務器的位置,這個位置是相對位置,在我上一篇購買的鏡像里默認php文件路徑為:

/yjdata/www/ ,這就意味著直接放在這個文件夾下的php只需要在域名后直接/+*.php即可,如果為了方便管理在這個目錄下建了一個文件夾則在域名后/文件夾名字/*.php即可。

此外前端向后臺傳輸?shù)臄?shù)據(jù)是以json格式封裝的,如圖中的data里寫的數(shù)據(jù),前面是key,后面是具體的value值,后臺取得時候是要根據(jù)前面的key值取值,此外,method決定了后臺與前臺通過什么方式交流,這里是用的GET方法,后臺與前臺方法必須配對使用,不能一個是GET,另一端是POST,在做微信支付功能時,有些安全性隱私性較高的數(shù)據(jù)必須采用POST進行交互。

這里的前端向后臺傳輸?shù)膔esult是圖書的ISBN碼,因為我們做的小程序有個功能是調(diào)用相機掃描書本后面的條形碼從而獲得ISBN碼,前端將ISBN碼發(fā)送到后臺,后臺程序?qū)⒄{(diào)用第三方豆瓣圖書接口來依據(jù)ISBN碼查詢圖書信息,并將圖書信息返回給前臺,這里我貼出服務器端的代碼供大家參考:

<?php$result=$_GET["result"];/*獲取前端微信小程序掃書的isbn結(jié)果*/
/*與第三方接口通信獲取書本信息*/
$book_info=file_get_contents("https://api.douban.com/v2/book/isbn/:".$result);$jsondecode = json_decode($book_info,true);/*將獲取到的書本信息JSON解碼*/$title=$jsondecode["title"];/*將解碼后書名賦值給title變量*/$author=$jsondecode["author"];/*將解碼后作者賦值給author變量*/$publisher=$jsondecode["publisher"];/*將解碼后出版社名賦值給publisher變量*/echo "title=".$title; /*向前端返回書名*/echo "author=".$author; /*向前端返回作者名*/echo "publisher=".$publisher; /*向前端返回出版社名*/?>

具體的注釋都寫得很詳細,向前臺返回數(shù)據(jù)則直接用echo即可,一般開發(fā)都要與數(shù)據(jù)庫打交道,因此,后臺程序就需要依據(jù)前臺傳來的數(shù)據(jù)對數(shù)據(jù)庫進行操作,這一部分其實也就是接受前臺的數(shù)據(jù),執(zhí)行對應的數(shù)據(jù)庫操作,這一部分只要是講到php數(shù)據(jù)庫操作的都會有,這里我不再進行過多闡述。

此外,對于一個微信小程序來說,圖片是必不可少的,而圖片資源都是存儲在服務器中的,因此如何對圖片進行存儲是一個關(guān)鍵。接下來將結(jié)合一個書本信息的具體插入數(shù)據(jù)庫的過程來進行講解。。。(其實注釋特別詳細)

<?phpheader('content-type:application/json;charset=utf8');$mysql_server_name="localhost";/*數(shù)據(jù)庫服務器名稱*/$mysql_username="root";/*數(shù)據(jù)庫用戶名*/$mysql_password="123456";/*數(shù)據(jù)庫用戶密碼*/$mysql_databasename="zhishu";/*進入數(shù)據(jù)庫后數(shù)據(jù)庫名*/$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_databasename);/*數(shù)據(jù)庫連接語句*/;;$bookname=$_POST["bookname"];/*從小程序前端獲取書本名字*/$authorname=$_POST["authorname"];/*從小程序前端獲取書本作者名字*/$bookintroduce=$_POST["introduce"];/*從小程序前端獲取書本介紹信息*/$bookholder_name=$_POST["openid"];/*從小程序前端獲取書本持有人昵稱*/$bookclass=$_POST['classification'];;/*從小程序前端獲取書本分類*/date_default_timezone_set('PRC'); /*設置默認時區(qū)為中國*/$time=(string)date("Y-m-d-h-i",time());/*獲取時間*/function Unioname($a) /*將時間格式更改的函數(shù)*/{    $a=explode('-',$a);    $a=implode('',$a);    return $a;}$time=Unioname($time);$allowedExts = array("gif", "jpeg", "jpg", "png"); /*這里的內(nèi)容同用戶注冊時代碼含義一樣,只不過那時是為了存用戶頭像并修改用戶頭像名字,這里是存書本圖像并修改書本圖像的名字*/$temp = explode(".", $_FILES["file"]["name"]);//將圖片名字以.分割成兩個字符串$extension = end($temp);     // 獲取圖片后綴名if ((($_FILES["file"]["type"] == "image/gif")        || ($_FILES["file"]["type"] == "image/jpeg")        || ($_FILES["file"]["type"] == "image/jpg")        || ($_FILES["file"]["type"] == "image/pjpeg")        || ($_FILES["file"]["type"] == "image/x-png")        || ($_FILES["file"]["type"] == "image/png"))    && ($_FILES["file"]["size"] < 1024000)   // 小于 1MB    && in_array($extension, $allowedExts)){    if ($_FILES["file"]["error"] > 0) {        echo "錯誤:: " . $_FILES["file"]["error"] . "<br>";    } else {        // 判斷當期目錄下的 upload 目錄是否存在該文件        // 如果沒有 upload 目錄,你需要創(chuàng)建它,upload 目錄權(quán)限為 777        if (file_exists("bookimage/" . $_FILES["file"]["name"])) {            echo $_FILES["file"]["name"] . " 文件已經(jīng)存在。 ";        } else {            // 如果 upload 目錄不存在該文件則將文件上傳到 upload 目錄下            move_uploaded_file($_FILES["file"]["tmp_name"], "bookimage/".$_FILES["file"]["name"]);            $oldname = "bookimage/" . $_FILES["file"]["name"];            $newname = "bookimage/" . $time .$bookholder_name.".".$extension;            rename($oldname, $newname);            $sql_num="select * from book";            $reasult=mysqli_query($conn,$sql_num);            $reasult_num=mysqli_num_rows($reasult); /*將獲取到書本信息插入數(shù)據(jù)庫語句*/            $sql_insert="insert into book (book_id,bookname,authorname,book_intro,bookclass,bookholder_openid,bookpicture_path,is_CunZai,ChengJiao_num) VALUES ($reasult_num+1,'$bookname','$authorname','$bookintroduce','$bookclass','$bookholder_openid','$newname','1',0)";
            if( mysqli_query($conn,$sql_insert))            {                echo "插入書籍成功!";            }            else            {                echo "插入失敗";            }        }    }}mysqli_close($conn); /*關(guān)閉數(shù)據(jù)庫連接*/?>

首先使用$[FILE]全局數(shù)組接受文件,其擁有的幾個屬性如下:

$_FILES["file"]["name"] - 被上傳文件的名稱

$_FILES["file"]["type"] - 被上傳文件的類型

$_FILES["file"]["size"] - 被上傳文件的大小,以字節(jié)計
$_FILES["file"]["tmp_name"] - 存儲在服務器的文件的臨時副本的名稱
$_FILES["file"]["error"] - 由文件上傳導致的錯誤代碼
這是一種非常簡單文件發(fā)送及接收方式,接收到以后對文件名字進行以“.”進行分割,這是為了獲取后綴,接下來要對后綴進行判斷,看是否是常用的圖片后綴格式,如果是并且圖片大小小于1MB,則進行接下來的操作,此時圖片位于緩存區(qū),因此必須將圖片改名后存于圖書圖片的文件夾下,這一部分在代碼里有實現(xiàn),此外,還需要將圖片的路徑與該圖書其他信息一起存到數(shù)據(jù)庫里。到這里基本小程序與后臺大部分能用到的交互我都在這里講了,基本可以完成一個簡單的小程序。

相關(guān)推薦:

微信小程序PHP后臺實現(xiàn)的方法

以上就是微信小程序?qū)崿F(xiàn)與后臺PHP交互的詳細內(nèi)容,更多請關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

上一篇:PHP在線語音合成

下一篇:php $_get[]用法

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 繁峙县| 汨罗市| 手游| 阳新县| 双桥区| 大安市| 海晏县| 吉安县| 吉首市| 定西市| 锦州市| 淮南市| 鱼台县| 疏勒县| 尚义县| 博客| 松滋市| 阜平县| 类乌齐县| 金溪县| 讷河市| 射洪县| 九江县| 长沙县| 龙泉市| 皮山县| 桂平市| 塘沽区| 博罗县| 德令哈市| 济阳县| 永顺县| 区。| 青神县| 泰来县| 汉中市| 霍山县| 山丹县| 抚远县| 黄浦区| 安岳县|