检索包含链接的变量形式URL

时间:2013-09-10 15:28:53

标签: php variables

说我有以下网址:

http://www.domain.net/?page=offsite&url=https://www.domain.com/LoanRequest/page.aspx?CUID=10414424&LOID=850&ChannelId=4078715104014180815

当我执行以下操作时:

echo($ _GET [“url”]);

我得到以下内容:

https://www.domain.com/LoanRequest/page.aspx?CUID=10414424

这不是整个链接,我知道为什么 - 它假设“&”是一个新的变量...

如何获取整个链接或是否需要对原始链接进行编码?

5 个答案:

答案 0 :(得分:2)

你可以试试这个:

$link = $_GET['url'] . "&LOID=" . $_GET['LOID'] . "&ChannelID=" . $_GET['ChannelID'];

定义原始URL的方式,'url'只会被视为GET参数之一,这意味着您需要单独获取其他GET参数才能构建完整的URL。 更新:根据Ben Fortune的建议更改了url变量。

答案 1 :(得分:1)

如果offsite url的结构不可预测,那么我将使用$_SERVER['QUERY_STRING']并使用字符串函数拉出我需要的东西。如果它是可预测的,我将使用Maxiums2012给出的答案,除非你也控制链接,然后我建议,像其他人一样,在发送之前对场外网址进行urlencode。

答案 2 :(得分:0)

您拥有的网址不正确。

网址基础网址为

http://www.domain.net/

及其参数

page=offsite
url=https://www.domain.com/LoanRequest/page.aspx?CUID=10414424
LOID=850
ChannelId=4078715104014180815

如果你想让LOID和ChannelID与那个url =参数相关联,那么它应该用urlencode()编码为

http://www.domain.net/?page=offsite&url=https://www.domain.com/LoanRequest/page.aspx?CUID=10414424&LOID=850&ChannelId=4078715104014180815

答案 3 :(得分:0)

如果您创建原始链接,则应从url encode

传递所有查询变量

喜欢

$q_url = 'https://www.domain.com/LoanRequest/page.aspx?CUID=10414424&LOID=850&ChannelId=4078715104014180815';

$url = 'http://www.domain.net/?page=offsite&url='.urlencode($q_url); 

然后通过$_GET["url"]你应该得到整个网址

答案 4 :(得分:0)

这是我们最终根据TecBrat的建议做的事情:

//get URL
$offsite_url = $_SERVER['REQUEST_URI'];

//break about URL
$offsite_url = str_replace('/?page=offsite&url=', '' , $offsite_url);

//clean input
$offsite_url = cleaninput($offsite_url);

(cleaninput是一种消毒功能)

我不认为这是理想的解决方案(可能是 - 对反馈持开放态度),但似乎有效。 urlencode似乎是一个更好的解决方案,但这不是一个选择。