函数调用可以作为一个函数的实参

邪皇无悔2022-07-07  18

在前天的介绍文章中,我们谈到了如何高效下载小文件的网络资源。您可以方便地使用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来传入这个函数。

首先,构造请求的参数,即键值对。这里,您需要使用 amp进行多参数连接:

$ postdata = '));

接下来,构建请求结构:

$ opts = array(');

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

$ context = stream _ context _ create($ opts);

写到这里,“万事俱备只欠东风”。我们知道主题函数处理这些参数:

$ result = file _ get _ contents(');

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

前面部分的深入定制没有考虑网络超时、接口授权等等。在本节中,我们将讨论一个更复杂的问题,它需要处理上传的数据。

或者首先裁剪请求正文:

$ opts = array(');

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

然后创建流上下文:

$ context = stream _ context _ create($ opts);

最后一个调用函数:

$ URL = ';

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

写到最后,通过以上两个细节的函数处理,你对file_get_contents()有更深一层的认识了吗?原来这家伙还能这么用。真的是大开眼界!

快乐编码:_)

我是@程序员助手,一直在分享编程知识。欢迎关注。

转载请注明原文地址:https://juke.outofmemory.cn/read/625440.html

最新回复(0)