Php 在URL查询中解析URL查询

Php 在URL查询中解析URL查询,php,zend-framework2,Php,Zend Framework2,在我的应用程序中的某个时刻,用户被发送到此URL: https://mysite.com/bframe/auth?next=/bframe?foo=bar&foo2=bar2 如您所见,URL中的下一个参数实际上包含一个新的URL查询,该查询以foo和foo2作为参数。要使用以下命令解析Zend2 im中的下一个参数: $next = $this->getController()->getRequest()->getQuery('next', null); 但这只返

在我的应用程序中的某个时刻,用户被发送到此URL:

https://mysite.com/bframe/auth?next=/bframe?foo=bar&foo2=bar2
如您所见,URL中的下一个参数实际上包含一个新的URL查询,该查询以foo和foo2作为参数。要使用以下命令解析Zend2 im中的下一个参数:

$next = $this->getController()->getRequest()->getQuery('next', null);
但这只返回了第一个参数
/bframe?foo=bar
trimming&foo2=bar2,这有点道理,因为getQuery将第一个问号视为查询?我不太明白,问题是,我如何检索next的完整值?

urlencode()
您的“next”内容

然后,您的URL应该如下所示:

https://mysite.com/bframe/auth?next=%2Fbframe%3Ffoo%3Dbar%26foo2%3Dbar2
您将注意到,不再存在任何不明确的
&
字符



由于我不确定您在代码中是如何使用
$next
next的,所以这个概念是对您计划插入到进一步的url查询字符串结构中的任何数据进行url编码

,最好还是使用zend impl(因为这是OP的选择框架),即使它会导致相同的结果。编码url没有任何区别,Z2中的getQuery函数通过编码或不编码返回相同的结果,这是不幸的,因为这是让url以您需要的方式工作所需要的。对不起,我无法进一步协助。
https://mysite.com/bframe/auth?next=%2Fbframe%3Ffoo%3Dbar%26foo2%3Dbar2