php - 如何使用 file_get_contents 在 PHP 中发布数据?

标签 php http http-post file-get-contents

我正在使用 PHP 的函数 file_get_contents() 来获取 URL 的内容,然后通过变量 $http_response_header 处理 header 。

现在的问题是某些 URL 需要一些数据才能发布到 URL(例如,登录页面)。

我该怎么做?

我意识到使用 stream_context 我可能能够做到这一点,但我并不完全清楚。

谢谢。

最佳答案

使用 file_get_contents 发送 HTTP POST 请求实际上并不难:正如您所猜测的,您必须使用 $context 参数。


PHP手册中有一个例子,在这个页面:HTTP context options (引用):

$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的第三个参数-- 仅此而已 ;-)


作为旁注:一般来说,为了发送 HTTP POST 请求,我们倾向于使用 curl,它提供了很多选项——但流是 PHP 的优点之一,没有人知道......太糟糕了...... .

关于php - 如何使用 file_get_contents 在 PHP 中发布数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445276/

相关文章:

javascript - Angularjs中ajax单一方法的架构

python - 使用 urllib2 下载网页导致乱码垃圾? (只是有时)

php - 在Elasticsearch上忽略ASCII字符

javascript - 与时间相关的 Jquery 进度条

java - 配置 Tomcat 以发送兼容 IE 7 或 6 的网页

java - 仅在异步任务完成后才需要运行任务

json - 如何在Laravel 5中获取原始json请求有效载荷?

java - Android httppost 响应和加载新的 xml

php - 通过 Docker 容器和 Nginx Web 服务器在 Laravel 中获取用户的 IP 地址

php - 区 block 链api支付模块