【问题标题】:Get the parameter values [closed]获取参数值
【发布时间】:2012-07-10 05:38:13
【问题描述】:

我有多个 php 文件,我想将所有文件合并到一个文件中。所有文件都带有参数。如果某个文件与参数匹配,则应执行该文件,否则应执行其他文件。

它不工作。请帮助我。

【问题讨论】:

  • 如果能包含相关的示例代码就好了。

标签: php parameters get


【解决方案1】:

在“合并”文件的顶部,创建一个以文件为关键字的字典以包含,每个记录包含该页面的参数名称数组,然后将这些与 $_GET(或 $_REQUEST 作为适当的),并在找到匹配项时包含并中断。

$page_parameters = array(
  "person_search.php" => array("first_name","last_name"),
  "edit_post.php" => array("post_id")
);

foreach($page_parameters as $page => $parameters) {
  if($parameters == array_keys($_GET)) {
     include $page;
     break;
  }
}

在这个例子中,如果一个请求带有?first_name=bill&last_name=wilson,它将被传递给person_search.php,如果它带有?post_id=3121,它将被传递给edit_post.php

【讨论】:

    【解决方案2】:

    我假设你的文件是这样的:

    01.php

    <?php
    echo $_GET["var1"];
    ?>
    

    02.php

    <?php
    echo $_GET["var2"];
    ?>
    

    03.php

    <?php
    echo $_GET["var3"];
    ?>
    

    那么,你的 final.php 可以是:

    <?php
    
    //file 01.php
    if(isset($_GET["var1"]){
        echo $_GET["var1"];
        exit();
    }
    
    //file 02.php
    if(isset($_GET["var2"]){
        echo $_GET["var2"];
        exit();
    }
    
    //file 03.php
    if(isset($_GET["var3"]){
        echo $_GET["var3"];
        exit();
    }
    
    ?>
    

    当然不会这么简单,除非你贴一些相关的代码。

    更新:根据您的评论,

    访问第一个文件:read.php?param=dread
    访问第二个文件:read.php?param=dread2 (我的猜测)

    read.php:

    if(isset($_Get['param'])){
        if($param == 'dread'){
            //mycode;
        }
    } 
    

    您可以在read.php 中使用此代码:

    if(isset($_Get['param'])){
    
    $param = $_Get['param'];
    
        if($param == 'dread'){
            //your code for 'dread'
        }
        if($param == 'dread2'){
            //your code for 'dread2'
        }
    } else { // if(isset($_Get['param'])) ENDS
         // your code for the case if $param value is not pre-defined.
    } //else ENDS
    

    【讨论】:

    • 在我的第一个文件中,我使用 'read.php?param=dread' 来传递参数值,并且在 read.php 中我使用的是 if(isset($_Get['param'])) {if(param == 'dread'){//mycode}}}
    • @Abhinav 请通过编辑在您的原始问题中提供代码。
    • 你好,我也想要同样的东西,在这种情况下,只有第一个文件(dread)被调用,dread2 没有被调用。我正在使用这个代码 if($_GET['param'] == 'dread'){}esleif($_GET['param'] == 'dread2'){}else {},这里只调用dread,不调用dread2
    • 我要分享的另一件事是,在我的项目中,一次调用所有文件。
    • @Abhinav 抱歉,我没听懂?您能否通过编辑在上面的问题中进行更多解释并添加圆顶示例代码/数据流?
    【解决方案3】:

    您可以通过查询字符串来检查文件。例如:my~url.com?file=one 在 php 中 if(GET['file'] == 'one'] //execute that file...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-22
      • 2022-01-08
      • 2014-07-18
      • 1970-01-01
      • 2020-08-28
      • 2012-02-01
      相关资源
      最近更新 更多