微信小程序与后台PHP交互方法实例分析
本文阐述了微信小程序和PHP在后台交互的方法。分享给大家参考,如下:
接下来,我将讨论后台如何与前台交互数据和图片。我相信这是很多人关心的问题,因为我当时在团队负责后台开发,所以对前端了解不多。这里我会贴一些前端开发过程中的代码截图。微信小程序官方api介绍地址为:
https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-network.html
微信与后台服务器的数据通信是通过调用wx.request(OBJECT)实现的,官方api接口中有描述。
比如前台向后台发送数据时,需要将特定的php文件链接到服务器的php动作路径下,以键值的形式封装json格式的数据。请参见以下代码:
url是服务器的域名和isbn.php在服务器上的位置。这个位置是相对位置。我上次购买的图像中的默认php文件路径是:
/yjdata/www/,这意味着直接放在这个文件夹中的php只需要/*。php直接放在域名之后。如果为了方便管理,在这个目录中建立了一个文件夹,可以是/folder name /*。php在域名之后。
此外,从前端传输到后台的数据是以json格式封装的,比如图中数据中写入的数据,前面是一个键,后面是一个特定的值。获取背景时,应根据之前的键值取值。此外,该方法确定背景和前景如何通信。这里使用GET方法。后台和前台方法必须配对,一个不能是GET,另一个是POST。做微信支付功能的时候,有些安全性和私密性都比较高。
这里从前端传到后台的结果是书的ISBN码,因为我们做的小程序有一个调用摄像头扫描书后面条形码获取ISBN码的功能。前端将ISBN码发送到后台,后台程序会调用第三方豆瓣图书接口,根据ISBN码查询图书信息,并将图书信息返回前台。我在这里发布服务器的代码,供您参考:
?PHP $ result=$ _ GET[' result '];/*通过前端微信小程序获取扫描图书的isbn结果*//*与第三方接口沟通获取图书信息*/$ book _ info=file _ Get _ contents(' https://API . douban.com/v2/book/ISBN/:)。$ result);$ JSON code=JSON _ decode($ book _ info,true);/*获取图书信息的JSON解码*/$ title=$ jsondecode[' title '];/*将解码后的图书标题分配给标题变量*/$ author=$ jsondecode[' author '];/*将解码后的作者分配给作者变量*/$ publisher=$ jsondecode[' publisher '];/*将解码的发布者名称分配给发布者变量*/echo 'title='。$ title/*将书的标题返回给前端*/echo 'author='。$作者;/*将作者姓名返回给前端*/echo“publisher=”。$ publisher/*将出版社名称返回前端*/?具体评论写得很详细。echo可以直接用于将数据返回到前台。一般来说,开发必须处理数据库。因此,后台程序需要根据前台传来的数据对数据库进行操作。其实这部分就是接受前台的数据,执行相应的数据库操作。当涉及到php数据库操作时,这一部分总是可用的,所以我在这里不做过多的阐述。
另外,对于一个微信小程序来说,图片是必不可少的,图片资源存储在服务器中,所以如何存储图片是一个关键。接下来,我们将解释将图书信息插入数据库的具体过程。(其实笔记特别详细)
?phpheader(' content-type :应用程序/JSON;charset=utf8’);$ MySQL _ server _ name=' localhost ';/*数据库服务器名称*/$ MySQL _ username=' root ';/*数据库用户名*/$ MySQL _ password=' 123456 ';/*数据库用户密码*/$ MySQL _ database名称=' zhi Shu/*进入数据库后数据库名*/$ conn=MySQL _ connect($ MySQL _ server _ name,$mysql_username,$mysql_password,$ MySQL _ databasename);/*数据库连接语句*/$ book name=$ _ POST[' book name '];/*从小程序前端获取书本名字*/$作者名=$ _ POST['作者名'];/*从小程序前端获取书本作者名字*/$ book introduce=$ _ POST[' introduction '];/*从小程序前端获取书本介绍信息*/$ bookholder _ name=$ _ POST[' open id '];/*从小程序前端获取书本持有人昵称*/$bookclass=$_POST['分类'];/*从小程序前端获取书本分类*/date _ default _ time zone _ set(' PRC ');/*设置默认时区为中国*/$time=(字符串)日期(' Y-m-d-h-i ',时间());/*获取时间*/函数Unioname(美元)/*将时间格式更改的函数*/{ $a=explode('-',$ a);$ a=内爆(',$ a);返回$ a;} $ time=Unioname($ time);$allowedExts=array('gif ',' jpeg ',' jpg ',' png ');/*这里的内容同用户注册时代码含义一样,只不过那时是为了存用户头像并修改用户头像名字,这里是存书本图像并修改书本图像的名字*/$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 ']=' image/pj peg ')|($ _ FILES[' file '][' type ']=' image/x-png ')|($ _ FILES[' type ')小于1MB in _ array($扩展名,$ allowexts)){ if($ _ FILES[' FIle '][' error ']0){ echo '错误: ' .$_FILES['file']['错误'].br ';} else { //判断当期目录下的上传目录是否存在该文件//如果没有上传目录,你需要创建它,上传目录权限为777 if (file_exists('bookimage/').$ _ FILES[' file '][' name ']){ echo $ _ FILES[' file '][' name '].' 文件已经存在。 ';} else { //如果上传目录不存在该文件则将文件上传到上传目录下move _ uploaded _ file($ _ FILES[' file '][' tmp _ name '],' bookimage/' .$ _ FIles[' FIle '][' name ']);$oldname='bookimage/' .$ _ FIles[' FIle '][' name '];$newname='bookimage/' .时间$bookholder_name .'.'。$扩展重命名($oldname,$ new name);$sql_num='从图书中选择* ';$ rea sult=MySQL _ query($ conn,$ SQL _ num);$ reasult _ num=mysqli _ num _ rows($ reasult);/*将获取到书本信息插入数据库语句*/$ SQL _ insert=' insert in book(book _ id,bookname,authorname,book_intro,bookclass,bookholder_openid,bookpicture_path,is_CunZai,成蛟_num) VALUES ($reasult_num 1,' $bookname ',' $authorname ',' $ bookintroduce ',' $bookclass ',' $bookholder_openid ',' $newname ',' 1,0 ');if(MySQL _ query($ conn,$sql_insert)) { echo '插入书籍成功!} else { echo '插入失败;} } } } MySQL _ close($ conn);/*关闭数据库连接*/?首先使用$[FILE]全局数组接受文件,其拥有的几个属性如下:
$_FILES['file']['name'] -被上传文件的名称$_FILES['file']['type'] -被上传文件的类型$_FILES['file']['size'] -被上传文件的大小,以字节计$_FILES['file']['tmp_name'] -存储在服务器的文件的临时副本的名称$_FILES['file']['错误'] -由文件上传导致的错误代码
这是一种非常简单的发送和接收文件的方式。接收后,文件名除以“.”以便获得后缀。接下来要判断后缀,看是不是常用的图片后缀格式。如果是,并且图片大小小于1MB,则进行下一步操作。此时图片位于缓冲区,因此图片必须重命名并存储在图书图片文件夹中。这部分在代码中实现。另外,图片需要保存。在这里,我已经讲了基本小程序和大部分后台的交互,基本上可以完成一个简单的小程序。
希望本文对微信小程序的开发有所帮助。
版权声明:微信小程序与后台PHP交互方法实例分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。