Ganhe R$20 de desconto na primeira corrida com a 99Taxi!

PHP

URL’s Amigáveis com o mod_rewrite e PHP

Se você não sabe do que se trata, URL’s Amigáveis são usadas basicamente para deixar o endereço de uma página mais atraente, e também para melhorar o posicionamento do site nas buscas, já que os sistemas de busca utilizam as palavras contindas na URL para facilitar a busca.

Exemplo de URL Amigável:
http://tiagopassos.com/noticias/37/Carvao_alimenta_boa_parte_da_nuvem_da_Internet_diz_Greenpeace.htm

Funciona da seguinte forma (considerando que seu servidor suporta o mod_rewrite. Pergunta ao ser servidor de hospedagem se o mod_rewrite está habilitado no Apache):

Crie um arquivo chamado .htaccess (sem nome. Ele tem só a extensão .htaccess. Cuidado para não criar .htaccess.txt) e dentro dele coloque o seguinte:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cod=$1

Envie o arquivo para a raiz do servidor ou para o diretório.

A partir de agora, se não exisitir um arquivo ou diretório no endereço que você digitar, ele enviará para a index.php. Na index.php você irá receber esses dados através da variavel $_GET[“cod”].

Exemplo:

Se o site tiagopassos.com estiver com o mod_rewrite habilitado na raiz do diretório e você digitar o endereço http://tagopassos.com/index.php, ele vai entrar na index.php (considerando que o arquivo existe). Se você digitar http://tiagopassos.com/contato ele vai enviar a variável $_GET[“cod”] = “contato” para o index. A partir daí, através de “ifs” e “elses” você exibe o que quer exibir.


Enviando e-mails com o PHP

Enviar e-mails é um recurso importante, e eventualmente precisamos fazer isso. No PHP um e-mail pode ser enviado com a função mail. Abaixo vou demonstrar alguns exemplos de uso da função:

Exemplo 1 – E-mail simples (interessante para avisos ao webmaster):

<?php
mail('webmaster@meusite.com', 'Assunto do E-mail', 'Mensagem do E-mail');
?>

Exemplo 2 – E-mail com cabeçalhos

<?php
$para       = 'qualquer.email@gmail.com';
$assunto    = 'Assunto do E-mail';
$mensagem   = 'Mensagem do E-mail';
$cabecalhos = 'From: webmaster@meusite.com.br' . "\r\n" .
'Reply-To: webmaster@meusite.com.br' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($para, $assunto, $mensagem, $cabecalhos);
?>

Exemplo 3 – Email em HTML

<?php
// VÁRIOS E-MAILS
$para  = 'carlos@gmail.com,andre@gmail.com,'

// ASSUNTO
$assunto = 'Assunto do E-mail';

// MENSAGEM
$mensagem = '
<html>
<head>
<title>Aniversariantes de Abril</title>
</head>
<body>
<p>Esses são os aniversariantes de abril!</p>
<table>
<tr>
<th>Nome</th><th>Dia</th><th>Mês</th><th>Ano</th>
</tr>
<tr>
<td>João</td><td>3</td><td>Abril</td><td>1970</td>
</tr>
<tr>
<td>Sílvia</td><td>17</td><td>Abril</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

// Para enviar um e-mail em HTML, o Content-type deve ser setado
$cabecalho  = 'MIME-Version: 1.0' . "\r\n";
$cabecalho .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Cabeçalhos adicionais
$cabecalho .= 'To: Antônio <antonio@gmail.com>, Maria <maria@gmail.com>' . "\r\n";
$cabecalho .= 'From: Lembrete de Aniversário <lembrete@meusite.com.br>' . "\r\n";
$cabecalho .= 'Cc: joana@gmail.com' . "\r\n"; // CÓPIA DO E-MAIL
$cabecalho .= 'Bcc: mariana@gmail.com' . "\r\n"; // CÓPIA OCULTA

// Enviando...
mail($para, $assunto, $mensagem, $cabecalho);
?>

Retirar espaços antes e depois de uma string usando o PHP

A função trim() retorna uma string com os espaços retirados do ínicio e do final de uma string.

Exemplo:

echo trim("   Teste da função trim    ");

