如何在php中使用dot接收URL参数

时间:2013-03-18 16:56:49

标签: php

如何在php中用点动态接收参数。

我知道有一个URL参数"hl",但是参数名称中附加了一些动态值,如

"h1.u", "hl.p"这些参数可以用动态名称吗?

4 个答案:

答案 0 :(得分:2)

看来这是已知的行为,并且有一些解决方法(创建一个函数来获取实际的$ _GET参数)。

查看此问题以获取更多详细信息:Get PHP to stop replacing '.' characters in $_GET or $_POST arrays?

答案 1 :(得分:0)

$_GET是一个枚举数组。

这意味着,您可以循环遍历整个$_GET数组并检查“变体”。

含义参数h1.u位于$_GET['h1.u'];

搜索可以这样工作:

foreach($_GET as $key => $value) {
    if(strpos($key, "h1") !== false) {
        //Do stuff
    }
}

这段代码将遍历整个数组,并在其键的某处找到包含“h1”的任何内容,然后对其执行操作。

strpos如果找不到则会返回boolean false,这就是为什么你需要做一个类型检查而不是检查not 0,因为h1很可能位于0号位置(第一个)字符)

答案 2 :(得分:0)

$gets=array_keys($_GET);
foreach($item in $gets){
  $check1=explode($item, ".");
  if(count($check1) <2){
    //No appended keys recieved
  }

  else{
    $key = $check1[0];
    $apeendedPart= $check1[1];
  }

 //Do something with these two
}

未经测试,可能存在小错误..如果您找到错误,我会更正。

答案 3 :(得分:0)

据我所知,GET变量中不允许使用点字符。 GET用'_'替换它们。如果您的变量自然不会有任何下划线,这很好:在PHP脚本的开头,您只需查找'h1_'的任何动态组合加上整个可能的字母组(或者,调整Ronnie的答案以使用'_ ' 代替 '。')。

我遇到的情况是_是GET变量名中的有效字符,但我需要一种指定'。'的方法。太。所以我使用Javascript来确保所有'。'事先变成'__'(两个下划线),然后我在接收PHP中寻找这个模式。