如何接收由file_get_contents()函数发送的值?

时间:2011-02-04 08:15:31

标签: php function

我通过file_get_contents发送了值 我的问题是我无法在work.php中接收(打印)GET方法值 我正在使用stream_context_create()这将创建一个资源ID。

page name sendvalues.php

// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'phone' => "9848509317",
    'msg'   => "hi naveen"
  )
);

echo $context = stream_context_create($opts);

$file = file_get_contents('http://www.aakrutisolutions.com/projects/testingsite/smstest/sms_http_curl/work.php', false, $context);
echo $file;

page name work.php
echo "
";
print_r($_GET);  /// i am unable to get my query string values
echo "
";

2 个答案:

答案 0 :(得分:3)

只需将您的参数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 :(得分:2)

您的阵列不正确。查看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()构建查询字符串)。