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

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

  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 (число) – Индекс сегмента
  • $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');

Возвращает:

  1. segment/
  2. /segment
  3. /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 маршрутизацию.