![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Такой код
Можно ли как-то переписать его красивее? Это сообщение отредактировал(а) champion - 25.10.2011, 08:56 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Если от реферера требуется только хост, то не имеет большого смысла делать ему addslashes.
Вероятно, проще будет выковырять хост с помощью регулярки, так как кроме http бывают еще и https.
примерно такой... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
patap |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 893 Регистрация: 7.5.2005 Где: Украина, Зп Репутация: 26 Всего: 40 |
вот еще интересная функция parse_url есть, тоже может быть уместной
-------------------- На боку кобура болталась, сзади шашка отцовская звякала. Впереди меня все хохотало, а позади все плакало (с) |
|||
|
||||
champion |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
реферер заносится в БД, на всякий случай фильтрую Да, у самого была мысль сделать регулярку, практически такая же
По скорости (parse_url и preg_replace) работают по разному, сейчас как раз выяснил, что parse_url не много, но быстрее регулярки P>S> перед : слеш разве не ставится? Это сообщение отредактировал(а) champion - 25.10.2011, 10:17 |
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
В этом случае работает и так, хотя preg_quote ':' слешит. Не удивительно. Однако parse_url не корректно работает с адресами без http:// , так что в процедуру вычисления скорости нужно включить еще механизм "дописывания" протокола к неполному урлу ![]() Это сообщение отредактировал(а) ksnk - 25.10.2011, 10:42 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Так и сделал.
Тем не менее быстрее чем preg_replace. Это сообщение отредактировал(а) champion - 25.10.2011, 11:47 |
|||
|
||||
Absinthe |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Все нормально. |
||||||
|
|||||||
bars80080 |
|
||||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а хост где?
|
||||||||
|
|||||||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
bars80080, ну все правильно же, разве нет?
site.com/1/2?p=3#4 - это то же самое, что и current-scheme://current-host/site.com/1/2?p=3#4 Это сообщение отредактировал(а) Absinthe - 25.10.2011, 17:28 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Absinthe, parse_url работает ПРАВИЛЬНО с точки зрения структуры url, но не КОРРЕКТНО с точки зрения решаемой задачи.
Простой юзер, когда видит в тексте строчку site.com/1/2 искренне верит, что она ведет на site.com, а совсем даже не на current-host. А юзеров обманывать нельзя ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
именно, с точки зрения чоловека не правильно. потому и приходится делать ручной (чоловеческий) разбор.
|
|||
|
||||
Absinthe |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
|
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Возможно, окажется полезно посмотреть таки на задачу, решаемую топикстартером, и потом уже делать выводы? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ай-яй-яй, зачем же вот так просто и переход на личности. быть злым - очень плохо, можно невзначай умереть. и здесь я совершенно не шучу, видел одного человека, которого съела злоба через неопределённое врачами заболевание. даже если показалось что-то плохое в словах собеседника - надо стараться выглядывать хорошее а вот там я немного пошутил, указывая, что под специфическую задачу приходится собирать своё решение. причём специфика задачи происходит от самого человека. не желал бы - и обошёлся бы стандартными средствами и я знаю, что есть URL |
|||
|
||||
Absinthe |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |