好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
怎样在PHP里使用file_get_contents()提交数据(发送一个POST请求) 关闭 返回上一级  

怎样在PHP里使用file_get_contents()提交数据(发送一个POST请求)
+ 查看更多

发布日期:2018-02-24 17:57
分类:PHP
浏览次数:198
如下:
我使用PHP的函数file_get_contents()来获取URL的内容,然后通过变量$ http_response_header来处理请求头。 现在的问题是,我们需要提交一些数据(例如,登录表单)到目标的URL。
我该怎么做? 我猜可能使用stream_context能够做到,但我不是完全清楚。 谢谢。

回答:

使用file_get_contents提交一个HTTP POST请求不是那么难,事实上,正如你所猜测的,你必须使用$context参数。
下面是PHP说明文档里给出的例子,详情见这里[[http://fr2.php.net/manual/en/context.http.php]]
$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$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);

基本上,你必须使用正确的选项(上面的网页里有完整的列表)创建一个流,使用它作为file_get_contents的第三个参数,这样就ok了;-)
ps:一般来说,要发送HTTP POST请求,我们倾向于使用curl,它提供了很多选项,但是,流是PHP的好东西之一,这很少有人知道,太糟糕了。
上一篇调用未定义的函数curl_init()?
PHP允许的33554432字节的内存大小用尽了(试图分配43148176字节空间)下一篇
下一篇PHP允许的33554432字节的内存大小用尽了(试图分配43148176字节空间)

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号