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
和 $_POST
是 superglobals,这意味着它们存在于每个范围内。像这样将 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的主要内容,如果未能解决你的问题,请参考以下文章