CodeIgniter User Guide Version 1.6.1


Clase de URI

La Clase de URI provee funciones que le ayudarán a obtener información desde cadenas URI. Si usa ruteo URI, puede también obtener información de segmentos redirigidos.

Nota: Esta clase es inicializada automáticamente por el sistema, así que no necesita hacerlo manualmente.

$this->uri->segment(n)

Permite recuperar un segmento específico. Donde n es el número de segmento que desea recuperar. Los segmentos están numerados de izquierda a derecha. Por ejemplo, si su URL completa es esta:

http://www.your-site.com/index.php/noticias/local/ciudad/subio_el_crimen

Los números de segmentos serán estos:

  1. noticias
  2. local
  3. ciudad
  4. subio_el_crimen

Por defecto, la función devuelve (buleano) si el segmento no existe. Existe un opcional segundo parámetro que le permite establecer su propio valor por defecto si el segmento no se encuentra. Por ejemplo, esto le dirá a la función que devuelva el número cero en caso de fallo:

$producto_id = $this->uri->segment(3, 0);

Ayuda a evitar tener que escribir líneas de código así:

if ($this->uri->segment(3) === FALSE)
{
    $product_id = 0;
}
else
{
    $product_id = $this->uri->segment(3);
}

$this->uri->rsegment(n)

Esta función es idéntica a la previa, excepto que le permite recuperar un segmento específico de su redirigida URI en el caso de que esté usando la característica de Ruteo de URI de CodeIgniter.

$this->uri->slash_segment(n)

Esta función es casi idéntica a $this->uri->segment(), excepto que agrega una barra al principio y/o final basado en el segundo parámetro. Si el parámetro no es usado, una barra es agregada al final. Ejemplos:

$this->uri->slash_segment(3);
$this->uri->slash_segment(3, 'leading');
$this->uri->slash_segment(3, 'both');

Returns:

  1. segment/
  2. /segment
  3. /segment/

$this->uri->slash_rsegment(n)

Esta función es idéntica a la previa, excepto que le permite recuperar un segmento específico de su redirigida URI en el caso de que esté usando la característica de Ruteo de URI de CodeIgniter.

$this->uri->uri_to_assoc(n)

Esta función le permite transformar segmentos URI en un arreglo asociativo de pares de claves/valores. Considere esta URI:

index.php/usuario/busqueda/nombre/jose/ubicacion/UK/sexo/masculino

Usando esta función puede transformar la URI en un arreglo asociativo con este prototipo:

[array]
(
    'nombre' => 'jose'
    'ubicacion' => 'UK'
    'sexo' => 'masculino'
)

El primer parámetro de la función establece un inicio. Por defecto es establecido en 3 ya que sus URI normalmente contendrán un controlador/función en el primer y segundo segmento. Ejemplo:

$arreglo = $this->uri->uri_to_assoc(3);

echo $arreglo['nombre'];

El segundo parámetro le permite establecer nombres de clave por defecto, así el arreglo devuelto por la función siempre contendrá los índices esperados, incluso si no están en la URI. Ejemplo:

$por_defecto = array('nombre', 'genero', 'ubicacion', 'tipo', 'orden');

$arreglo = $this->uri->uri_to_assoc(3, $por_defecto);

Si la URI no contiene un valor por defecto, un índice del arreglo será establecido con ese nombre, con el valor de FALSE.

Por último, si un valor correspondiente no es encontrado para una clave dada (si hay un número impar de segmentos de URI) el valor será establecido en FALSE (boolean).

$this->uri->ruri_to_assoc(n)

Esta función es idéntica a la previa, excepto que le permite recuperar un segmento específico de su redirigida URI en el caso de que esté usando la característica de Ruteo de URI de CodeIgniter.

$this->uri->assoc_to_uri()

Toma un arreglo asociativo como entrada y genera una cadena URI de él. La claves del arreglo serán incluidos en la cadena. Ejemplo:

$arreglo = array('producto' => 'zapatos', 'tamano' => 'largo', 'color' => 'rojo');

$str = $this->uri->assoc_to_uri($arreglo);

// Produce: producto/zapatos/tamano/largo/color/rojo

$this->uri->uri_string()

Devuelve una cadena con la URI completa. Por ejemplo, si su URL completa es.

http://www.su-sitio.com/index.php/noticias/local/345

La función devolverá esto:

/noticias/local/345

$this->uri->ruri_string(n)

Esta función es idéntica a la previa, excepto que le permite recuperar un segmento específico de su redirigida URI en el caso de que esté usando la característica de Ruteo de URI de CodeIgniter.

$this->uri->total_segments()

Devuelve el número de segmentos totales.

$this->uri->total_rsegments()

Esta función es idéntica a la previa, excepto que le permite recuperar un segmento específico de su redirigida URI en el caso de que esté usando la característica de Ruteo de URI de CodeIgniter.

$this->uri->segment_array()

Devuelve un arreglo que contiene los segmentos URI. Por ejemplo:

$segs = $this->uri->segment_array();

foreach ($segs as $segmento)
{
    echo $segmento;
    echo '<br />';
}

$this->uri->rsegment_array(n)

Esta función es idéntica a la previa, excepto que le permite recuperar un segmento específico de su redirigida URI en el caso de que esté usando la característica de Ruteo de URI de CodeIgniter.