PHP 要求并包含 GET

Posted

技术标签:

【中文标题】PHP 要求并包含 GET【英文标题】:PHP Require and Include GET 【发布时间】:2011-08-11 22:21:27 【问题描述】:

我想要求一个文件但也通过url传递GET变量,但是当我写的时候:

<?php
   require_once("myfile.php?name=savagewood");
?>

我收到一个致命错误。我将如何以不同的方式完成此功能,以免出现致命错误?

【问题讨论】:

【参考方案1】:

变量将照常可用,您不必像这样传递。

$name='savagewood';
require_once("myfile.php");

$name 将在myfile.php 中可用

【讨论】:

当然,前提是它们在同一个范围内,或者包含脚本是非程序性的,或者 $name 位于全局变量中。 在我的情况下这是行不通的。 $name = $_POST['test']; 在这里我得到了 $name 的值。但在myfile.php 中没有获得 $name 的价值; 如何全局使用变量?【参考方案2】:
<?php
$getVarsArray = $_GET;
$postVarsArray = $_POST;
/* n number of variables and lines of code*/
include('script-a.php');
?>

现在在 script-a.php 中可以访问$getVarsArray$postVarsArray,如果您有任何疑问,您可以使用$GLOBALS 在脚本的整个生命周期中访问任何变量。但是使用全局变量是一种罪过。 :)

【讨论】:

$_GET$_POSTsuperglobals,这意味着它们存在于每个范围内。像这样将 GPC 超全局变量复制到另一个变量中是愚蠢的,而且非常疯狂。不要那样做。 @Charles,使用那些 GET 和 POST 变量而不处理它们将同样愚蠢和边缘疯狂。我从来没有这样做。 sane 将处理这些超全局变量并复制它们并取消设置 POST/GET 变量。或者偏执狂甚至可能编写自己的实现来使用 GET/POST var。没有提到这个不在问题范围内的存在。我的错。【参考方案3】:

没有必要将变量传递给新文件,因为通过包含新文件可以维护变量。 记住 $_GET 是一个数组,它可以在脚本中修改。

<?php
   $_GET['name'] = "savagewood";
   require_once("myfile.php");
?>

在这种情况下,$_GET['name'] 可以从“myfile.php”中访问

【讨论】:

【参考方案4】:

我想我已经为您的问题找到了完美的解决方案。您可以使用 PHP 的implode 函数。但我强烈建议使用 Shakti Singh 的代码。

解决方案代码

echo implode(file('http://path-to-your-site/your-dir/myfile.php?name=savagewood'));

【讨论】:

以上是关于PHP 要求并包含 GET的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中需要文件后取消对文件的要求

php 包括并要求PHP

POST和PUT的不同型号要求

CTFShow2021七月赛Web

CTFShow2021七月赛Web

为日期/时间函数设置默认时区(PHP5.3兼容性要求)