php通过get方法从url获取url

时间:2012-09-09 14:43:25

标签: php post parameters get

我有php页面,获得2个参数$ link和$ text 我想获得$ link参数,其中包含所有参数示例

test.php的链接= www.google.com测试=试验&安培;?TEST2 = TEST2&安培;文本= testtext

我想获取link ='www.google.com?test=test&test2=test2' 并获取text = testtext

我使用这个PHP脚本

<?php

      $text = $_GET['text']; 
      $link = $_GET['link'];

      echo  $text;
      echo  $link;

?>

output

testtext
www.google.com?test=test

3 个答案:

答案 0 :(得分:3)

您应该在GET上使用之前对参数进行编码。

echo '<a href="test.php?link=' . urlencode('www.google.com?test=test&test2=test2') . '&text=' . urlencode('testtext') . '">test</a>';

通过这种方式,google vars和你之间没有冲突。

有关详细信息,请参阅urlencode()手册。

答案 1 :(得分:0)

如果要将URL作为参数传递,则必须将其转义。否则,参数将在脚本中显示为$_GET个参数。

您必须使用urlencode()

生成链接
$link = "test.php?link=".urlencode("www.google.com?test=test&test2=test2")."&text=" . urlencode("testtext");

使用字符串时也使用引号:

$text = $_GET['text']; 
$link = $_GET['link'];

答案 2 :(得分:0)

$link_mod = str_replace("?", "&", $_GET['link']);
$array = explode("&", $link_mod);
unset($array[0]); #get rid of www.google.com segment
$segments = array();
foreach ($array as $line) {
   $line_array = explode('=', $line);
   $key = $line_array[0];
   $value = $line_array[1];
   $segments[$key] = $value;
}
print_r($segments);