PHP Require and Include GET

6

我想要在通过url传递GET变量的同时引入一个文件,但是当我写下以下代码时:

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

我遇到了致命错误。有没有其他方法可以实现这个功能,以免出现致命错误?


回顾我在 Stack Overflow 上提出的问题,已经过去了 11 年,感到非常尴尬。 - rolling_codes
4个回答

21

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

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

$namemyfile.php 中可用。


2
当然,只有它们在相同的作用域内,或者包含脚本是非过程化的,或者$name位于全局变量中时才成立。 - mario
在我的情况下,这个不起作用。$name = $_POST['test']; 这里我得到了 $name 的值。但是在 myfile.php 中没有得到 $name 的值。 - Prashant Tapase
如何在全局范围内使用变量? - Prashant Tapase

1
<?php
$getVarsArray = $_GET;
$postVarsArray = $_POST;
/* n number of variables and lines of code*/
include('script-a.php');
?>

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

1
$_GET$_POST超级全局变量,意味着它们存在于每个作用域中。 将GPC超级全局变量复制到另一个变量中是愚蠢透顶,甚至有点疯狂。 不要这样做。 - Charles
1
@Charles,不对这些GET和POST变量进行处理同样是非常愚蠢和近乎疯狂的。我从不这样做。明智的人会处理这些超全局变量,并复制它们并取消POST/GET变量。或者一个多疑的人甚至会编写自己的实现来使用GET/POST变量。这个问题的范围之外,没有被提及。我的错。 - Kumar

0

不必将变量传递到新文件中,因为包含新文件可以维护变量。 请记住$ _GET是一个数组,它可以在脚本内部修改。

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

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

-2

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

解决方案代码

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接