使用带参数的 file_get_contents 从 PHP 获取请求

Posted

技术标签:

【中文标题】使用带参数的 file_get_contents 从 PHP 获取请求【英文标题】:GET Request from PHP using file_get_contents with parameters 【发布时间】:2011-11-13 05:57:31 【问题描述】:

我想向外部站点发送 GET 请求,但也想发送一些参数

例如,我必须向 example.com 发送 get 请求

我想执行 www.example.com/send.php?uid=1&pwd=2&msg=3&phone=3&provider=xyz

我的代码是:

$getdata = http_build_query(
array(
    'uid' => '1',
    'pwd' => '2',
 'msg'=>'3',
 'phone'=>'9999',
 'provider'=>'xyz'
 )
);

$opts = array('http' =>
 array(
    'method'  => 'GET',
    'content' => $getdata
)
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/send.php', false, $context);

我收到服务器错误。

【问题讨论】:

服务器错误说什么? 【参考方案1】:

content 选项用于POSTPUT 请求。对于GET,您可以将其附加为查询字符串:

file_get_contents('http://example.com/send.php?'.$getdata, false, $context);

此外,method 默认为GET,因此您甚至不需要设置选项,也不需要创建流上下文。因此,对于这种特殊情况,如果您愿意,可以简单地使用第一个参数调用 file_get_contents

【讨论】:

感谢您的回复:之前的代码正在向服务器发送一些数据,但请求没有得到正确处理。但是,使用您建议的代码并出现错误“HTTP Error 1.1” cURL 在处理这类请求等方面不是更好吗? @redskin 你能帮我解决一下 cURL 吗?谢谢 确定人.. 加我Skype @ redskins80。如果我在线,不要犹豫发送一个嗡嗡声! @Anant 1.1 错误? 500?这可能与脚本的接收部分有关。检查你的 php 日志

以上是关于使用带参数的 file_get_contents 从 PHP 获取请求的主要内容,如果未能解决你的问题,请参考以下文章

重构file_get_contents实现一个带超时链接访问的函数

allow_url_fopen和file_get_contents

如果发生重定向,如何在 file_get_contents 之后获取真实的 URL?

file_get_contents 加上 file_exists (在被调用的文件内)

PHP http(file_get_content) GET与POST请求方式

带备注的模板解析类