Spec-Zone.ru › CodeIgniter 3

Класс 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

Номера сегментов будут такими:

  1. news
  2. local
  3. metro
  4. 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');

Возвращаемые значения:

  1. segment/
  2. /segment
  3. /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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API