HTTP_REFERER и preg_match

HTTP_REFERER и preg_match

Добрый день!

Нужно записывать в базу данных информацию о серверах содержащих ся в HTTP_REFERER
Я обрабатываю вот так:

PHP:
preg_match("/^(http:\/\/)*(www\.)?([a-z0-9-.]+[^\/.])/", $_SERVER['HTTP_REFERER'], $regs);
$result=$regs[3];
В итоге иногда получается нориально, типа:
net-search.ru

Но иногда попадает какойто символ:
otkpblto.ru

Пытался, убрать из результата ненужные символы:

PHP:
$result= preg_replace("/[^a-z0-9.-]/", "", $regs[3]);
Непомогло.

Как с этим бороться?

PHP5, MySQL5
 

Kotyara

Новичок
'.' - означает любой символ... надо внимательнее писать
 

Фанат

oncle terrible
Команда форума
Kotyara
и где у него в реге '.' - означает любой символ?

-~{}~ 07.05.07 12:53:

Смирнов Андрей
и какой символ пропал в otkpblto.ru?

если ты хочешь, чтобы здесь за тебя отлаживали твой рег, то ПОТРУДИСЬ привести нормальный пример
с исходной строкой, с результатом, и кодом, который его выводит.

если же тебя интересует не рег, а конечный результат, то в пхп есть функции на каждый чих.
parse_url()
 
Тоесть вот так?
[^a-z0-9\.\-]

Спасибо попробую. А как бы отсеять на первом шаге, чтото соображалка не действует.
 

Фанат

oncle terrible
Команда форума
Если я правильно понимаю, то этот топик - анекдот.
 
Автор оригинала: Фанат
потому что смешной.

-~{}~ 08.05.07 12:18:

очень
Фанат
Смешной, а за время работы измененного скрипта
PHP:
$result= preg_replace("/[^a-z0-9\.\-]/", "", $regs[3]);
в базу попала строка:
bigphonebook.ru
и что означает этот квадратик впереди и как от туда попал непонятно...

Сегодня буду пробовать parse_url()
 

Фанат

oncle terrible
Команда форума
ещё смешнее.

боюсь parse_url() тебе не поможет.
она служит для парсинга урлов.
а не для выискивания запрещенных символов.
 
Изначально из $_SERVER['HTTP_REFERER'] получаем

$result=parse_url ($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
потом останется отбросить www.
 
Сверху