красивые ссылки вместо идентификатора в php / codeigniter - PullRequest
2 голосов
/ 20 мая 2011

Я занимаюсь разработкой сайта PHP с использованием codeigniter и хотел бы получить некоторую помощь о том, как добиться чистых URL-адресов вместо числовых идентификаторов.

Например, вместо www.site.com/category/view/ 1, я хочу что-то вроде www.site.com/category/view/automobiles

категория = класс
представление = метод
1 = переменная

Мои исследования
Я новичок в PHP и codeigniter, и до сих пор я хотел добиться этого, чтобы получить сегмент uri-> (3), а затем проверить в БД соответствующий идентификатор в базе данных.Для этого мне, вероятно, понадобится использовать уникальные имена категорий, что я и сделаю.

Моя проблема
Но моя проблема в том, что в имени категории есть специальные символы или пробелы встрока, что будет?Я хотел бы преобразовать пробелы в дефисы или подчеркивания и опустить любые другие специальные символы.И во время получения я хотел бы декодировать сегмент URI в его исходную форму, чтобы я мог проверить базу данных на наличие идентификатора.

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Вы не должны использовать никаких специальных символов, кроме дефисов, так что вам не нужно декодировать.Вы можете использовать DB для ваших требований, как вы описываете.

0 голосов
/ 23 мая 2011

Вам нужно просто добавить новый столбец в вашу БД с именем «clean-url» и проиндексировать его.Затем при добавлении новой категории чего-либо создайте чистую строку URL-адреса из имени с помощью функции.

function clean_url($string)
{
    return str_replace(array('+', '!', '&'), '_', $string);
}

Вы можете добавить символы, которые вам не нужны.Затем найдите в БД соответствующие строки в вашем контроллере.

Так работает Wordpress.

...