Как использовать strstr с $ _server ['http_referer'
Вопрос
Я использую 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 и просите использования для своих запросов, P для Yahoo. Это покрывает большую часть входящего трафика. Итак, теперь я хочу немного изменить его, чтобы, если страница ссылки была Yahoo, она добавляет Y, если это Google A 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}
Но я не могу сделать первое, если правда. Если я приезжаю с Ask.com, я получаю «SEO-M, добавленное», но я не могу даже приехать из Google, забери его к добавлению. Я просто форматирую это неправильно?
Решение
Измените & to &&. Это обычный оператор для большинства языков программирования для логического »и" "
В PHP у вас есть && или и для логических операций по логике.
и обычно используется для битовых операций, что здесь неправильно.
Другие советы
Я думаю, что вы используете неправильный и оператор, вы должны использовать &&
не просто &
. Анкет Одиночный Ampersand предназначен для битовых операций.
Пытаться:
if (isset($result['q']) && strstr($_SERVER['HTTP_REFERER'],'google'))