Code Igniter Versão 1.5.2 - Guia do Usuário


Assistente de URL

O Assistente de XML contem funções que auxiliam no trabalho com URLs.

Carregando este Assistente

Este assistente é carregado usando o seguinte código:

$this->load->helper('url');

As seguinte funções estão disponíveis:

site_url()

Retorna a URL de seu site, conforme especificada no seu arquivo de configuração. O arquivo index.php (ou algum outro que seja a index_page de seu confrome seu arquivo de configuração) será adicionado à URL, como qualquer segmento URI que vocÊ passar para a função.

Sinta-se encorajado a usar esta função sempre que precisar gerar uma URL local de modo que suas páginas tornem-se muito mais portáveis na eventualidade de mudanças em sua URL.

Segmentos podem ser passados (opcionalmente) para a função como uma string ou array. Aqui está um exemplo de string:

echo site_url("novidades/local/123");

O exemplo acima retornará algo assim: http://www.seu-site.com/index.php/novidades/local/123

Aqui está um exemplo de segmentos passados como um array:

$segmentos = array('novidades', 'local', '123');

echo site_url($segments);

base_url()

Retorna a URL base do seu site, conforme especificado no seu arquivo de configuração. Exemplo:

echo base_url();

index_page()

Retorna a página "index" do seu site, conforme especificado no seu arquivo de configuração. Exemplo:

echo index_page();

anchor()

Cria um link HTML baseado na URL local de seu site:

<a href="http://www.seu-site.com">Clique aqui</a>

A tag tem três parâmetros opcionais:

anchor(segmentos uri, texto, atributos)

O primeiro parâmetro pode conter qualquer segmento que você queira adicionar à URL. Como com a função site_url() acima, segmentos podem ser uma string ou um array.

Nota:  Se você estiver montando links internos para sua aplicação não inclua a URL base (http://...). Isto será adicionado automaticamente conforme informação especificada no seu arquivo de configuração. Inclua apenas os segmentos de URI que você deseje adicionar à URL.

O segundo parâmetro é o texto que o link vai mostrar como clicável. Se deixado em branco então a URL será usada.

O terceiro parâmetro pode conter uma lista de atributos que você gostaria de adicionar ao link(tag). Os atributos podem ser uma simples string ou um array associativo.

Aqui estão alguns exemplos:

echo anchor('novidades/local/123', 'Minhas Novidades');

Produzirá: <a href="http://www.seu-site.com/index.php/novidades/local/123" title="Minhas Novidades">Minhas Novidades</a>

echo anchor('novidades/local/123', 'Minhas Novidades', array('title' => 'As melhores!'));

Produzirá: <a href="http://www.seu-site.com/index.php/novidades/local/123" title="As melhores!">Minhas Novidades</a>

anchor_popup()

Quase idêntico à função anchor() exceto que abrirá a url em uma nova janela. Você pode especificar atributos Javascript no terceiro parâmetro para controlar como a janela será aberta. Se o terceiro parâmetro não estiver configurado então a nova janela será aberta conforme as configurações do navagador do usuário. Aqui está um exemplo com atributos:

$atributos = array(
              'width'      => '800',
              'height'     => '600',
              'scrollbars' => 'yes',
              'status'     => 'yes',
              'resizable'  => 'yes',
              'screenx'    => '0',
              'screeny'    => '0'
            );

echo anchor_popup(novidades/local/123, 'Click Me!', $atributos);

Nota: Os atributos acima são funções padrão sendo que você somente precisará declará-las se precisar de algo diferente disso. Se você quiser que a função use todos os valores padrões basta passar um array vazio como terceiro parâmetro:

echo anchor_popup('novidades/local/123', 'Clique me!', array());

mailto()

Cria uma tag link para e-mail. Exemplo de uso:

echo mailto('eu@meu-site.com', 'Clique aqui para falar comigo');

Como com a tag anchor() acima, você pode declarar atributos usando o terceiro parâmetro.

safe_mailto()

idêntico à função acima exceto por escrever uma versão ofuscada da tag mailto usando números escritos com Javascript para ajudar a bloquear o rastreio dos emails por robôs de spam.

auto_link()

Transforma URLs e emails (que estão em strings) automaticamente em links. Exemplo:

$string = auto_link($string);

O segundo parâmetro determina se URLs e emails serão convertidos ou somente um ou outro. O padrão é a transformação de ambos se o parâmetro não for especificado

Converte apenas URLs:

$string = auto_link($string, 'url');

Converte apenas endereços de Email:

$string = auto_link($string, 'email');

O terceiro parâmetro determina se os links serão aberto em uma nova janela. O valor pode ser TRUE ou FALSE (booleano):

$string = auto_link($string, 'both', TRUE);

url_title()

Pega uma string como entrada e cria uma string URL amigável. É útil se, por exemplo, você tiver um blog no qual gostaria de usar o título de seus artigos na URL. Exemplo:

$title = "O que há de errado com o CSS?";

$url_title = url_title($title);

// Produz: o-que-ha-de-errado-com-o-css

O segundo parâmetro determina o delimitador de palavra. Por padrão traços serão usados. As opções são The second parameter determines the word delimiter. By default dashes are used. Options are: traço, ou underscore:

$title = "O que há de errado com o CSS?";

$url_title = url_title($title, 'underscore');

// Produces: o_que_ha_de_errado_com_o_css

prep_url()

Esta função adicionará http:// se estiver faltando na URL. Passe a string URL para a função deste modo:

$url = "www.algum-site.com";

$url = prep_url($url);

redirect()

Faz um "header redirect"(redirecionamento pelo servidor) para a URI local especificada. Assim como outras funções neste assistente, esta é designada para redirecionar a uma URL local dentro do seu site. Você não especificará a URL absoluta do seu site, mas somente os segmentos URI do controller que você quer abrir. A função montará a URL baseada nos valores declarados no seu arquivo de configuração.

O segundo parâmetro permite que você escolha entre o método "location" ou o método "refresh". O "location" é mais rápido, porém em servidores Windows pode ser um problema algumas vezes. Exemplo:

if ($logged_in == FALSE)
{
     redirect('/login/form/', 'refresh');
}

Nota: Para esta função funcionar ela deve ser declarada antes que qualquer coisa que gere uma saída ao browser, pois ela usa cabeçalhos de servidor(server headers).