如果我在浏览器中输入以下内容:
http://domain.com/script.php?1234
script.php有以下脚本:
$key=array_keys($_GET);
echo $key[0];
输出将是:
1234
(我正试图废除丑陋的东西?r = 1234如果这样可行,那将是完美的。)
我的问题是,这是正确的还是编程不好?
答案 0 :(得分:4)
答案 1 :(得分:1)
没有什么是正式的,如果它适合你,那么一定要使用它。顺便说一句,问题就是匹配什么价值。
如果你有example.com?1234&4567
那么你将有两个没有键名的值来告诉你它是什么。
但如果你想废除丑陋的网址,你应该看看mod_rewrite
答案 2 :(得分:1)
你不应该使用这种方法。如果您不希望显示变量,可以使用URL rewrite使URL看起来不错。另外,不要忘记清理$ _GET:)
实际上,在你的例子中,1234是你通过GET发送的变量,没有值,如果你想这样看。
答案 3 :(得分:1)
这是对的。该变量名为1234,没有任何值。这意味着
GET['1234'] == '';
您也可以写http://example.com?1234=10然后结果将是
GET['1234'] == '10';
答案 4 :(得分:1)
我的问题是,这是正确的还是编程不好?
没有记录查询 - 参数 - 无值的工作,但它可能会继续在实践中。
如果您只想抓取整个查询字符串而不将其解析为参数,那么最好的办法就是直接说:
echo $_SERVER['QUERY_STRING']
(无论你做什么,不要直接回应它!要么通过例如将它转换为整数来清理值,或者,如果你想允许任意字符串,则通过反斜杠输出它适合于JavaScript的转义 - 转义引号和反斜杠。)