我怎样才能在包含其他参数的URL中获取请求参数?

时间:2014-01-27 16:52:31

标签: php

  

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

URL:

  

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

告诉我如何获取utm_campaign值。

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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 :(得分:0)

你所说的是你想得到'4gt44t4',是吗?

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

答案 3 :(得分:0)

您应该将每个参数分隔为&

像这样: 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';