小编典典

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

all

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

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

我怎么做?

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

谢谢。


阅读 119

收藏
2022-04-12

共1个答案

小编典典

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

PHP手册中有一个例子,在这个页面:HTTP上下文选项
(引用)

$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
的优点之一,没有人知道......太糟糕了...... .

2022-04-12