Conectar ao MySQL e escolher um banco de dados com o PHP

Exemplo das funções utilizadas para conectar com o MySQL e escolher um banco de dados.

<?php
mysql_connect("localhost", "USUARIO", "SENHA") or die(mysql_error());
mysql_select_db("BANCO_DE_DADOS") or die(mysql_error());
?>

Algumas vezes o nome do servidor pode ser diferente, mas na grande maioria se usa localhost mesmo.


Erro ao exceder limite de memória no PHP no Linux Ubuntu

De vez enquando executamos um script que precisa de um limite de memória mais alto, e se o PHP não estiver configurado para isso, retornará o seguinte erro:

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate XX bytes) in /var/www/pasta/script.php on line XX

Para evitar esse tipo de problema, você pode configurar o PHP para que ele aloque mais memória. É óbvil que você deve se atentar à memória disponível no seu sistema. Se você possui 256MB de memória RAM, você não deve alocar 128MB, mas sim um valor mais baixo, compatível com seu computador.

Para alocar memória, abra o arquivo php.ini. Se você não souber onde esse arquivo está, você pode executar a função phpinfo() e ela informará (Loaded Configuration File). No meu caso, que utilizo Ubuntu Linux, para abrir o arquivo digito no Terminal (Aplicativos/Acessórios/Terminal) o seguinte comando:

sudo gedit /etc/php5/apache2/php.ini

Se você estiver utilizando o windows, pode abrir o arquivo php.ini pelo bloco de notas.

Busque por memory_limit e altere o valor para o que desejar (com cautela).

É isso.


Exibir conteúdo de um arquivo de texto com o PHP

O script abaixo exibe o conteúdo do arquivo de texto – TXT, por exemplo – escolhido:

<?php
//abrimos o arquivo em leitura
$arquivo = "/var/www/pasta/arquivo.txt"; // EXEMPLO DE CAMINHO. USE O CAMINHO CORRETO
$fp = fopen($arquivo,"r");

//lemos o arquivo
$texto = fread($fp, filesize($arquivo));

//transformamos as quebras de linha em etiquetas
$texto = nl2br($texto);

echo $texto;

?>

Instalar LAMP – Linux + Apache + MySQL + PHP no Ubuntu

Atualizado em 15/03/2016

Quase todo programador web que programa em PHP com banco de dados MySQL precisa desses softwares funcionando localmente (em sua máquina), seja para fazer testes, ou para programar sistemas e sites. Vou mostrar como instalar esses dois servidores, além do Apache, que é o servidor web, e é necessário para que o PHP funcione. 1. Abra o Terminal (Aplicativos/Acessórios/Terminal) 2. Digite o seguinte código no terminal:

sudo apt-get install apache2

3. O Terminal vai perguntar sua senha. Digite ela, e depois aperte enter. 4. Para testar o Apache, acesse o seguinte endereço a partir do seu navegador: http://localhost/. Se aparecer "It Works!", quer dizer que o Apache foi instalado com sucesso. 5. Para instalar o PHP, digite novamente no Terminal:

sudo apt-get install php5 libapache2-mod-php5

6. É necessário reiniciar o Apache. Digite no Terminal:

sudo /etc/init.d/apache2 restart

7. Para testar o Servidor PHP, crie um arquivo chamado teste.php em /var/www com o conteúdo abaixo:

<?php phpinfo(); ?>

8. Acesse o endereço: http://localhost/teste.php . Se tudo estiver OK, irão aparecer informações sobre seu computador, o Apache e o PHP. 9. Para instalar o MySQL,  digite o seguinte no Terminal:

sudo apt-get install mysql-server

10 Vai aparecer uma tela soliicitando que você digite a senha de root, que é a senha de administrador do banco de dados. Você pode deixar em branco – se tiver medo de esquecer 😛 – mas é altamente recomendável que você defina uma. 11. Agora você deve instalar o PHPMyAdmin, que é uma aplicativo web que ajuda a administrar bancos de dados MySQL. Digite no terminal:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

