Objetivo

O objetivo desse material, é disponibilizar um caminho para os Web Designers aprenderem um pouco mais sobre PHP, explicando algumas instruções básicas (se-então-senão, include, por exemplo), e algumas funções que geralmente são úteis, e facilitam o desenvolvimento básico de sites e layouts.

O manual do PHP

Tudo o que será demonstrado nesse artigo, esta documentado no manual oficial do PHP, onde inclusive existem exemplos e comentários de outras pessoas.

O manual do PHP é uma ótima fonte de referência. Lá você tem uma explicação detalhada para a utilização de praticamente todas as funções, e pode ser encontrado aqui: http://www.php.net/manual/pt_BR/index.php

Uma forma rápida de acesso ao manual, é ir direto na página da função desejada, por exemplo:

http://php.net/include
http://php.net/echo
http://php.net/date
http://php.net/string

Os tipos de dados

Os principais tipos de dados em PHP, são: Booleanos, Inteiros, Números de ponto flutuante e Strings.

Não abordarei os demais tipos de dados, pois não serão comentados neste material introdutório.

Booleano, é o tipo de dado Sim / Não, Verdadeiro / Falso, 1 / 0.

Em PHP são descritos como true e false, ou 1 e 0. Onde 1 é true, e 0 é false.

Inteiros (Z), os que você aprendeu no ensino fundamental: …, -2, -1, 0, 1, 2, …

Números de Ponto Flutuante, são números reais: -1.15, 0.333333, 1, 1.5, 400.20, …

e finalmente, uma String é uma cadeia de caracteres (texto, frase, palavra…):

Uma string em PHP é descrita dentre ‘ (aspas simples) ou ” (aspas duplas).

A diferença entre uma string entre aspas simples, e outra entre aspas duplas, é que a string entre aspas duplas, sempre espera por receber uma variável (dentro dela), como será visto mais além, durante a leitura.

“String entre aspas duplas”

‘String entre aspas simples’

Comentários

Assim como no HTML, o PHP também possui comentários, vejamos:

Em HTML:

<!-- Comentário no meio de um arquivo HTML -->

em PHP:

<?php

// Comentário no meio de um arquivo PHP (somente uma linha)

/*
Comentário para
várias linhas, em PHP
(várias linhas)
*/

?>

As condições If-then-else (Se-então-senão)

Não se assute com essa parte do material, pois é só um pré-requisito para o melhor entendimento do material por um todo. Você conseguirá entender melhor isso conforme o andamento da leitura, vendo a aplicação disso na prática.

O if-then-else trabalha em cima de condições, condições que são geralmente são avaliadas através de Operadores Comparativos e Operadores Lógicos.

Os principais Operadores Comparativos, são: == (igual), != (diferente), < (menor), > (maior), <= (menor ou igual), >= (maior ou igual).

Os principais Operadores Lógicos, são: && (e), || (ou) e ! (negação).

Na prática, isso tudo é muito simples:

1 == 1, 1 é igual à 1
1 != 2, 1 é diferente de 2

1 < 2, 1 é menor que 2
2 > 1, 2 é maior que 1

1 <= 2, 1 é menor ou igual à 2
2 >= 2, 2 é maior ou igual à 2

Agora em conjunto com os Operadores Lógicos:

1 == 1 && 1 < 2, 1 é igual à 1, E, 1 é menor que 2.
2 > 1 && 2 >= 2, 2 é maior que 1, E, 2 é maior ou igual à 2.

A sintaxe do if-then-else é mais simples ainda:

If

se (verdade), então
	faz isso
fim

If, Else

se (verdade), então:
	faz isso
senão
	faz isso 2
fim

Agora, traduzindo para o PHP, seria:

If

if (condicao for verdade)
{
	echo 'faz isso';
}

If, Else

if (condicao for verdade)
{
	echo 'faz isso';
}
else
{
	echo 'faz isso 2';
}

O PHP também suporta o Else-If (Senão-se):

