1

我正在使用 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”,但即使来自谷歌,我也无法附加它。我只是格式错误吗?

4

2 回答 2

4

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

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

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

于 2010-02-22T21:45:22.503 回答
1

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

尝试:

if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))
于 2010-02-22T21:47:58.347 回答