Что такое слизняк?


В настоящее время я работаю над учебником CodeIgniters в его фантастической документации. Однако есть термин, который часто используется, и он называется "слизняк". Я много осматривался, чтобы выяснить, что означает этот термин, и не могу понять, что это такое и для чего он предназначен. Вот пример того, когда он используется:

С помощью этого кода вы можете выполнить два разных запроса. Вы можете получить все записи новостей или получить новостную заметку по ее слагу

Author: EJoshuaS, 2013-10-12

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
 61
Author: Petre Pătraşc, 2013-10-12 15:12:32

Короткий ответ

Это часть what-is-a-slug в URL-адресе этого вопроса.

 5
Author: oluckyman, 2018-02-03 02:00:33

"слизняк" полностью зависит от контекста, но в программировании или в том, что касается этого вопроса, здесь "слизняк" относится к URL-адресу. Мы знаем, что URL-адрес не может содержать каждый символ . Вот почему, когда любое сообщение, страница, контроллер вводят их в заголовок, поэтому его пуля используется в качестве URL-адреса. Который может быть получен автоматически.

Таким образом, в одной строке slug - это дружественная к URL версия любого имени.

 4
Author: Vaibhav Singh, 2018-09-10 07:51:10

Все приведенные выше ответы верны, но я хочу ответить непосредственно на этот вопрос. Slug в примере учебника Codeigniter ссылается на URL-адрес "новости". Если у вас нет "новости" в качестве вашего $slug или slug в вашей базе данных, и вы запустите этот URL-адрес в своем браузере, "index.php/новости/просмотр" вернет ошибку 404_page не найден. Я столкнулся с этой проблемой, пока не прочитал приведенные выше ответы, которые дали мне понимание того, что имел в виду Слизняк. Я меняю свой слиток на новости в базе данных стол. Слизняк похож на указку.

 0
Author: SholleyonlineJava, 2017-11-03 10:10:13

Ниже приведен пример слизняка:

 <?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'
  ?>
 0
Author: Vijay Chauhan, 2018-09-15 22:24:51