Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: хранение и обработка урлов для разных языков

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как лучше хранить урлы для разных языков в бд, как транслитерировать или rawurlencode()
broshurkaplus
Отправлено: 01 Октября, 2018 - 19:24:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




Здравствуйте, давненько не был, но появился повод спросить:

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

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

делал так:
для кирилических транслитерировал и в базу (utf-8)
для европейских романоподобных польский, чешский, немецки, французский и тд - тоже транслитерировал, но тут стали появляться отличия (по буквам/звукам, в правилах транслитерации по сравнению с родными для языка сайтами)
теперь добавились иврит, греческий, арабский, японский и тд, просмотрев "ихние" сайты - вижу что они урлят так сказать и на своей локали.



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

вопрос :
как правильно/лучше/быстрее сохранять/хранить/выводить
а также индексировать в бд, какую кодировку для сравнения использовать, размер поля...

требуется сохранить дружественность внешнего вида урла для посетителей
учесть СЕО, (получать и иностранных посетителей на сайт)

в общем кто сталкивался - подскажите как у вас, как вы видите это?
(надеюсь доступно изложил суть)
спасибо
 
 Top
LIME
Отправлено: 01 Октября, 2018 - 19:44:47
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ничего не понял
с разноязычностью сталкивался но не понял что у тебя не получается
дай пример задачи
как положено
что имеем - что надо сделать - что не получается
на конкретном примере конкретной задачи
(Добавление)
ответ на вскидку: b64
теряем в размере зато все лежит в ASCII
(Добавление)
хм
кажется вопрос в сео
я бы поискал готовую библу для транслитерации
практически уверен что есть такая
или несколько под разные типы языков
и не всякий романский язык можно отображать как есть
например молдавский не получится
как молдаванин заявляю)))
 
 Top
broshurkaplus
Отправлено: 01 Октября, 2018 - 20:22:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




как пример:

пример - статья с заголовком
ΔΕΝ ΣΕ ΕΝΔΙΑΦΈΡΕΙ ΠΩΣ ΑΙΣΘΆΝΟΜΑΙ
урл для него транслитерированный
den-se-endiaferei-pos-aisthanoma i

статью перевел вася с заголовком
ПЕРЕВОД ТЕСТ
и урлом
perevod-test

перевел мойша с заголовком
למנצח על-המחולות
и урлом
lm-sh-al-hmhwlwt
ТУТ уже нет гласных и много вариантов для транслитерации

дальше ее перевел ахмед с заголовком
الأحلام، وأنهم جميعا الحصول عليها
и урлом
?
тут тоже нет гласных и 100500 языковых наречий и символов, что все сразу и не учтёш для замены, получаем малочитаемый текст урла, strtr() не получается, пробую заменяеть посимвольно с проверкой есть ли исходный символ как ключ для замены, и получаем для непредусмотренных символов ошибку - сохранение статьи не проходит
символа ا нет в массиве
символа ل нет в массиве

при rawurlencode() для الأحلام، وأنهم جميعا الحصول عليها имеем для хранеия в бд
string(186)
CODE (html):
скопировать код в буфер обмена
  1. "%D8%A7%D9%84%D8%A3%D8%AD%D9%84%D8%A7%D9%85%D8%8C%20%D9%88%D8%A3%D9%86%D9%87%D9%85%20%D8%AC%D9%85%D9%8A%D8%B9%D8%A7%20%D8%A7%D9%84%D8%AD%D8%B5%D9%88%D9%84%20%D8%B9%D9%84%D9%8A%D9%87%D8%A7"

а если заголовок подлиннее

если применить rawurlencode() для "сложных языков"и в бд, то получается длинно, хоть красиво при отображении ссылки для пользователя, (гуглу ведь пофиг)

как правильнее все организовать, ваше видение этого, как хранить преобразованные ссылки в бд индексить их, иль преобразовывать на лету при вводе выводе, а хранить сам текст

както так. ?

обернул в html, а то не прерывает строку


добавлю
дык для сербского например траслитим (пока) по двум вариантам для Вуковицы - по кирилическому, для Гаевицы - по романическому, типа заменяя ź=>zh,
для некоторых языков
ź => z (так них подсмотрел, в сео гугль выделяет в урле для польского точно)


сори проправлю тут еще раз
модератор не катит проект не коммерческий ( Радость пока) нужно чтобы автоматически рубало, сейчас 1к авторов 100к текстов и переводов
склоняюсь к rawurlencode() там индекс для latin1 777
вот спрашиваю советов

(Отредактировано автором: 01 Октября, 2018 - 20:36:31)

 
 Top
LIME
Отправлено: 01 Октября, 2018 - 20:26:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




мне кажется тут дешевле нанять постмодератора чем пытаться автоматизировать
на пишу в дороге в метро
еще подумаем
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB