如何获取并分离附加到url中的查询字符串?PHP
我正在尝试开发一个PHP类,使我能够将查询字符串附加到url中,并根据传递的变量对其进行处理。如何做到这一点 乙二醇 现在我想获取如何获取并分离附加到url中的查询字符串?PHP,php,Php,我正在尝试开发一个PHP类,使我能够将查询字符串附加到url中,并根据传递的变量对其进行处理。如何做到这一点 乙二醇 现在我想获取?var1=a&var2=b&var3=c部分,并基于变量对其进行处理 谢谢你的回复 但是我需要一种方法来获取整个查询字符串,因为我无法确定将发送到URL的变量名,因此$\u get方法无法正常工作 谢谢 更多信息请访问 使用如果参数存储在变量中,则使用。例如: $str = 'var1=a&var2=b&var3=c'; parse_str($str
?var1=a&var2=b&var3=c
部分,并基于变量对其进行处理
谢谢你的回复
但是我需要一种方法来获取整个查询字符串,因为我无法确定将发送到URL的变量名,因此$\u get方法无法正常工作
谢谢
更多信息请访问
使用如果参数存储在变量中,则使用。例如:
$str = 'var1=a&var2=b&var3=c';
parse_str($str);
echo $var1;
是您可能正在寻找的函数这是一个极简类。它应该可以工作,但没有经过测试
<?php
class URLHandler
{
public $get;
public function __construct( $get );
{
$this->get = $get;
}
public function get_var( $var )
{
return htmlspecialchars( $this->get[$var] );
}
public function check_var( $var, $is )
{
if( $this->get_var( $var ) == $is )
{
return true;
}
else
{
return false;
}
}
}
// Below is how you can use this class
$URL = new URLHandler( $_GET );
if( $URL->check_var( 'var1', 'a' ) )
{
echo 'yes your first var is a';
// Here you can add a function or functions which should be loaded if var1 = a
}
else
{
echo 'No, your first var is not a, its '.$URL->get_var( 'var2' );
// Here you can add a function or functions which should be loaded if var1 is not a
}
if( $URL->check_var( 'var2', 'a' ) )
{
echo 'and your second var is a';
}
else
{
echo 'your second var is not a, its '.$URL->get_var( 'var2' );
}
?>
如果希望以字符串形式访问URL参数,可以使用以下选项:
$_SERVER['QUERY_STRING']
但是,我不确定这会比$\u GET
更有用。你说:
我不能确定变量名
您可以使用foreach
循环遍历$\u GET
数组:
foreach ($_GET as $key => $val) {
echo $key . ": " . $val;
}
然而。。。如果您谈论的是任意URL(不一定是请求的URL),那么上述方法将不起作用,因为它们显然不在$\u GET
中。相反,你可以使用
输出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
arg=value
你说的是用来访问网站的URL,还是字符串中包含的URL(例如数据库)?我说的是用来访问网站的URL。但是不要忘记htmlspecialchars()$\u得到,因为否则人们可以使用xss“黑客”你的网站,或者用它做坏事:)+1表示所展示的精彩种类。这应该可以满足OP的所有要求。我忘记了上面提到的几个选项。非常感谢您的回答。
foreach ($_GET as $key => $val) {
echo $key . ": " . $val;
}
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_QUERY);
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
arg=value