You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过file_get_contents()传递PHP变量到外部URL?

解决方案

方案1:GET方式传参(最简单,适合参数不敏感的场景)

你直接把需要传递的变量拼到请求URL的查询字符串里即可,示例代码如下:

<?php
$id = '123456';
// 对参数值做URL编码,避免特殊字符破坏URL格式
$url = "https://www.example.com/user.php?id=" . urlencode($id);
echo file_get_contents($url);
?>

外部站点的user.php对应接收代码:

<?php
$id = $_GET['id'] ?? ''; // 取不到参数时给默认值避免报错
echo $id;
?>

方案2:POST方式传参(适合参数多、或参数内容较敏感的场景)

如果需要用POST请求传参,你可以自定义file_get_contents的请求流上下文,修改请求方式和携带POST参数,示例代码如下:

<?php
$id = '123456';
// 构造POST参数数组
$postData = [
    'id' => $id
];
// 创建HTTP请求上下文
$context = stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query($postData)
    ]
]);
$url = "https://www.example.com/user.php";
// 传入上下文发起POST请求
echo file_get_contents($url, false, $context);
?>

外部站点的user.php对应接收代码:

<?php
$id = $_POST['id'] ?? '';
echo $id;
?>

注意事项

  • 你原来的代码无法生效是因为外部站点的PHP脚本运行在对方服务器上,和你本地代码的变量完全隔离,不可能直接读取你本地的$id,必须通过HTTP请求的参数传递过去
  • 以上方案不需要修改include相关的PHP配置,只要你的环境开启了allow_url_fopen(绝大多数环境默认开启,和外部include权限是独立的两个配置)即可正常使用
  • 传递参数前做好编码处理,避免特殊字符导致请求异常

内容的提问来源于stack exchange,提问作者r0naldinio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:15:03