-3

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

它不工作。请帮助我。

4

3 回答 3

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

于 2012-07-10T05:48:17.633 回答
1

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

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
于 2012-07-10T05:52:44.360 回答
0

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

于 2012-07-10T05:47:06.253 回答