【问题标题】:PHP: Grab empty parameter name ?123PHP:获取空参数名称?123
【发布时间】:2014-01-03 00:11:00
【问题描述】:

如何在 PHP 中获取空参数名称,例如http://yoursite.com/?123 > "123" ?

我想用它作为 URL 缩短器从参数重定向到 ID。

【问题讨论】:

标签: php parameters url-parameters


【解决方案1】:

您有内置函数可以解析您的 URL parse_url() 和字符串查询解析器 parse_str()

$url = 'http://yoursite.com/?123&a=b&abc=';
$parsed = parse_url($url);
parse_str($parsed['query'], $query);
var_dump($query);

demo

数组$query 中以空字符串为值的键是您要查找的键。

$filtered = array_filter($query, function($v) { return empty($v); });
#$filtered = array_keys($filtered);
print_r($filtered);

demo

【讨论】:

  • 谢谢,但正如 dimimpou 指出的那样,$_SERVER['QUERY_STRING'] 做得很好。添加了 is_numeric() 和 whoop!
  • @Martin:我错过了这个问题,我以为你在变量中保存了 URL。 p.s.如果有人在 URL 中添加了一些自定义参数怎么办?喜欢?test=abc&123
  • 哦,对不起。然后他失败了,这对成为黑客来说很好:)
  • @Martin: hacker, 大声笑 ;) 一些链接由谷歌或 FB 更改,他们附加了自己的参数。您应该检查这种情况,而不是将其留在“空中”;)
【解决方案2】:

使用array_keys 获取所有密钥。

var_dump(array_keys($_GET));

array(1) { 0 => "123" }

如果您遍历$_GET,也会出现"123",例如foreach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 2011-10-09
    相关资源
    最近更新 更多