Система русскоязычных ссылок

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем NetStranger, 27 мар 2009.

Статус темы:
Закрыта.
  1. NetStranger

    NetStranger Постоялец

    Регистр.:
    16 сен 2008
    Сообщения:
    124
    Симпатии:
    1
    Вот на пример очень хороший метод линкования статей на http://ru.wikipedia.org/wiki/Древин,_Александр_Давыдович

    Причем если заметить сама ссылка выглядит как Древин, Александр Давыдович
    а в href уже подставляется Древин,_Александр_ Давыдович

    я что то не пойму как это делается и как устроена запись в БД в таком случае?
    там тупо два поля с разными записями генерирующейся автоматически от первой, или же это решение имеет какой то более красивый вариант.. подскажите плиз?
     
  2. zerdek

    zerdek

    Регистр.:
    29 ноя 2007
    Сообщения:
    346
    Симпатии:
    50
    я бы хранил только первый вариант, а второй(т.е. ссылку) генерил на лету. ведь замена символов однозначна
     
  3. NetStranger

    NetStranger Постоялец

    Регистр.:
    16 сен 2008
    Сообщения:
    124
    Симпатии:
    1
    чо то я вас не понял)) нельзя ли поподробнее и попонятнее) желательно с примером исполнения:(ah:
     
  4. zerdek

    zerdek

    Регистр.:
    29 ноя 2007
    Сообщения:
    346
    Симпатии:
    50
    постараюсь _по минимуму_ совсем без наворотов.
    скажем, что символы: _{} у нас служебные и в тексте их быть не должно(насколько я помню, в вики так и есть. если интересно то ее спецификация свободно доступна)

    в БД всего одна таблица с тремя полями:
    ---
    ID - longint, autoincrement
    key - varchar(255), UTF-8
    pagetext - text или longtext, UTF-8
    ---

    напишем две статьи.
    ID | key | pagetext
    --------
    1 | хобби художников | Художник {Древин, Александр Давыдович} любил играть на баяне.

    2 | Древин, Александр Давыдович | Его биография, бла-бла....
    ---------

    при выводе в хтмл при помощи регэкспа заменяем {Древин, Александр Давыдович} на <a href="http://domen.com/Древин,_Александр_Давыдович">Древин, Александр Давыдович</a>
    т.е. в href заменяем пробел на подчеркивание, а сам текст ссылки оставляем как есть.

    при запросе у нас страницы /Древин,_Александр_Давыдович
    заменяем подчеркивание на пробелы и по этому ключу ищем в БД.

    вот и все.

    преимущество этого варианта - простота и высокая скорость работы.
    еще и масштабируется легко, да хоть на пол-сотни серверов растянуть можно :)
     
    NetStranger нравится это.
Статус темы:
Закрыта.