array_key_exists

时间:2010-07-23 00:21:54

标签: php

我正在为我的网站实施一些联属网络营销跟踪。联盟网络要求我隐藏网站上的电话号码。

当联盟会员点击指向我网站的链接时,会添加任何网站网址,例如/?source = affiliate& siteid = XXXX; mydomain.com/?source=affiliate&siteid=XXXX

我一直试图隐藏电话号码;

<?php
 if (!array_key_exists('affiliate', $_GET)){
  //Show telephone number
  echo "<li>+44 (0)1234 567891</li>";
 }
?>

但是,这似乎不起作用。理想情况下,我需要默认显示该数字,但如果URL包含网址的affilaite部分,则应隐藏电话号码。

3 个答案:

答案 0 :(得分:4)

在你的$ _GET数组中,source是关键,affiliate是值。 你想要的:

<?php
 if (!in_array('affiliate', $_GET)){
  //Show telephone number
  echo "<li>+44 (0)1234 567891</li>";
 }
?>

<?php
 if (!array_key_exists('source', $_GET)){
  //Show telephone number
  echo "<li>+44 (0)1234 567891</li>";
 }
?>

答案 1 :(得分:4)

听起来你已经混淆了键和值。在网址中,密钥是=左侧的部分,而值则位于右侧。

您想要的条件应为if (!array_key_exists('source', $_GET) || $_GET['source'] != 'affiliate')。这将检查是否已定义source密钥,并且其值为affiliate

答案 2 :(得分:0)

结论:

if (array_key_exists('source', $_GET) && $_GET['source'] == 'affiliate') {
    //Show telephone number
    echo "<li>+44 (0)1234 567891</li>";
}