什么是“更少的代码所需”的方式,以获得参数从一个URL查询字符串的格式如下?
www.mysite.com/category/subcategory ? myqueryhash
输出应该是:myqueryhash
我知道这种做法:
www.mysite.com/category/subcategory?q=myquery
<?php
echo $_GET['q']; //Output: myquery
?>
什么是“更少的代码所需”的方式,以获得参数从一个URL查询字符串的格式如下?
www.mysite.com/category/subcategory ? myqueryhash
输出应该是:myqueryhash
我知道这种做法:
www.mysite.com/category/subcategory?q=myquery
<?php
echo $_GET['q']; //Output: myquery
?>
当前回答
此外,如果您正在与查询字符串一起查找当前文件名,则只需要以下内容
basename($_SERVER['REQUEST_URI'])
它将为您提供如下示例的信息
file.php吗?__arg1 = val&arg2 =瓦尔
如果你还想要文件的完整路径,以及从根目录开始,例如/folder/folder2/file.php?Arg1 =val&arg2=val然后只是删除basename()函数,只是使用填充
$_SERVER['REQUEST_URI']
其他回答
此外,如果您正在与查询字符串一起查找当前文件名,则只需要以下内容
basename($_SERVER['REQUEST_URI'])
它将为您提供如下示例的信息
file.php吗?__arg1 = val&arg2 =瓦尔
如果你还想要文件的完整路径,以及从根目录开始,例如/folder/folder2/file.php?Arg1 =val&arg2=val然后只是删除basename()函数,只是使用填充
$_SERVER['REQUEST_URI']
我将推荐最佳答案为:
<?php
echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>
假设用户输入http://example.com/?name=Hannes
上面的例子将输出:
你好汉内斯!
感谢@K。沙赫扎德。
当您希望重写查询字符串而不添加任何重写内容时,这将有所帮助。假设你重写/test/?X =y到index.php?Q =test&x=y,你只想要查询字符串。
function get_query_string(){
$arr = explode("?", $_SERVER['REQUEST_URI']);
if (count($arr) == 2){
return "";
}
else{
return "?" . end($arr) . "<br>";
}
}
$query_string = get_query_string();
PHP的方法是使用parse_url函数,该函数解析URL并返回其组件。包括查询字符串。
例子:
$url = 'www.mysite.com/category/subcategory?myqueryhash';
echo parse_url($url, PHP_URL_QUERY); # output "myqueryhash"
完整的文档在这里
$_SERVER['QUERY_STRING']包含您正在查找的数据。
文档
php.net: $_SERVER -手动