Http post请求使用fopen

时间:2015-10-17 07:22:09

标签: php http-post

在第一个文件中 - 我执行的文件我有以下内容:

<?php   
$name = "Julia";
$article = "I like papers";
$url = "http://domain.com/process.php";
$param = array('http' => array(
          'method' => 'POST',
          'content' => $article

        ));

$mad = @stream_context_create($param);
$fp = @fopen($url, 'rb', false, $mad);
$response = @stream_get_contents($fp);
echo $response;
?>

在第二个文件http://domain.com/process.php中我有这个:

<?php
$name = $_POST["name"];
$article = $_POST["content"];
$article = $_POST["article"];

echo $article;
echo $name;
echo "Hello there</br>:\n";

?>

我得到的输出只是:

 "Hello there"

那么有什么问题,如何通过请求传递$ article和$ name的值以及如何在文件process.php中提取它们?

1 个答案:

答案 0 :(得分:4)

你在内容部分弄错了,使用http_build_query()来构建POST查询。

$param = array( 'http' => array('method' => 'POST',
                                'header' => "Content-type: application/x-www-form-urlencoded\r\n",
                                'content' => http_build_query($data)
                                ));

您的帖子参数应如下所示,其中输入名称为键

$data['name'] = 'Julia';
$data['article'] = 'I like papers';

就个人而言,我会使用curl。