现在已经在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 每个键执行单独的功能
答案 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' );