限制字符长度$ _GET?

时间:2011-05-26 06:25:28

标签: php get

我有一个由

组成的变量
  // 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

为什么会被切断?

4 个答案:

答案 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