12. Escolha o apache2 para configurar automaticamente. 13.  O sistema vai pergunta se você quer configurar banco de dados para phpmyadmin com dbconfig-common. Escolha "Sim". Depois digite a senha do banco que você escolheu antes, e escolha uma senha para a base do PHPMyAdmin (pode ser a mesma do MySQL). PARABÉNS! Se você conseguiu completar todos os passos, instalou o Apache, o MySQL, o PHP e o PHPMyAdmin no seu computador. Todos os arquivos devem ser armazenados em /var/www. O PHPMyAdmin pode ser acessado através do endereço http://localhost/phpmyadmin

Atualização em 15/03/2016

Seis anos depois e esse post continua útil :P. Acabei de usá-lo novamente, mas tive um pequeno problema no final. Depois de instalar o PHPMyAdmin, ele não abria pelo navegador. Se isso acontecer com você no Ubuntu 14.04 em diante ou no Linux Mint 17 (onde testei) em diante, basta criar um link apontando para o PHPMyAdmin:

sudo ln -s /usr/share/phpmyadmin /var/www/html

Fonte: http://askubuntu.com/questions/387062/how-to-solve-the-phpmyadmin-not-found-issue-after-upgrading-php-and-apache


Identificar o último registro inserido em uma tabela do MySQL com o PHP

Em uma tabela com um campo com autoincrement (onde a cada registro é gerado um número sequencial para identificá-lo), as vezes necessitamos identificar qual o id desse último registro inserido.

Para isso existe uma função muito simples do PHP: mysql_insert_id()

O uso dela também é muito simples. Logo após ter feito o mysql_query(), basta igualar a uma variável. Se houver mais de uma conexão ao banco de dados, você deve passar esse link através da função (mysql_insert_id($link)).

Exemplo:

$sql = "INSERT INTO `pessoas` (`id_pessoa` , `nome_pessoa` )
VALUES (NULL , 'Tiago Passos');";
$query = mysql_query($sql);

$ultimo_id = mysql_insert_id(); // SE SÓ HOUVER UMA CONEXÃO COM O BANCO

Função em PHP para copiar recursivamente um diretório

Geralmente quando se copia uma pasta usando o PHP, não é possível copiar seus subdiretórios, mas sim apenas o arquivos que estão diretamente dentro dela. Essa função mostra como copiar tudo que estiver dentro de uma pasta.

/*
* Copiar todos os arquivos e subdiretórios dentro de um diretório
*
* @Autor: Aidan Lister <aidan ARROBA php.net>
* @Tradução: Tiago Passos <voxtiago ARROBA gmail.com>
* @versão 1.0.1
* @parâmetro de origem: $source
* @parâmetro de destino: $dest
* @retorna TRUE se houver sucesso e FALSE se houver erro
* @Exemplo de uso: copyr("site","backup_site");
*/

function copyr($source, $dest)
{
   // COPIA UM ARQUIVO
   if (is_file($source)) {
      return copy($source, $dest);
   }

   // CRIA O DIRETÓRIO DE DESTINO
   if (!is_dir($dest)) {
      mkdir($dest);
      echo "DIRET&Oacute;RIO $dest CRIADO<br />";
   }

   // FAZ LOOP DENTRO DA PASTA
   $dir = dir($source);
   while (false !== $entry = $dir->read()) {
      // PULA "." e ".."
      if ($entry == '.' || $entry == '..') {
         continue;
      }

      // COPIA TUDO DENTRO DOS DIRETÓRIOS
      if ($dest !== "$source/$entry") {
         copyr("$source/$entry", "$dest/$entry");
         echo "COPIANDO $entry de $source para $dest <br />";
      }
   }

   $dir->close();
   return true;

}
Geralmente quando se copia uma pasta usando o PHP, não é possível copiar seus subdiretórios, mas sim apenas o arquivos que estão diretamente dentro dela. Essa função mostra como copiar tudo que estiver dentro de uma pasta.

Texto aparece com caracteres estranhos. Resolvendo com PHP

Certa vez tive um problema em um site que estava trabalhando. Os caracteres que possuíam acento apareciam com erro (como que corrompidos). Depois de pesquisar um pouco, consegui descobrir a solução.

Basta colocar o seguinte comando na página que apresentar esse erro:

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>

Isso fará com que o charset mude para ISO 8859-1. Caso queira que seja mudado para outro charset, é só substituir.


  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Projetos Paralelos

  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress