Класс URI
Класс URI предоставляет методы, которые помогут вам получать информацию из URI строк. Если вы используют URI маршрутизацию, также, вы можете получить информацию о перенаправляемых сегментах.
Примечание
Этот класс инициализируется системой автоматически, поэтому нет необходимости делать это вручную.
Справка класса
- class CI_URI
- segment($n[, $no_result = NULL])
Параметры: - $n (число) – Индекс сегмента
- $no_result (смешанный) – Что возвращать, если искомый сегмент не найден
Возвращает: Значение сегмента или значение $no_result если не найден
Возвращаемый тип: смешанный
Позволяет вам получить определенный сегмент. Где 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 (число) – Индекс сегмента
- $no_result (смешанный) – Что возвращать, если искомый сегмент не найден
Возвращает: Значение сегмента или значение $no_result если не найден
Возвращаемый тип: смешанный
Этот метод идентичен segment(), за исключением того, что он позволяет получать определенный сегмент из ваших перенаправляемых URI в случае, если вы используете CodeIgniter URI маршрутизацию.
- slash_segment($n[, $where = 'trailing'])
Параметры: - $n (число) – Индекс сегмента
- $where (строка) – Где добавить cлэш (‘обратный’ или ‘прямой’)
Возвращает: Значение сегмента, с префиксом/суффиксом и слешом или слеш, если не найден
Возвращаемый тип: строка
Этот метод практически идентичен 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 (число) – Индекс сегмента
- $where (строка) – Где добавить cлэш (‘обратный’ или ‘прямой’)
Возвращает: Значение сегмента, с префиксом/суффиксом и слешом или слеш, если не найден
Возвращаемый тип: строка
Этот метод практически идентичен slash_segment(), за исключением того, что он позволяет добавить слеши определенному сегменту из перенаправленных URI если используется CodeIgniter URI маршрутизация.
- uri_to_assoc([$n = 3[, $default = array()]])
Параметры: - $n (число) – Индекс сегмента
- $default (массив) – Значения по умолчанию
Возвращает: Ассоциативный массив URI сегментов
Возвращаемый тип: массив
Этот метод позволяет превратить сегментов 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 (число) – Индекс сегмента
- $default (массив) – Значения по умолчанию
Возвращает: Associative routed URI segments array
Возвращаемый тип: array
Этот метод идентичен uri_to_assoc(), за исключением того, что он создает ассоциативный массив с помощью перенаправляемых URI в случе если вы используете CodeIgniter URI маршрутизацию.
- assoc_to_uri($array)
Параметры: - $array (массив) – Входной массив пар ключ/значение
Возвращает: URI строку
Возвращаемый тип: строка
Принимает ассоциативный массив в качестве входных данных и генерирует строку URI из него. Ключи массива будут включены в строку. Пример:
$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red'); $str = $this->uri->assoc_to_uri($array); // Производит: product/shoes/size/large/color/red
- uri_string()
Возвращает: URI строку Возвращаемый тип: строка Возвращает строку с полным URI. Например, если это ваш полный URL:
http://example.com/index.php/news/local/345
Метод будет вернет следующее:
news/local/345
- ruri_string()
Возвращает: Маршрутизированную строку URI Возвращаемый тип: строка Этот метод идентичен uri_string(), за исключением того, что он возвращает перенаправляемые URI в случае, если вы используете CodeIgniter URI маршрутизацию.
- total_segments()
Возвращает: Count of URI segments Возвращаемый тип: int Returns the total number of segments.
- total_rsegments()
Возвращает: Count of routed URI segments Возвращаемый тип: int Этот метод идентичен total_segments(), за исключением того, что он возвращает общее количество сегментов в перенаправляемых URI в случае, если вы используете CodeIgniter URI маршрутизацию.
- segment_array()
Возвращает: Массив сегмнтов URI Возвращаемый тип: массив Возвращает массив, содержащий URI сегменты. Например:
$segs = $this->uri->segment_array(); foreach ($segs as $segment) { echo $segment; echo '<br />'; }
- rsegment_array()
Возвращает: Массив маршрутизируемых сегментов URI Возвращаемый тип: массив Этот метод идентичен segment_array(), за исключением того, что он возвращает массив сегментов в перенаправляемых URI в случае, если вы используете CodeIgniter URI маршрутизацию.