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 :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
phpstudy是干嘛用的?
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装了,无须配置即可使用,是非常方便、好用的PHP调试环境。
该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。[1]
php能做什么项目?
php能做的项目有:
1、PC端网站开发
60%全球互联网网站在用PHP技术,80%国内互联网网站在用PHP开发。这些网站包含购物网站,政府企业网站,QQ空间,论坛博客等等。
2、 APP后台开发
APP后台开发是移动互联网发展的一个大产物。大多数网站为了让用户在手机上能够得到更好体验效果,都加入APP的开发行列中。而PHP后端技术是最适合APP后台开发的语言。
3、 WebAPP和轻应用开发
微信小程序,就是一种不需要下载安装即可使用的应用,扫一扫即可打开应用。未来这一块肯定是趋势。
涉及领域:跟互联网沾边的全部领域
PHP专注互联网领域开发,它属于后起之秀,吸取了Java和c语言以及perl等语言的优点。在Web领域,PHP语言是国内大部分Web项目开发的首选,并且有很多公司从其它语言(如ASP,Java)转到了PHP。PHP的开发速度快,成本低,周期短,后期维护费用低,开源产品丰富,这些都是另外两种语言无法比拟的,将来一定是互联网的天下。互联网离不开Web,而Web离不开PHP。
php起始结束符有哪几个?
php的开始标记与结束标记有:
1.xml风格(标准风格推荐使用)
代码如下:
<?php
echo"这是xml风格的标记";
?>
xml风格的标记是常用的标记,也是推荐使用的标记,服务器不能禁用,该风格的标记在xml,xhtml中都可以使用。
2.脚本风格
代码如下:
<script languange="php">
echo'这是脚本风格的标记';
</script>
3.简短风格
代码如下:
<?这是简短风格的标记;?>
注:需要在php.ini中设置short _open_tag=on,默认是on,或者在 PHP 编译时加入了 –enable-short-tags 选项。(PHP 3版本还可以通过 short_tags() 函数激活使用短标记。)
4.asp风格
代码如下:
<%
echo'这是asp风格的标记';
%>
我想送花给另一个城市的好朋友,怎么在网上送花?
现在异地送花已经是很方便了,你可以直接在网上订购,操作的流程,就和你在网上购物一样有,你下单付款后,花店会安排人员给您送到收花人手上的。
不过在选择网站上要多注意下: 首先你可以在网站底部看下有没有ICP的许可经营和备案号,这是最基本的要求。 然后,你可以看下网站的公司事迹 可以大概了解到网站的经营时间了。 最后就是看下网站上客户的评价。