1

我有带有获取 2 个参数 $link 和 $text 的 php 页面我想要获取 $link 参数以及其中的所有参数示例

test.php?link=www.google.com?test=test&test2=test2&text=testtext

我想获取链接 = 'www.google.com?test=test&test2=test2' 并获取文本 = testtext

我使用这个 php 脚本

<?php

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

      echo  $text;
      echo  $link;

?>

output

testtext
www.google.com?test=test
4

3 回答 3

3

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

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

这样,google vars 和您的 vars 之间就没有冲突。

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

于 2012-09-09T14:55:17.687 回答
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'];
于 2012-09-09T14:52:29.733 回答
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);
于 2012-09-09T14:52:43.883 回答