首页 开发编程 正文

php api怎么制作

app生成token=md5(‘user’.’list′.’abc12@1qwe~456’)=5e549e3c1e808125d1a7e0746625abb6;php$module=$_GET['module']?...

php api怎么制作,Php接口应该加密哪些?

在实际开发中PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作。

下边简单介绍一下API接口的加密方法

如app要请求用户列表,api是“index.php?module=user&action=list”

app生成token = md5 (‘user’.’list′.’abc12@1qwe~456’) = 5e549e3c1e808125d1a7e0746625abb6;

则实际发起请求为 “index.php?module=user&action=list&token=5e549e3c1e808125d1a7e0746625abb6”

服务器端接到请求用同样方法计算token:

<?php

$module = $_GET['module'];

$action = $_GET['action'];

$urltoken = $_GET['token']; //app发送过来的token

$token = md5($module.$action.'abc12@1qwe~456');

if($urltoken != $token){

exit('error');

}else{

echo 'success';

}

PHP用1个函数实现post请求?

引言

前天的文章,我们说到了如何高效的下载网络资源,对于小体积的文件。可以便捷的使用 file_put_contents() 进行请求。与之配对的函数 file_get_contents() 则是读取资源。

今天我们讨论一下,有没有一种可能,使用一个函数,就可以给服务器发送post请求的数据呢?

学习时间

上一段中我们已经提示了,有一个函数可以用于读取网络资源,也就是间接的发起网络请求。默认 file_get_contents()是使用 GET 请求,如果是POST请求按道理也应该做的来。不过要怎么写呢?

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

其参数形式如下:

string file_get_contents( string $filename[, bool $use_include_path = false[, resource $context[, int $offset = -1[, int $maxlen]]]] )

复杂的功能,我们需要组装后面的参数即可。我们需要使用流操作的上下文 context,传入该函数。

首先构造请求的参数,也就是键值对,这里需要使用 & 进行多参数连接:

$postdata = http_build_query( array( 'name' => 'joe', 'age' => '13' ) );

接着构造请求结构体:

$opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $postdata ) );

最重要的一步,创建基于流的上下文,使用

$context = stream_context_create($opts);

写到这里就“万事俱备只欠东风”了。我们隆重地清楚主旨函数处理这些参数:

$result = file_get_contents('http://example.com/submit.php', false, $context);

之后结果,或者错误内容,就会输出到 $result 对象。使用 false 判断,或者使用已知的接口返回数据类型,进一步处理。

深度定制

上一节的内容并没有考虑网络超时,接口授权,等等情形。本节我们说一个复杂度高一些的,要求处理一个https请求,并配置了 basic auth 的 url,并使用 post 上传数据。

首先还是裁剪请求体:

$opts = array('http' => array( 'method' => 'POST', 'header' => "Content-Type: text/xml\r\n.Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n", 'content' => $body, 'timeout' => 60 ) );

注意我们在请求上添加了 header,这是根据目标 url 的要求添加的。$body 就是上一节中的 $postdata 结构类型。

接着创建流上下文:

$context = stream_context_create($opts);

最后调用函数:

$url = 'https://'.$https_server;

$result = file_get_contents($url, false, $context, -1, 40000);

写在最后

通过上面两个细节的函数处理,大家是不是对 file_get_contents() 有了更加深入的看法,原来这家伙还可以这么用,真是开了眼界!

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

java做后台php做前台怎么对接?

有一定规模的系统,大后台用java,通过api与php等轻量平台交互。然后由php与前端交互。这样让数据库与前端隔离,数据层专门处理逻辑运算,系统架构更加安全,稳定。

当然如果项目不大,就没有必要采取该种架构。

你手机里有哪些堪称神器的App?

1.日程管理:时光序

支持根据“艾宾浩斯遗忘曲线”设置日程,被家长、学生誉为辅助学习超级功能。

学习某个知识点后,可自动按照1天、2天、4天、7天、15天的规律生成日程,然后再桌面日期界面显示。

科学学习=科学理论+高效工具+实践

桌面的日期插件支持透明化及颜色设置,支持显示文字提醒(不同颜色)

桌面插件支持经典重要/紧急四象限(深色配置,高级感):

而这几个,只是众多黑科技中的一小部分:

读书、记账、日记、课程表、生理期、事项、打开、专注.......

你要的它都有,没有都是精品。

而且,它还在进化。。。。。

2.免费的语音转文字:笛云听写

语音转文字免费的软件并不多,笛云听写算一个,得到了众多大神推荐的超级小众软件:

每天十个小时免费转写时长:

支持多端同步:

深得网友喜爱:

而且,效果也很好:

(免费的不支持实时语音转写,拉轰目前选择:考拉语音转文字)

3.图片文字识别:全能宝扫描君

好不好用,实践是最好的测试(这是一张打印的表格,并非规整)

识别效果,几乎完美还原:

一键导出到excel:

而这仅仅是它的一部分功能:

最关键的推荐理由:

和它同样级别的软件,需要的RM远远超过它。

4,超级文科软件:全世界

这可能会成为你手机上最酷炫的软件,没有之一。推荐给任何一位朋友,都不会掉价。

时空柱,妥妥的科技感

关系图:一目了然

时空地图:历史+地理

而这,只是冰山一角。

5.有没有一款软件公认为神器:一个木函

真的有一个超级app各种工具功能都有:

其他:

免费看NBA等体育赛事:河豚直播、蓝鲸体育

超级软件,拉轰推荐

拉轰出品,必属精品

怎么通过API调用数据库信息?

你只要给你的网站做一套API就行了,比如adduser.php?username=xxxx&password=xxxx,你只要让客户端访问这个文件就能达到增加用户的效果,当然了这是get的简单方法,你可以设计成带密钥的post方法

本文转载自互联网,如有侵权,联系删除