📌  相关文章
📜  如何在PHP使用 file_get_contents 发布数据?(1)

📅  最后修改于: 2023-12-03 15:08:56.132000             🧑  作者: Mango

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

在PHP中,使用 file_get_contents 函数可以方便地获取远程或本地文件的内容,同时也可以通过设置参数来实现POST提交数据的功能。以下是具体的实现步骤:

1. 设置 POST 数据

首先需要设置 POST 数据,即需要提交的数据。可以使用 PHP 的数组来存储要提交的数据,如下所示:

$data = array(
    'name' => 'John',
    'age' => 30
);
2. 将 POST 数据转换为字符串

将上述数组转换为字符串,可以使用 PHP 的内置函数 http_build_query。调用该函数可以将数组转换为 URL 编码后的字符串,如下所示:

$data = http_build_query($data);
3. 使用 file_get_contents 发布数据

接下来就可以使用 file_get_contents 函数来进行POST提交了。需要通过在 context 的参数中设置 content 来传递数据。同时,还可以设置其他的参数,如请求头、缓存等。以下是具体的实现代码:

$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => $data,
        'timeout' => 60
    )
);

$context = stream_context_create($options);
$result = file_get_contents('http://example.com/api', false, $context);

其中,$options 数组中的 http 键是必需的,用于设置 HTTP 请求相关参数。method 表示请求方法,这里设置为 POST;header 表示请求头;content 表示要提交的数据,这里就是上面转换好的字符串;timeout 表示请求的超时时间,单位为秒。最后,通过 stream_context_create 函数创建一个上下文流,传递给 file_get_contents 函数即可完成 POST 请求。

以上就是如何在 PHP 中使用 file_get_contents 发布数据的方法,代码片段如下:

$data = array(
    'name' => 'John',
    'age' => 30
);

$data = http_build_query($data);

$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => $data,
        'timeout' => 60
    )
);

$context = stream_context_create($options);
$result = file_get_contents('http://example.com/api', false, $context);
参考资料
  • PHP 官方文档:http://php.net/manual/zh/function.file-get-contents.php
  • PHP 官方文档:http://php.net/manual/zh/function.http-build-query.php