如何接收由 file_get_contents() 函数发送的值?
Posted
技术标签:
【中文标题】如何接收由 file_get_contents() 函数发送的值?【英文标题】:How to receive values which are sent by file_get_contents() function? 【发布时间】:2011-06-21 05:14:13 【问题描述】:我通过 file_get_contents 发送了值。 我的问题是我无法在 work.php 中接收(打印)GET 方法值。 我正在使用 stream_context_create() 这将创建一个资源 ID。
页面名称 sendvalues.php // 创建一个流 $opts = 数组( 'http'=>数组( '方法'=>“获取”, '电话' => "9848509317", '味精' => “嗨,纳文” ) ); 回声 $context = stream_context_create($opts); $file = file_get_contents('http://www.aakrutisolutions.com/projects/testingsite/smstest/sms_http_curl/work.php', false, $context); 回声$文件; 页面名称 work.php 回声“”; print_r($_GET); /// 我无法获取我的查询字符串值 回声“”;
【问题讨论】:
我观察到几个点,比如提问的方式应该很清楚。我说的对吗? 【参考方案1】:您的数组不正确。查看http://php.net/manual/en/function.file-get-contents.php 的示例。 您不能简单地将 POST 参数添加到上下文数组中。
POST 请求的正确上下文数组如下所示:
$opts = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query(array(
'phone' => 9848509317,
'msg' => 'hi naveen'
))
)
);
或者直接使用 GET(正如您在其他脚本中所期望的那样),因此将参数放在 URL 中(使用 http_build_query()
构建查询字符串)。
【讨论】:
【参考方案2】:只需将您的参数 url 编码附加到您的 url:
$file = file_get_contents('http://www.aakrutisolutions.com/projects/testingsite/smstest/sms_http_curl/work.php?phone=123&msg=hi%20naveen');
您使用的上下文选项...是上下文选项。这里指定了您可以使用 http:http://www.php.net/manual/de/context.http.php 随便放东西就不会传播了。
【讨论】:
非常感谢您的回答,从过去的 1 小时开始,我一直在努力解决这个问题。非常感谢您....以上是关于如何接收由 file_get_contents() 函数发送的值?的主要内容,如果未能解决你的问题,请参考以下文章
file_get_contents('php://input') 数据如何转换成数组
如何使用 CURL 而不是 file_get_contents?