<?php
	if (numero < 0)
	{
		// Numéro negativo
	}
	elseif (numero < 5)
	{
		// Número menor que 5
	}
	elseif (numero <= 10)
	{
		// Número menor ou igual a 10
	}
	else
	{
		// Um número qualquer, acima de 10
	}
?>

Existe também outra forma de se fazer um If, que é chamado de Operador Ternário:

CONDICAO ? ENTAO : SENAO

em PHP:

<?php 1 == 1 ? 1 : O; ?>

Explicando: Se 1 é igual a 1, então 1, senão 0.

O include

A instrução include pode facilitar muito na criação do layout, pois possibilita separar o layout em arquivos, como no exemplo abaixo:

<?php include 'cabecalho.php'; ?>

Olá Mundo!

<?php include 'rodape.php'; ?>

Notas

  • O arquivo utilizado no include não precisa necessáriamente ser PHP, pode ser qualquer tipo de arquivo de texto plano, ou seja, nada de imagens, claro.
  • O que o include faz, basicamente, é embutir o arquivo especificado formando um único arquivo.
  • Um include pode também conter outros include’s. Você pode ter um include chamado menu.php dentro do seu cabecalho.php.

Utilização de Variáveis

Suponha que o arquivo cabecalho.php contenha o seguinte trecho de código:

<html>
<head>
	<title>Título da Página</title>
</head>

Veja que se você utilizar o arquivo cabecalho.php, em todas as suas páginas, todas as páginas terão o mesmo título, pois ele esta definido de forma estática, imutável.

Caso queira que cada página contenha um título diferente, por exemplo: Início, Blog e Contato.

Você deve especificar que o arquivo cabecalho.php contém uma área de conteúdo variável, sujeita a modificações, mutável. Isso é feito através da utilização de variáveis.

Como exemplo, um arquivo chamado contato.php, conteria o seguinte trecho de código:

<?php
	$titulo_da_pagina = 'Contato';
?>

<?php include 'cabecalho.php'; ?>

Entre em contato conosco... Telefone: (99) 9999-9999

<?php include 'rodape.php'; ?>

E no arquivo cabecalho.php seria especificada a variável, no lugar do título:

<html>
<head>
	<title>Meu Site | <?php echo $titulo_da_pagina; ?></title>
</head>

A instrução echo, basicamente imprime o que é passado de parâmetro. No caso acima, uma variável, que foi pré-definida com o conteúdo: Contato

A sintaxe da variável é simples. Para a criação, utiliza-se:

$nomedavariavel = 'Conteudo da variavel';

O $ (sifrão) é o que identifica uma variável. O nome das variáveis podem conter somente letras, números e _ (underline), mas nunca devem começar com número. O conteúdo delas pode variar:

<?php
	$se_for_um_texto = 'Utilize aspas simples...';
	$se_for_um_texto = "ou aspas duplas";
	$se_for_um_numero = 15;
	$se_for_um_valor = 99.99;
?>

Para imprimir uma variável é mais simples:

<?php echo $nomedavariavel; ?>

Utilizando uma variável para especificar um include

Como nós vimos, a sintaxe para um include é a seguinte:

include <STRING>;

Para você poder inserir uma variável dentro da string, a string deverá iniciar e terminar com ” (aspas duplas). Pois uma string com aspas duplas, indica que ela poderá conter variáveis, então tratará o $ (sifrão) de forma diferente, como se fosse uma variável.

$pagina = 'historia'; // não haverá nenhuma variável no meio da string

include "includes/$pagina.php"; // existe uma variável no meio da string

Lembre-se, que se você utilizar aspas simples em uma string que contém uma variável, o sifrão será impresso como se fosse um sifrão mesmo:

<?php
	echo 'minha variável $teste';
	// imprimirá: minha variável $teste
?>

