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

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

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

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

【问题讨论】:

    标签: php get require-once


    【解决方案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'));
      

      【讨论】:

        猜你喜欢
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 2012-02-29
        • 2011-09-18
        • 2015-07-07
        • 2014-03-12
        • 2014-03-14
        • 2016-08-04
        相关资源
        最近更新 更多