什么是“更少的代码所需”的方式,以获得参数从一个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
?>
当前回答
编程语言:PHP
// Inintialize a URL to the variable
$url = 'https://www.youtube.com/watch?v=qnMxsGeDz90';
// Use parse_url() function to parse the URL
// and return an associative array which contains its various components
$url_components = parse_url($url);
// Use the parse_str() function to parse the
// string passed via the URL
parse_str($url_components['query'], $params);
// Display result
echo 'v parameter value is ' . $params['v'];
这对我很管用。
其他回答
$_SERVER['QUERY_STRING']包含您正在查找的数据。
文档
php.net: $_SERVER -手动
函数parse_str()自动将所有查询参数读入数组。
例如,如果URL是http://www.example.com/page.php?x=100&y=200,则代码
$queries = array();
parse_str($_SERVER['QUERY_STRING'], $queries);
将参数值存储到$queries数组中($queries['x']=100, $queries['y']=200)。
查看parse_str的文档
EDIT
根据PHP文档,parse_str()只能与第二个参数(数组)一起使用。在这个URL上使用parse_str($_SERVER['QUERY_STRING'])将创建变量$x和$y,这使得代码容易受到诸如http://www.example.com/page.php?authenticated=1之类的攻击。
编程语言:PHP
// Inintialize a URL to the variable
$url = 'https://www.youtube.com/watch?v=qnMxsGeDz90';
// Use parse_url() function to parse the URL
// and return an associative array which contains its various components
$url_components = parse_url($url);
// Use the parse_str() function to parse the
// string passed via the URL
parse_str($url_components['query'], $params);
// Display result
echo 'v parameter value is ' . $params['v'];
这对我很管用。
如果你想要整个查询字符串:
$_SERVER["QUERY_STRING"]
此外,如果您正在与查询字符串一起查找当前文件名,则只需要以下内容
basename($_SERVER['REQUEST_URI'])
它将为您提供如下示例的信息
file.php吗?__arg1 = val&arg2 =瓦尔
如果你还想要文件的完整路径,以及从根目录开始,例如/folder/folder2/file.php?Arg1 =val&arg2=val然后只是删除basename()函数,只是使用填充
$_SERVER['REQUEST_URI']