Notas

  • Lembre-se de utilizar o “;“, caso contrário terá problemas.
  • Prefira usar na maioria das vezes, use apenas quando for necessário colocar uma variável dentro da string.
  • Em alguns códigos, você pode encontrar a função “print” no lugar do “echo“, as duas fazem praticamente a mesma coisa, mas dê sempre preferência ao echo.

Verificação de tipos de variáveis

Você pode verificar se uma variável é do tipo que você espera, exemplos:

<?php
	if (is_int(1))
		echo 'verdadeiro';
	if (is_numeric(1.5))
		echo 'verdadeiro';
	if (is_string('foobar'))
		echo 'verdadeiro';
	if (is_string(100))
		echo 'falso';
?>

Variáveis Globais: $_GET e $_POST

Supondo que você tenha uma página chamada teste.php, vamos fazer alguns testes com essas variáveis globais.

A variável global $_GET, serve para transportar uma variável da URL para dentro do seu código, por exemplo, tendo o teste.php com o seguinte conteúdo:

<?php echo $_GET['pagina']; ?>

Ao chamarmos: http://seusite/teste.php?pagina=exemplo, você terá:

exemplo

E basicamente é isso. Porém também temos que trabalhar visando que essa variável pode não existir, então é necessário trata-la, para evitar erros, então usamos a condição if-then-else junto à função empty.

A função empty retorna TRUE, caso a variável:

  1. Não exista
  2. Seja 0 (zero)
  3. Seja false (booleano)
  4. Esteja em branco

Caso contrário, retorna true.

<?php
	if (empty($_GET['pagina']))
	{
		echo 'a variável página não existe, ou esta vazia';
	}
	else
	{
		echo $_GET['pagina'];
	}
?>

As variáveis $_GET são comumente utilizadas em includes, porém deve haver um cuidado muito grande.

Sempre verifique qual o conteúdo da variável antes de coloca-la no include, por exemplo:

if (empty($_GET['pagina'])) $pagina = NULL;
else $pagina = $_GET['pagina'];

if ($pagina == 'historia') include 'historia.php';
elseif ($pagina == 'contato') include 'contato.php';
elseif ($pagina == 'noticias') include 'noticias.php';
else include 'default.php';

NUNCA utilize:

include $_GET['pagina'] . '.php';

Pois isso poderá ocasionar uma invasão no seu site, mas isso não é o foco do artigo, apenas não faça-o, tenha total controle do que será incluso.

A variável global $_POST, é geralmente utilizada em formulários, de login por exemplo, onde não é recomendado óbviamente mostrar a senha na URL.

Variáveis $_POST são criadas quando um formulário é especificado com method=”POST”, por exemplo:

form.php

<form method="POST" action="teste.php">
	Nome: <input type="text" name="meunome" />
	Idade: <input type="text" name="idade" />
	<input type="submit" value="Enviar" />
</form>

Para recuperar o valor desse campo no PHP, você teria de fazer:

teste.php

