Класс URI
Класс URI предоставляет методы, которые помогают извлекать информацию из ваших строк URI. Если вы используете маршрутизацию URI, вы также можете получить информацию о перенаправленных сегментах.
Примечание
Этот класс инициализируется системой автоматически, поэтому нет необходимости делать это вручную.
Справочная информация по классу
-
class CI_URI -
-
segment($n[, $no_result = NULL]) -
Параметры: - $n (int) – Номер индекса сегмента
- $no_result (mixed) – Что возвращать, если искомый сегмент не найден
Возвращаемое значение: Значение сегмента или значение $no_result, если не найден
Тип возвращаемого значения: mixed
Позволяет получить определённый сегмент. Где n – номер сегмента, который требуется получить. Сегменты нумеруются слева направо. Например, если ваш полный URL выглядит так:
http://example.com/index.php/news/local/metro/crime_is_up
Номера сегментов будут такими:
- news
- local
- metro
- crime_is_up
Необязательный второй параметр по умолчанию равен NULL и позволяет установить возвращаемое значение этого метода в случае отсутствия запрошенного сегмента URI. Например, это укажет методу возвращать ноль в случае неудачи:
$product_id = $this->uri->segment(3, 0);
Это помогает избежать необходимости написания кода такого вида:
if ($this->uri->segment(3) === FALSE) { $product_id = 0; } else { $product_id = $this->uri->segment(3); }
-
rsegment($n[, $no_result = NULL]) -
Параметры: - $n (int) – Номер индекса сегмента
- $no_result (mixed) – Что возвращать, если искомый сегмент не найден
Возвращаемое значение: Значение сегмента маршрута или значение $no_result, если не найден
Тип возвращаемого значения: mixed
Этот метод идентичен
segment(), за исключением того, что позволяет получить определённый сегмент из перенаправленного URI в случае использования функции маршрутизации URI CodeIgniter.
-
slash_segment($n[, $where = 'trailing']) -
Параметры: - $n (int) – Номер индекса сегмента
- $where (string) – Куда добавить слэш (‘trailing’ или ‘leading’)
Возвращаемое значение: Значение сегмента, с префиксом/суффиксом слэша, или слэш, если не найден
Тип возвращаемого значения: string
Этот метод почти идентичен
segment(), за исключением того, что добавляет косой слэш в конец и/или начало в зависимости от второго параметра. Если параметр не используется, добавляется конечный слэш. Примеры:$this->uri->slash_segment(3); $this->uri->slash_segment(3, 'leading'); $this->uri->slash_segment(3, 'both');
Возвращаемые значения:
- segment/
- /segment
- /segment/
-
slash_rsegment($n[, $where = 'trailing']) -
Параметры: - $n (int) – Номер индекса сегмента
- $where (string) – Куда добавить слэш (‘trailing’ или ‘leading’)
Возвращаемое значение: Значение сегмента маршрута, с префиксом/суффиксом слэша, или слэш, если не найден
Тип возвращаемого значения: string
Этот метод идентичен
slash_segment(), за исключением того, что позволяет добавлять слэши к определённому сегменту перенаправленного URI в случае использования функции маршрутизации URI CodeIgniter.
-
uri_to_assoc([$n = 3[, $default = array()]]) -
Параметры: - $n (int) – Номер индекса сегмента
- $default (array) – Значения по умолчанию
Возвращаемое значение: Массив ассоциативных сегментов URI
Тип возвращаемого значения: array
Этот метод позволяет преобразовать сегменты URI в ассоциативный массив пар ключ/значение. Рассмотрим такой URI:
index.php/user/search/name/joe/location/UK/gender/male
Используя этот метод, можно преобразовать URI в ассоциативный массив с таким прототипом:
[array] ( 'name' => 'joe' 'location' => 'UK' 'gender' => 'male' )Первый параметр позволяет установить смещение, которое по умолчанию равно 3, так как ваш URI обычно содержит пару контроллер/метод в первом и втором сегментах. Пример:
$array = $this->uri->uri_to_assoc(3); echo $array['name'];
Второй параметр позволяет установить значения ключей по умолчанию, так что возвращаемый массив всегда будет содержать ожидаемые индексы, даже если они отсутствуют в URI. Пример:
$default = array('name', 'gender', 'location', 'type', 'sort'); $array = $this->uri->uri_to_assoc(3, $default);Если в URI нет значения в вашем значении по умолчанию, индекс массива будет установлен для этого имени со значением NULL.
Наконец, если соответствующее значение не найдено для данного ключа (если количество сегментов URI нечётное), значение будет установлено в NULL.
-
ruri_to_assoc([$n = 3[, $default = array()]]) -
Параметры: - $n (int) – Номер индекса сегмента
- $default (array) – Значения по умолчанию
Возвращаемое значение: Массив ассоциативных сегментов перенаправленного URI
Тип возвращаемого значения: array
Этот метод идентичен
uri_to_assoc(), за исключением того, что создаёт ассоциативный массив, используя перенаправленный URI в случае использования функции маршрутизации URI CodeIgniter.
-
assoc_to_uri($array) -
Параметры: - $array (array) – Входной массив пар ключ/значение
Возвращаемое значение: Строка URI
Тип возвращаемого значения: string
Принимает на вход ассоциативный массив и генерирует строку URI из него. Ключи массива будут включены в строку. Пример:
$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red'); $str = $this->uri->assoc_to_uri($array); // Produces: product/shoes/size/large/color/red
-
uri_string() -
Возвращаемое значение: Строка URI Тип возвращаемого значения: string Возвращает строку с полным URI. Например, если ваш полный URL выглядит так:
http://example.com/index.php/news/local/345
Метод вернёт это:
news/local/345
-
ruri_string() -
Возвращаемое значение: Строка перенаправленного URI Тип возвращаемого значения: string Этот метод идентичен
uri_string(), за исключением того, что возвращает перенаправленный URI в случае использования функции маршрутизации URI CodeIgniter.
-
total_segments() -
Возвращаемое значение: Количество сегментов URI Тип возвращаемого значения: int Возвращает общее количество сегментов.
-
total_rsegments() -
Возвращаемое значение: Количество сегментов перенаправленного URI Тип возвращаемого значения: int Этот метод идентичен
total_segments(), за исключением того, что возвращает количество сегментов перенаправленного URI в случае использования функции маршрутизации URI CodeIgniter.
-
segment_array() -
Возвращаемое значение: Массив сегментов URI Тип возвращаемого значения: array Возвращает массив, содержащий сегменты URI. Например:
$segs = $this->uri->segment_array(); foreach ($segs as $segment) { echo $segment; echo '<br />'; }
-
rsegment_array() -
Возвращаемое значение: Массив сегментов перенаправленного URI Тип возвращаемого значения: array Этот метод идентичен
segment_array(), за исключением того, что возвращает массив сегментов перенаправленного URI в случае использования функции маршрутизации URI CodeIgniter.
-
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/uri.html