terça-feira, 29 de novembro de 2011

URL amigaveis com htaccess e php

http://dourado.net/2009/06/25/como-fazer-urls-amigaveis-com-htaccess-e-php/


Para quem não sabe o que é URL amigável vou explicar através de exemplo para evitar dúvidas.
URL Convencional: http://www.exemplodominio.com.br/noticia.php?id=1237
URL Amigável: http://www.exemplodominio.com.br/noticia/1237/
Viu a diferença? Além da vantagem de ficar mais elegante, facilita bastante a indexação dos mecanismos de buscas. Mas como fazer o controle de arquivos e identificadores? Então vamos aos códigos.
Primeiro você deve editar ou criar um arquivo .htaccess na raiz do seu site e inserir o código abaixo.
1
2
3
4
5
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(!.(\.gif|\.jpg|\.png|\.css|\.js|\.txt|\.php|\.htm|\.html)|.+[^/])$ /$1/ [L]
RewriteRule ^([^-]+)/$ /funcao.php?frase=$1&%{QUERY_STRING} [L]
A primeira linha linha é para ativar o módulo. A segunda e terceira linha é para ignorar arquivos e diretorios respectivamente. Na quarta linha ignora alguns tipos de arquivos. E finalmente na quinta linha, joga a string para um arquivo php qualquer, neste caso funcao.php.
1
2
3
4
5
$geturl = explode('/', $_SERVER['REQUEST_URI']);
if ($geturl[1] == 'noticia') { 
    $id = $geturl[2];
    include noticia.php;
}
Interpretando rapidamente o código, a linha inicial captura a variavel gerada pela URL e usa a função explode para separar as palavras da URL.
Em seguida eu faço uma condicional IF para verificar se é noticia e setar o ID da mesma. Você pode incrementar como quiser o código e ter quantas palavras desejar na URL. Basta ter um pouco de criatividade.
Lembre-se, para funcionar o módulo apache Rewrite deve estar ativo no servidor Apache. Para maiores informações, procure a empresa de hospedagem do seu site.

sexta-feira, 18 de novembro de 2011

Zend_Date - Conversão de Data

Olá, hoje precisei saber como implementar conversão de data no Zend Framework, pesquisei e encontrei a seguinte solução:






Segue o código que eu implementei:

        $dateString1 = '1981-04-01';
        $date1 = new Zend_Date($dateString1, 'YYYY-MM-dd');
        $date1 = $date1->toString('dd/MM/yyyy');
        
        $dateString2 = '01/04/1981';
        $date2 = new Zend_Date($dateString2, 'dd/MM/YYYY');
        $date2 = $date2->toString('YYYY-MM-dd');

Resultado:

       01/04/1981
       1981-04-01