<?php
	// verificando se o método é mesmo POST
	if ($_SERVER['REQUEST_METHOD'] == 'POST')
	{
		if (empty($_POST['meunome']))
			$meunome = ''; // nenhum nome especificado
		else
			$meunome = $_POST['meunome'];

		if (empty($_POST['idade'))
			$idade = 0;
		else
			$idade = $_POST['idade'];

		// função is_int(), utilizada pra verificação do tipo Inteiro
		if (is_int($idade) && $idade >= 18)
			echo "Bem-vindo $nome"; // imprimindo saudação
		else
			echo "Conteúdo proibido para menores";
	}
?>

Simples não?

Trabalhando com Datas

Você pode automatizar aquele famoso “Copyright” no rodapé da página, utilizando a função date() do PHP:

rodape.php

<div class="rodape">
Todos os direitos reservados &copy 2008-<?php echo date('Y'); ?>
</div>
</body>
</html>

O que vai “dentro” de uma função, é chamado de argumento. No exemplo acima, foi passado apenas um argumento, do tipo string: ‘Y’, o que diz à função date que queremos o ano (Year). Então, será impresso:

Todos direitos reservados &copy 2008-2009

Exibindo a data de hoje:

<?php echo date('d/m/Y'); ?>

Verificando se é Manhã, Tarde ou Noite (Comentado)

<?php
	// Hora
	$hora = date('H');
	// se Hora for maior que 18 ou menor que 5
	// de 18:01 até 23:59 ou 0 até 04:59
	if ($hora > 18 || $hora < 5) echo 'Boa Noite';
	// se Hora for menor que 12
	// de 05:00 até 11:59
	elseif ($hora < 12) echo 'Bom dia';
	// senão... é de tarde
	// de 12:00 até 18:00
	else echo 'Boa tarde';
?>

Uma lista com todos os formatos para a função “date” pode ser encontrada no manual do PHP, em: http://www.php.net/manual/en/function.date.php

Tratamento de Strings

strtolower()

A função strtolower() transforma todos caracteres em letras minúsculas.

Exemplo

<?php echo strtolower('FooBar'); ?>

Imprimirá

foobar

Manual

http://br2.php.net/strtolower

strtoupper()

A função strtoupper() é o inverso da strtolower(), transforma todos caracteres em letras maiúsculas.

Exemplo

<?php echo strtoupper('foobar'); ?>

Imprimirá

FOOBAR

Manual

http://br2.php.net/strtoupper

number_format()

A função number_format() formata números, valores por exemplo.

Exemplo

R$ <?php echo number_format(1300.40, 2, ',', '.'); ?>

Imprimirá

R$ 1.300,40

Manual

http://br2.php.net/number_format

trim()

A função trim() remove espaços no começo e no fim da string.

Exemplo

<?php echo trim('   Texto'); ?>

É muito útil também para fazer validações:

<?php
	if (trim($nome) == '')
		echo 'Nome em branco';
?>

Imprimirá

Texto (sem nenhum espaço no começo)

Manual

http://br2.php.net/trim

wordwrap()

A função wordwrap() quebra um texto em partes, a cada N caracteres.

Exemplo

<?php echo wordwrap('um texto muito, mas muito longo.', 8, '<br />'); ?>

Imprimirá

um texto<br />
 muito, <br />
mas muit<br />
o longo.

Manual

http://br2.php.net/wordwrap

nl2br()

A função nl2br() transforma quebras de linha em <br /> (HTML). Muito útil também quando retornando um campo texto, de um banco de dados.

Exemplo

<?php echo nl2br('um
outro texto
só para exemplo...'); ?>

Imprimirá

um<br />
outro texto<br />
só para exemplo...

Manual

http://br2.php.net/nl2br

strlen()

A função strlen() retorna quantos caracteres a string possui.

Exemplo

<?php echo strlen('cinco'); ?>

Imprimirá

5

Manual

http://br2.php.net/strlen

htmlentities()

A função htmlentities() converte caracteres que podem ocasionar problemas no seu HTML, como <, > e & em entidades correspondentes, como: &lt;, &gt; e &amp.

Exemplo

<?php echo strlen('<foo>bar&'); ?>

Imprimirá

&lt;foo&gt;bar&amp;

Manual

http://br2.php.net/htmlentities

urlencode()

A função urlencode() serve para você codificar uma string de uma forma que ela fique de acordo com a especificação, do que é permitido utilizar em uma URL.

Exemplo

<?php
	$titulo = 'Primeira noticia, teste';
	echo 'http://meusite/noticia.php?id=10&titulo=' . urlencode($titulo);
?>

Imprimirá

http://meusite/noticia.php?id=10&titulo=Primeira+noticia%2C+teste

Manual

http://br2.php.net/urlencode

urldecode()

A função urldecode() é o inverso da urlencode().

Exemplo

<?php echo urldecode('Primeira+noticia%2C+teste'); ?>

Imprimirá

Primeira noticia, teste

Manual

http://br2.php.net/urldecode