2010-06-09 2 views
0

Мой HTTP_REFERER говорит, что это:Сравнить HTTP_REFERER значение

http://www.domain.com/search/?etcetcetcetc... 

Мне нужно сравнить мой HTTP_REFERER искать это:

http://www.domain.com/search 

И если первая часть реферер это, то сделать некоторые код ...

Ex:

if($_SERVER['HTTP_REFERER']=='http://www.domain.com/search'){ 
      do stuff... 

Но сначала я думаю, что мне нужно снять все после слова «поиск».

Я не очень хорошо с регулярными выражениями и такого рода вещи, так что помощь ценится ... Спасибо

ответ

5

Если вы просто хотите проверить, если строка начинается с вашего домена, используйте strpos:

if(strpos($_SERVER['HTTP_REFERER'], 'http://www.domain.com/search') === 0) { 
    // do stuff 
} 
+0

@ the rook, strpos возвращает оба значения 0 (что означает совпадение, начинающееся с первого символа) и false (что означает отсутствие совпадения вообще), что означает 'if (strpos())' будет действовать так, как если бы не было никакого совпадения, если на самом деле есть матч, начинающийся с первого символа. Майкл Мрозек на 100% прав. Сокращение до 'if (strpos())' неверно в этом случае. Однако для функций, которые возвращают только логические значения (а не соединение bool и int), это был бы предпочтительный стиль. –

Смежные вопросы