【问题标题】:How to use strstr with $_SERVER['HTTP_REFERER']如何将 strstr 与 $_SERVER['HTTP_REFERER'] 一起使用
【发布时间】:2010-02-23 05:47:58
【问题描述】:

我正在使用 php 来制作它,以便我网站的传入流量将根据搜索引擎附加信息。我正在设置 $_SESSION['kw'],如果尚未设置,请告诉我它是 seo 并附加搜索词:

  if (isset($result['q']))
   $_SESSION['kw'] = 'seo-'.str_replace('\\"',"X",$result['q']);

  elseif (isset($result['p']))
   $_SESSION['kw'] = 'seo-'.$result['p'];

else {some other stuff}

q 是 google、msn 和 ask 用于他们的查询,p 是 yahoo。这涵盖了大部分传入流量。好的,所以现在我想稍微改变一下,如果引用页面是 yahoo,它会附加一个 Y,如果它是 google 一个 G,msn M 等。

我试过了:

if (isset($result['q'])& strstr($_SERVER['HTTP_REFERER'],'google'))
   $_SESSION['kw'] = 'seo-G-'.str_replace('\\"',"X",$result['q']);

elseif (isset($result['q'])& !strstr($_SERVER['HTTP_REFERER'],'google'))
   $_SESSION['kw'] = 'seo-M-'.str_replace('\\"',"X",$result['q']);

  elseif (isset($result['p']))
   $_SESSION['kw'] = 'seo-Y-'.$result['p'];

    else {some other stuff}

但我不能使第一个 IF 为真。如果我来自 ask.com,我会得到“附加的 seo-M”,但即使来自谷歌,我也无法附加它。我只是格式错误吗?

【问题讨论】:

    标签: php referer strstr


    【解决方案1】:

    将 & 更改为 &&。这是大多数编程语言的常用运算符,用于逻辑“与”

    在 PHP 中,你有 && 或 AND 用于逻辑布尔运算。

    & 通常用于位操作,这里是错误的。

    【讨论】:

    • 非常感谢。我有时会被那些东西弄糊涂。
    【解决方案2】:

    我认为您使用了错误的 AND 运算符,您应该使用 && 而不仅仅是 &。单个&符号用于按位运算。

    试试:

    if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 2017-03-29
      • 2020-03-29
      • 2016-07-14
      • 1970-01-01
      相关资源
      最近更新 更多