Смысл url-кодирования

espada

Guest
Смысл url-кодирования

Насколько я знаю, переменные, передаваемые по ссылке, рекомендуется кодировать через urlencode. Я так и делал, пока не оказалось, что в одной большой выборке, где по каждой позиции своя ссылка с переменными, это кодирование увеличивает и без того немалый объем страницы почти на сотню килобайт.

Тогда я попробовал передавать переменные как есть - русскими буквами. И оказалось, что все работает безупречно.

Вопрос - могут ли возникнуть проблемы и какие именно?
 

nagash

Guest
espada
всё работает потому что твой умный эксплорер всё сам перекодирует...
но некоторые браузеры не умеют это делать
именно для этих целей и нужно делать юрлэнкод
 

HEm

Сетевой бобер
сразу возникает вопрос - какие именно версии умеют?
 

Crazy

Developer
Re: Смысл url-кодирования

Автор оригинала: espada
Тогда я попробовал передавать переменные как есть - русскими буквами. И оказалось, что все работает безупречно.
Добавь в середину имени "&"...
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: espada
...это кодирование увеличивает и без того немалый объем страницы почти на сотню килобайт.
Да, проблемы у тебя явно не с кодированием. Как думаешь, средний человек эту твою страницу прочитать способен?
 

espada

Guest
>>> Как думаешь, средний человек эту твою страницу прочитать способен?

Если очень занадобится - думаю, прочитают. По мне наоборот - лучше большая страница (например, целый роман на lib.ru), чем то же самое, разбитое на мелкие кусочки.

А занадобиться может запросто. Ко мне каждый день человека три-четыре заходит только по запросу "русско-литовский словарь". А у меня в выборке по литовскому языку - под пятнадцать тысяч слов.

Я их, понятно, разбил по буквам - но на букву "п" (самую богатую в русском языке) все равно выходит две с половиной тысячи. И тянут они на 250 килобайт в варианте без отсылок к дополнительной информации по каждому слову. А с отсылками - еще плюс пятьдесят без кодирования и сто пятьдесят - с оным.

А главная проблема со скоростью загрузки была, оказывается, связана даже не с кодированием. Я просто решил облегчить себе жизнь и придумал (не без помощи этого форума) заменять повторяющиеся элементы внутри записей в базе, на подобие переменных (типа %word% вместо <span class=word>). А затем скриптом приводить все в html-ный вид с помощью strreplace.

И все было замечательно, пока не появились эти самые страницы с тысячами слов. Тут-то и оказалось, что эти strreplace замедляют все раза в три.

Так что сегодня целый день мучился - вертел все обратно - заменял по всей базе псевдопеременные на теги.
 

espada

Guest
Интересно, что Опера перекодирует явно, то есть указывает в статусной строке и в URL перекодированный текст. А IE показывает там русские буквы. Но срабатывает все равно.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: espada
А занадобиться может запросто. Ко мне каждый день человека три-четыре заходит только по запросу "русско-литовский словарь". А у меня в выборке по литовскому языку - под пятнадцать тысяч слов.

Я их, понятно, разбил по буквам - но на букву "п" (самую богатую в русском языке) все равно выходит две с половиной тысячи. И тянут они на 250 килобайт в варианте без отсылок к дополнительной информации по каждому слову. А с отсылками - еще плюс пятьдесят без кодирования и сто пятьдесят - с оным.
Для изучения: http://www.rambler.ru/dict/
Зачем делать выборку по букве, когда можно сделать выборку по конкретному слову?..
 

espada

Guest
Есть, собственно, выборка и по отдельному слову. Но некоторым хочется иметь словарь, а не лазать в интернет за каждым словом отдельно. Так что я даю три возможности - открыть весь словарь целиком, открыть по буквам или открыть по слову. И не по одному языку, а по ста тридцати одному на сегодняшний день.

http://espada.org.ru

P.S. Простой пример. Уже долго ищу в сети русско-английский словарь Смирницкого. И вот захожу по твоей ссылке на Рамблер и вижу - словарь Смирницкого. Но только радоваться не спешу - потому что словарь онлайновый. А мне нужна база данных или хотя бы текстовой вариант. Не буду же я каждое слово выколупывать отдельно, сидя в онлайне.

На моем сайте, если я, допустим, выложил русско-английский словарь, то пользователь имеет возможность открыть его и целиком, и по буквам, и по слову (в сочетании с переводом на другие языки) и задом наперед (то есть как англо-русский).

Но эта многофункциональность, естественно, порождает недостатки и проблемы, за решением которых я и обращаюсь на этот форум.

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

Micx

Guest
Автор оригинала: espada
>>> Как думаешь, средний человек эту твою страницу прочитать способен?

Если очень занадобится - думаю, прочитают. По мне наоборот - лучше большая страница (например, целый роман на lib.ru), чем то же самое, разбитое на мелкие кусочки.

А занадобиться может запросто. Ко мне каждый день человека три-четыре заходит только по запросу "русско-литовский словарь". А у меня в выборке по литовскому языку - под пятнадцать тысяч слов.

Я их, понятно, разбил по буквам - но на букву "п" (самую богатую в русском языке) все равно выходит две с половиной тысячи. И тянут они на 250 килобайт в варианте без отсылок к дополнительной информации по каждому слову. А с отсылками - еще плюс пятьдесят без кодирования и сто пятьдесят - с оным.

А главная проблема со скоростью загрузки была, оказывается, связана даже не с кодированием. Я просто решил облегчить себе жизнь и придумал (не без помощи этого форума) заменять повторяющиеся элементы внутри записей в базе, на подобие переменных (типа %word% вместо <span class=word>). А затем скриптом приводить все в html-ный вид с помощью strreplace.

И все было замечательно, пока не появились эти самые страницы с тысячами слов. Тут-то и оказалось, что эти strreplace замедляют все раза в три.

Так что сегодня целый день мучился - вертел все обратно - заменял по всей базе псевдопеременные на теги.
используй preg_replace, скорость обработки упадет на [ЦВЕТОМ=red] 100-1000%[/ЦВЕТОМ], в зависимости от сложности замены, и грамотного написания рег. выражений.
Я добивался кое-где ускорения в 12 раз...
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Micx
используй preg_replace, скорость обработки упадет на [ЦВЕТОМ=red] 100-1000%[/ЦВЕТОМ], в зависимости от сложности замены, и грамотного написания рег. выражений.
Я добивался кое-где ускорения в 12 раз...
Кхе-кхе. Человек жаловался на [m]str_replace[/m], его заменой на [m]preg_replace[/m] вряд ли ускоришь.
 

HEm

Сетевой бобер
а не проще повесить на сайте предупреждение чтобы не пользовались кривыми браузерами?
причем на мой вопрос - какие именно еще не умеют - никто не ответил ;-/
 

espada

Guest
Я поступил иначе. Написал скрипт-добавлялку, который введенные в форму псевдопеременные преобразует в теги и в таком виде записывает в базу
 
Сверху