失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > PHP模拟发送POST请求之四 加强file

PHP模拟发送POST请求之四 加强file

时间:2023-08-02 21:06:06

相关推荐

PHP模拟发送POST请求之四 加强file

后端开发|php教程

php

后端开发-php教程

PHP模拟发送POST请求之D、加强file_get_contents()发送POST请求,filepostcontents

机电设备企业源码,vscode解析vue代码,ubuntu vi 下载,tomcat 监控连接,sqlite连表更新语句,python爬虫爬取百度代码,ztree php,老陈SEO优化师,盗别人网站源码,dt模板行lzw

使用了笨重fsockopen()方法后,我们开始在PHP函数库里寻找更简单的方式来进行POST请求,这时,我们发现了PHP的文件函数也具有与远程URL交互的功能。

微信商城及小程序源码,ubuntu查询路径命令,tomcat压缩版怎么装,网络推广爬虫抓取,php对接服务器获取数据,商品seo配置lzw

最简单的是fopen()和fread()函数。

rippleos系统源码,vscode lisp配置,ubuntu原生,安卓. Tomcat,sqlite实现多用户,phpcms v9 小说插件,现在前端什么框架最流行,腹部会发光的爬虫,php 蚂蚁,信息seo优化项目,网站跳转源代码,微信 网页 游戏,精美后台管理网页模板lzw

$fp=fopen(http://localhost?query=query, );$content=fread($fp,1024);echo $content;//输出HTML文档信息fclose($fp);

然后是file_get_contents()函数:

$content=file_get_contents(http://localhost?query=query);echo $content;//输出HTML文档信息

但是,我们会发现,通这两种方式我们只能通过GET方式发送信息并读取网页信息,而且,这两种方式还面临着超时,无法处理头信息等问题。

不过,我们仔细查看file_get_contents()的函数原型:

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

我们发现它还有其他可选参数,我们可以通过这些参数的设置,在发送网页请求的同时,POST出我们的数据,下面来解释各个参数的意义。

$filename:不用多说,填写我们要访问的URL字符串就行。

$use_include_path:是否使用文件之前include_path()设置的路径,如果使用,在文件地址找不到时,会自动去include_path()设置的路径去寻找,网页地址中我们设置为false。

$context:环境上下文,resource类型,由函数 stream_context_create() 返回的 context来设置,也是我们进行file_get_contents()函数扩展的重点,接下来再说。

$offset:读取的内容相对文件开始内容的偏移字节,我们读取网页内容,要保证HTML文档的完整性,所以可以设置为0或者不设置,默认为0。

$maxlen:顾名思义,是读取文件的最大字节数,同offset我们不设置,读取网页的全部内容。

通过file_get_contents发送POST请求的重点就在$context参数上面,我们用stream_context_create()函数设置上下文。

stream_context_create()创建的上下文选项即可用于流(stream),也可用于文件系统(file system)。对于像 file_get_contents()、file_put_contents()、readfile()直接使用文件名操作而没有文件句柄的函数来说更有用。stream_context_create()增加header头只是一部份功能,还可以定义代理、超时等。

我们来看stream_context_create()函数的原型:

resource stream_context_create ([ array $options [, array $params ]] )

我们看到,通过传入设置数组用此函数来获取一个资源类型的上下文选项。

$context = stream_context_create(array( //传入数组类型的$option参数http => array( //以HTTP请求为键的设置数组method => POST, //设置请求方法为POSTheader => "Content-type: application/x-www-form-urlencoded",//通过设置头文件来设置POST数据格式content => http_build_query($query_info),//用http_build_query()方法将数组拼合成数据字符串 imeout => 20 //设置请求的超时时间。) ));

设置好上下文,我们通过file_get_contents()函数进行POST数据提交。

$results = file_get_contents(http://localhost, false, $context);

下面是POST请求的完整示例:

$info=[eat=>2kg, un=>10km] ;$url=http://localhost;$context = stream_context_create(array(http => array( method => POST, header => Content-type:application/x-www-form-urlencoded, content => html_build_query($info), imeout => 20) )); $result = file_get_contents($url, false, $context);

如果您觉得本文对您有帮助,您可以找荐或关注我,另外,如果有什么问题,可以在下方留言讨论,谢谢。

/PHPjc/1067640.true/PHPjc/1067640.htmlTechArticlePHP模拟发送POST请求之D、加强file_get_contents()发送POST请求,filepostcontents 使用了笨重fsockopen()方法后,我们开始在PHP函数库里寻找更简单的方…

如果觉得《PHP模拟发送POST请求之四 加强file》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。