我有一个由
组成的变量 // The First Page (hello.php)
$a = 'goto.php?a_56=63525588000&url=http://www.example.com/site/DISC+cUSTOMc+Studio+24+- +Windows/1142766.p?
id=1218224802931&usi=1142766&cmp=RMX&
ky=2crslw0k9ZOM0ciu2rqi4NsYY7eQnnEyP';
// The Second Page (goto.php)
$r = $_GET['url'];
echo $r;
//http://www.example.com/site/Disc cCustomc Studio 8 - Windows/1142766.p?id=1218224802931
为什么会被切断?
答案 0 :(得分:3)
它正在被切断,因为它将你的url参数中的&
视为实际的GET参数分隔符,而不是。
您需要使用urlencode()对您的网址进行编码。
答案 1 :(得分:3)
因为&
表示查询字符串中键/值对的结束。
使用urlencode准备要包含在查询字符串中的数据。
答案 2 :(得分:3)
&符号用于分隔外部查询字符串中的参数。如果要在GET参数中使用它,则需要对其进行URL编码。
答案 3 :(得分:3)
这不是长度问题,因为你想要一个GET参数(在这种情况下为url
)包含&
字符。您需要urlencode
此字符,否则它将被解释为请求中的另一个GET参数,而不是url
参数的一部分。
在urlencoding时,&
将变为%26
,您的查询字符串将变为此,
goto.php?a_56=63525588000&url=http://www.example.com/site/DISC+cUSTOMc+Studio+24+-+Windows/1142766.p?id=1218224802931%26usi=1142766%26cmp=RMX%26ky=2crslw0k9ZOM0ciu2rqi4NsYY7eQnnEyP