繁体   English   中英

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

[英]How to get params from encoded current URL?

编码网址

www.example.com/apps/?bmFtZTE9QUhTRU4mbmFtZTI9TUFFREEmcGVyY2VudD02NQ

解码的URL

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

现在我想从编码的URL获取参数

ob_start();
$name1 = $_GET['name1'];

您可以使用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]));
     }
  }
?>

您可能在某个变量的某处有已解码的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"

更新:要分割完整的解码URL,可以使用parse_url

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM