多个GET键和;值

时间:2012-10-28 09:46:34

标签: php get

现在已经在google上搜索了将近一周的时间来尝试&找到这个&的答案到目前为止,我没有太多运气。也许我没有问正确的问题。

我要做的是获取一个PHP脚本来测试多个密钥和&来自网址的值&提供所需的内容/功能。无需使用多个文件即可完成工作。

我最初的想法是使用$ _GET来处理信息,当脚本只能使用第一个键时,我才会失败。

<?php
if(isset($_GET['key1'])){
   $key1 = $_GET['key1'];
   echo "Key 1 is - " .$key1. " - There is no other data.";
}
elseif(isset($_GET['key2'])){
   $key2 = $_GET['key2'];
   echo "Key 2 is - " .$key2. " - There is no other data.";
}
else {
   echo "No data provided";
}
?>

希望上面的内容是正确的,因为我必须写出我是如何记住它的,因为它不适用于第二把钥匙。

然后我尝试了另一种方法。

<?php
if(isset($_GET['key1'],$_GET['key2'])){
   if($_GET['key1']){
      $key1 = $_GET['key1'];
      echo "Key 1 is - " .$key1. " - There is no other data.";
   }
   elseif($_GET['key2']){
      $key2 = $_GET['key2'];
      echo "Key 2 is - " .$key2. " - There is no other data.";
   }
   else {
      echo "No data provided";
   }
}
?>

所做的就是给我一个内部服务器错误&amp;现在我被卡住了。

所以我的问题是,我怎样才能处理个人和多个键和同一脚本中的值,而不需要包含其他键? 我也瞄准纯PHP,以便代码可以在linux和Linux上运行。 Windows服务器,这意味着使用.htaccess进行URL重写不是一种选择。

注意!:以上只是一个简单的示例,实际代码将链接到执行任务的功能&amp;输出内容。

目的是允许网址如 example.com/?key1=value1 example.com/?key2=value1 每个键执行单独的功能

3 个答案:

答案 0 :(得分:1)

我不知道我是否理解你,但是这个怎么样?

foreach($_GET as $key => $value) {
    if(!empty($value)) {
        switch($key) {
            case 'key1':
                // do stuff for key1
                break;
            case 'key2':
                // do stuff for key1
                break;
        }
    } else {
        // handle if key is not set
    }
}

答案 1 :(得分:0)

如果我理解你想要的是:

if(isset($_GET['key1']) && isset($_GET['key2'])){
    //both keys are set
} elseif(isset($_GET['key1'])) {
    //only key1 is set
} elseif(isset($_GET['key2'])){
    //only key2 is set
} else {
    //no valid combinations found
}

记下陈述的顺序,降低特异性,就好像你有:

if(isset($_GET['key1'])) {
    //only key1 is set
} elseif(isset($_GET['key2'])){
    //only key2 is set
} elseif(isset($_GET['key1']) && isset($_GET['key2'])){
    //both keys are set
} else {
    //no valid combinations found
}

设置两个键的条件永远不会被触发,因为它在第一个条件下匹配。

答案 2 :(得分:0)

您可以使用此功能:

extract( $_REQUEST, EXTR_PREFIX_ALL, 'f' );

http://fr2.php.net/manual/en/function.extract.php