我正在使用 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/