Code Igniter User Guide Version 1.5.2


Classe URI

A Classe URI provê funções que o ajudarão recuperar informações a partir de suas string URI. Se você usa o roteamento URI, pode ainda recuperar informações sobre os segmentos re-roteados.

Nota: Esta classe é inicializada automaticamente pelo sistema, por isso não é necessário fazê-lo.

$this->uri->segment(n)

Permite que você recupere um segmento específico. Onde n é o número do segmento que você deseja recuperar. Segmentos são numeros da esquerda pra direita. Por exemplo, se sua URL completa for assim:

http://www.seu-site.com/index.php/noticias/locais/metro/crime_aumenta

O número dos segmentos seriam estes:

  1. noticias
  2. locais
  3. metro
  4. crime_aumenta

Por default, a função retorna FALSE (booleano) se o segmento não existir. Há um segundo parâmetro adicionar que lhe permite configurar seu próprio valor padrão se o segmento estiver faltando. Por exemplo, isto diria à função retornar o número zero no advento de uma falha:

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

Isto ajuda evitar escrever código como desse jeito:

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

$this->uri->rsegment(n)

Esta função é idência a anterior, exceto que ela lhe permite recuperar um segmento específico em seus URI re-roteados, se você estiver usando a funcionalidade URI Routing do Code Igniter.

$this->uri->slash_segment(n)

Esta função é praticamente idêntica a $this->uri->segment(), exceto que ela adiciona uma barra antes e/ou depois baseado no segundo parâmetro. Se o parâmetro não for usado, a barra é adicionada antes. Exemplo:

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

Retorna:

  1. segmento/
  2. /segmento
  3. /segmento/

$this->uri->slash_rsegment(n)

Esta função é idência a anterior, exceto que ela lhe permite adicionar barras a um segmento específico seus URI re-roteados, se você estiver usando a funcionalidade URI Routing do Code Igniter.

$this->uri->uri_to_assoc(n)

Esta função lhe permite tranformar segmentos URI em uma array associativa de pares chave/valor. Considere este URI:

index.php/usuario/busca/nome/joe/localizacao/UK/sexo/masculino

Usando esta função, você pode transformar a URI em uma array associatia usando este protótipo:

[array]
(
    'nome' => 'joe'
    'localizacao' => 'UK'
    'sexo' => 'masculino'
)

O primeiro parâmetro da função lhe permite configurar a partir de qual segmento deve começar o processamento. Por default, ela começara do 3, já que seu URI normalmente irá conter um controller/função no primeiro e segundo parâmetro respectivamente. Exemplo:

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

echo $array['nome'];

O segundo parâmetro lhe permite configurar os nomes de chave padrões, para que a array retornada pela função sempre contenha indíces esperados, mesmo se faltantes na URI. Exemplo:

$default = array('nome', 'sexo', 'localização', 'tipo', 'espécie');

$array = $this->uri->uri_to_assoc(3, $default);

Se o URI não contiver um valor no segmento 3, um índice na array será adicionadado com esse nome, com o valor FALSE.

Por último, se um valor correspondente a uma dada chave não for encontrado para (se hover um número ímpar de segmentos URI), o valor será marcado como FALSE (booleano).

$this->uri->ruri_to_assoc(n)

Esta função é idêntica a anterior, exceto que ela cria uma array associativa usando seus URI re-roteados, se você estiver usando a funcionalidade URI Routing do Code Igniter.

$this->uri->assoc_to_uri()

Pega uma array associativa como entrada e gera uma string URI a partir dela. As chaves da array serào incluídas na string. Exemplo:

$array = array('produto' => 'sapatos', 'tamanho' => 'grande', 'cor' => 'vermelho');

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

// Produz: produto/sapatos/tamanho/grande/cor/vermelho

$this->uri->uri_string()

Retorna uma string com o URI completo. Por exemplo, se esta é sua URL completa:

http://www.seu-site.com/index.php/noticas/local/345

A função retornaria isto:

noticas/local/345

$this->uri->ruri_string(n)

Esta função é idêntica a anterior, exceto que ela retorna seus URI re-roteados, se você estiver usando a funcionalidade URI Routing do Code Igniter.

$this->uri->total_segments()

Retorna o número total de segmentos.

$this->uri->total_rsegments(n)

Esta função é idêntica a anterior, exceto que ela retorna o número total de segmentos em seus URI re-roteados, se você estiver usando a funcionalidade URI Routing do Code Igniter.

$this->uri->segment_array()

Retorna uma array contendo os segmentos URI. Por exemplo:

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

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

$this->uri->rsegment_array(n)

Esta função é idêntica a anterior, exceto que ela retorna a array contendo os segmentos em seus URI re-roteados, se você estiver usando a funcionalidade URI Routing do Code Igniter.