【问题标题】:how can i GET request parameters in a URL that contains another parameter?如何在包含另一个参数的 URL 中获取请求参数?
【发布时间】:2014-01-27 16:52:30
【问题描述】:

我无法获取包含另一个参数的值 参数。

网址:

https://mysite.com/test/1234?basic=2&email=utm_source%3Dmobpartner%26utm_medium%3Dcpa%26utm_campaign%3D4gt44t4

告诉我如何获取 utm_campaign 值。

【问题讨论】:

  • 我认为 utm_campaign 是 email 的一部分。对吗?

标签: php


【解决方案1】:

https://eval.in/95483工作

首先你需要对你的编码值进行 urldecode:

$string = urldecode($_GET['email']);

然后使用 parse_str() 从中创建一个数组:

parse_str($string, $ary);

这是我提供的链接中的示例代码:

$email='utm_source%3Dmobpartner%26utm_medium%3Dcpa%26utm_campaign%3D4gt44t4';
$string = urldecode($email);
$ary=array();
parse_str($string, $ary);
var_dump($ary);

届时您可以致电$ary['utm_campaign']

【讨论】:

    【解决方案2】:

    $_['utm_source'] 的值是一个 URL 编码的字符串,所以你需要对它进行 URL 解码。然后你可以放入一个关联数组来提取'utm_campaign'的值:

    <?php
     parse_str(urldecode($_GET['utm_source']),$output);
     echo $output['utm_campaign'];
    ?>
    

    【讨论】:

      【解决方案3】:

      你应该用&amp;分隔每个参数。

      像这样: https://mysite.com/test/1234?basic=2&email=&utm_source=mobpartner&utm_medium=cpa&utm_campaign=4gt44t4

      这将产生一个像这样的 $_GET 变量:

      $_GET['email'] = '';
      $_GET['utm_source'] = 'mobpartner';
      $_GET['utm_medium'] = 'cpa';
      $_GET['utm_campaign'] = '4gt44t4';
      

      【讨论】:

        【解决方案4】:

        你的意思是你想得到'4gt44t4',是吗?

        $_GET['utm_campaign'] 不起作用?

        【讨论】:

        • 不,它没有。它不是查询字符串中的参数。
        • 嗯,它是以一种形式出现的吗?我的意思是,如果您尝试 POST 而不是 GET,它仍然不起作用?
        • @Dimas Pante,您的代码将永远无法工作。如果您仔细查看 URL,唯一的参数是 $_GET['utm_source']。此参数包含一个 URL 编码的字符串。
        • 是的,我明白了。首先我试图用参数内部参数来理解他的意思,但后来我明白了.. duh hehe
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        • 2012-10-22
        • 2010-12-07
        • 1970-01-01
        • 2014-03-16
        • 1970-01-01
        相关资源
        最近更新 更多