Я слышал о людях, использующих пули для создания чистых URL-адресов. Я понятия не имею, как это работает.
В настоящее время у меня есть сайт codeigniter, который генерирует URL-адрес, подобный этому
www.site.com/index.php/blog/view/7
Из того, что я понимаю, поддерживая поле slug, можно достичь URL-адресов, например
www.site.com/index.php/blog/view/once-upon-a-time
Как это делается? Особенно в отношении кодовоза?
Ответ 1
Я просто храню пули в моей таблице базы данных, в столбце под названием slug
, затем найдите сообщение с помощью slug, например:
public function view($slug)
{
$query = $this->db->get_where('posts', array('slug' => $slug), 1);
// Fetch the post row, display the post view, etc...
}
Кроме того, чтобы легко получить пулю из заголовка сообщения, просто используйте url_title()
помощника URL:
// Use dashes to separate words;
// third param is true to change all letters to lowercase
$slug = url_title($title, 'dash', true);
Небольшой бонус: вы можете использовать уникальное ограничение ключа для столбца slug
, которое гарантирует, что каждый столбец имеет уникальный слизень, поэтому он не является двусмысленным, который должен искать PostIgniter. Конечно, вы, вероятно, должны, в первую очередь, указывать свои уникальные заголовки, но, применяя это, применяете правило и препятствуйте вашему приложению прикручиваться.
Ответ 2
Вы можете использовать CI Slug Library от Эрика Барнса:
https://github.com/ericbarnes/CodeIgniter-Slug-Library
Ответ 3
Для моих друзей ES, удалите акцентированные символы, используя это, из Text Helper:
$string = 'áéíóú ÁÉÍÓÚ';
$slug = url_title(convert_accented_characters($string), 'dash', true));
echo $slug; //aeiou-AEIOU