如何从编码的当前URL获取参数?

时间:2015-05-10 07:26:46

标签: php

编码网址

www.example.com/apps/?bmFtZTE9QUhTRU4mbmFtZTI9TUFFREEmcGVyY2VudD02NQ

解码的网址

www.example.com/apps/?name1=AHSEN&name2=MAEDA&percent=65

现在我想从编码的URL

获取params
ob_start();
$name1 = $_GET['name1'];

2 个答案:

答案 0 :(得分:0)

您可以使用urldecode功能。

这应该让你开始......

<?php
  $query = "my=apples&are=green+and+red";

  foreach (explode('&', $query) as $chunk) {
     $param = explode("=", $chunk);

     if ($param) {
        printf("Value for parameter \"%s\" is \"%s\"<br/>\n",
          urldecode($param[0]), urldecode($param[1]));
     }
  }
?>

答案 1 :(得分:0)

你可能在变量的某个地方有解码的url。如果从中提取查询部分(?之后的部分),则可以将该查询字符串提供给函数parse_str

如果仅使用parse_str作为参数的查询字符串,它会自动设置相应的变量。例如

// whereever you get the query part of your decoded url from
$my_query_string = "name1=AHSEN&name2=MAEDA&percent=65";
// feed it into parse_str
parse_str($my_query_string);

会设置全局变量

$name1
$name2
$percent

但我建议使用parse_str提供的第二个参数,因为它为您提供了更好的控制。为此,请为parse_str提供一个数组作为第二个参数。然后,该函数将查询字符串中的变量设置为该数组中的条目,类似于您从$_GET知道的内容。

// whereever you get the query part of your decoded url from
$my_query_string = "name1=AHSEN&name2=MAEDA&percent=65";
// provide parse_str with the query string *and* an array you want the results in
parse_str($my_query_string, $query_vars);

echo $query_vars['name1']; // should print out "AHSEN"

更新:要拆分完整已解码的网址,您可以使用parse_url