我正在使用 PHP 的函数file_get_contents()来获取 URL 的内容,然后我通过变量处理标题$http_response_header。
file_get_contents()
$http_response_header
现在的问题是某些 URL 需要一些数据才能发布到 URL(例如,登录页面)。
我怎么做?
我意识到使用 stream_context 我可以做到这一点,但我并不完全清楚。
谢谢。
实际上,使用发送 HTTP POST 请求file_get_contents并不难:正如您所猜测的,您必须使用$context参数。
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 的优点之一,没有人知道......太糟糕了...... .