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
и где у него в реге '.' - означает любой символ?

-~{}~ 07.05.07 12:53:

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

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

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

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

-~{}~ 08.05.07 12:18:

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

Сегодня буду пробовать parse_url()
 
ещё смешнее.

боюсь parse_url() тебе не поможет.
она служит для парсинга урлов.
а не для выискивания запрещенных символов.
 
Сверху