如何接收由 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') 数据如何转换成数组

PHP如何接收json数据

如何使用 CURL 而不是 file_get_contents?

如何解决file_get_contents()函数运行时间过长的问题? - 技术问答

如何将file_get_contents转换为cURL

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