Что такое слизняк?
В настоящее время я работаю над учебником CodeIgniters в его фантастической документации. Однако есть термин, который часто используется, и он называется "слизняк". Я много осматривался, чтобы выяснить, что означает этот термин, и не могу понять, что это такое и для чего он предназначен. Вот пример того, когда он используется:
С помощью этого кода вы можете выполнить два разных запроса. Вы можете получить все записи новостей или получить новостную заметку по ее слагу
5 answers
Пуля является частью URL-адреса, когда вы обращаетесь к ресурсу. Допустим, у вас есть URL-адрес, подобный приведенному ниже, который отображает все автомобили в вашей системе:
http://localhost/cars
Когда вы захотите указать конкретный автомобиль в своей системе, вы должны указать следующий URL-адрес:
http://localhost/cars/audi-a6/
Обратите внимание, что URL-адрес по-прежнему очень логичен и очень удобен для пользователя. Что касается использования пули, то это на ваше усмотрение. Строка audi-a6 выше может быть уникальным идентификатором для автомобиль в вашей системе - допустим, у вас есть реляционная база данных со следующими полями:
id
car_name
car_brand
car_unique_identifier
Поле car_unique_identifier затем будет использоваться для хранения значений, отображаемых в пуле; в примере, который я указал выше с автомобилем Audi A6, именно здесь будет жить ваша строка audi-a6.
Вы можете использовать его и другими способами - например, если у вас есть контроллер сообщений , который функционирует как блог. Заголовок страницы может быть, это пуля для него, если он закодирован по URL. Для нашей статьи "Лучшие способы улучшить SEO" вы можете указать следующий URL-адрес:
http://localhosts/posts/best-ways-to-make-seo-better
Затем вы запустили бы url_decode() на слизняке, и вы получили бы строку лучшие способы улучшить seo, которую вы можете использовать, чтобы найти публикацию по ее названию.
На этом останавливаться не нужно - вы можете решить использовать несколько пуль, чтобы что-то представлять - давайте посмотрим, как это делает BBC. Я взял случайная статья с сегодняшнего дня, которая имеет следующий URL:
http://www.bbc.co.uk/news/world-africa-24506006
Это ссылка на статью под названием: Африканский союз призывает МУС прекратить дела против лидеров. То, как это делает Би-би-си, заключается в том, что они используют последнюю часть слизняка мир-Африка-24506006, которая 24506006, чтобы идентифицировать уникальную запись в их системе. Затем они, скорее всего, используют мир-Африка для обозначения категории, к которой относится сообщение (хотя это может быть только предположением, это все еще обоснованное предположение).
Наконец, давайте представим следующую таблицу БД для исследовательских работ.
id
category
title
У вас может быть пример, который работает, как показано ниже.
http://localhost/papers
Этот URL-адрес представляет все исследовательские работы, которые в настоящее время находятся в системе. Затем вы сможете получить доступ ко всем исследовательским работам по физике с помощью следующего слизняка:
http://localhost/papers/physics
Наш слизняк физика , и наша база данных select в настоящее время выглядит как-то например:
SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
Затем вы можете предоставить следующий URL-адрес:
http://localhost/papers/physics/gravitation
Теперь наш слизняк состоит из физики и гравитации . Наш запрос за кулисами может выглядеть примерно так:
SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
AND LOWER(papers.title) = 'gravitation'
Это позволяет нам однозначно идентифицировать запись в нашей системе.
Поэтому мы неоднократно использовали слизни, чтобы отфильтровать нашу информацию. В примере, когда мы запустили URL-адрес без каких-либо пуль:
http://localhost/papers
Мы хотели перечислить все исследования доступные документы. Когда мы запустили URL-адрес с помощью физики слизняка:
http://localhost/papers/physics
Мы хотели перечислить все исследовательские работы по физике , тем самым сузив наши результаты. Наконец, когда мы предоставили две пули, мы смогли однозначно идентифицировать запись в нашей системе.
http://localhost/papers/physics/gravitation
Могли бы мы смоделировать это по-другому? Конечно! В зависимости от требований нашей системы мы можем нормализовать и денормализовать наши реляционные таблицы. У нас могла бы быть система постоянной связи, так что что наша таблица сообщений выглядела так:
id
title
permalink
Тогда у нас могла бы быть следующая запись:
| 20013 | Gravitation | physics-gravitation-breakthrough |
Таким образом, открывается URL-адрес:
http://localhost/papers/physics-gravitation-breakthrough
В приведенном выше примере слиток физика-гравитация-прорыв позволяет нам однозначно идентифицировать сообщение с помощью:
SELECT *
FROM papers
WHERE papers.permalink = physics-gravitation-breakthrough
Короткий ответ
Это часть what-is-a-slug
в URL-адресе этого вопроса.
"слизняк" полностью зависит от контекста, но в программировании или в том, что касается этого вопроса, здесь "слизняк" относится к URL-адресу. Мы знаем, что URL-адрес не может содержать каждый символ . Вот почему, когда любое сообщение, страница, контроллер вводят их в заголовок, поэтому его пуля используется в качестве URL-адреса. Который может быть получен автоматически.
Таким образом, в одной строке slug - это дружественная к URL версия любого имени.
Все приведенные выше ответы верны, но я хочу ответить непосредственно на этот вопрос. Slug в примере учебника Codeigniter ссылается на URL-адрес "новости". Если у вас нет "новости" в качестве вашего $slug или slug в вашей базе данных, и вы запустите этот URL-адрес в своем браузере, "index.php/новости/просмотр" вернет ошибку 404_page не найден. Я столкнулся с этой проблемой, пока не прочитал приведенные выше ответы, которые дали мне понимание того, что имел в виду Слизняк. Я меняю свой слиток на новости в базе данных стол. Слизняк похож на указку.
Ниже приведен пример слизняка:
<?php
function create_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}
echo create_slug('does this thing work or not');
//returns 'does-this-thing-work-or-not'
?>