Escolar Documentos
Profissional Documentos
Cultura Documentos
PDF gerado usando o pacote de ferramentas em código aberto mwlib. Veja http://code.pediapress.com/ para mais informações.
PDF generated at: Fri, 06 Dec 2013 10:27:22 UTC
Conteúdo
Páginas
Capa 1
Prefácio 1
Introdução 1
Conhecendo a linguagem 3
O PHP 3
Instalação 4
Sintaxe básica 6
Comentários 8
Echo 8
Include 9
If...Else 10
Variáveis 11
Strings 17
Operadores 19
Funções 21
Orientação a Objetos 25
Classes 25
Anexos 26
Exercícios 26
Funções de compressão 27
Funções de Calendário 29
Extensões do PHP 30
Segurança 32
Outras informações 33
Bibliografia 33
Ligações externas 33
Autores 34
Referências
Fontes e Editores da Página 37
Fontes, Licenças e Editores da Imagem 38
Licenças das páginas
Licença 39
Capa 1
Capa
Ir para o Índice
Prefácio
Este é um tutorial de PHP para principiantes, ou seja, para pessoas que nunca tiveram contacto com PHP antes.
Pretende-se um livro simples, seguindo uma ordem de aprendizagem cronológica e ordenada.
Esta obra é o resultado da experiência de várias pessoas, que acreditam que a melhor forma do conhecimento é o
conhecimento compartilhado.
Introdução
Pré-requisitos
Este curso pretende ensinar a desenvolver toda a compreensão sobre a linguagem PHP em pouco tempo (em alguns
meses, dependendo do seu empenho, o leitor já será um bom programador de PHP). Este curso assenta-se numa
técnica de aprendizagem denominada Padrão Eficaz, conceito desenvolvido no livro Introdução à Programação.
Assim sendo, um dos pré-requisitos é a leitura compreensiva deste livro para poder acompanhar este curso com
sucesso. Outras fontes externas serão, obviamente, construtivas.
Se o leitor já tiver alguma experiência com outras linguagens de programação, provavelmente poderá saltar todos os
tópicos do livro de Introdução à Programação, não deixando de ler, naturalmente, a parte sobre o Padrão Eficaz.
O PHP é uma linguagem que, embora possa ser usada para a construção de aplicações baseadas em script para
funcionamento no computador, é muito mais eficaz para a elaboração de scripts para uso em páginas dinâmicas na
Internet. Se a última opção for o seu objectivo - e provavelmente o é -, é importante que tenha uma visão geral sobre
HTML (tags, meta-tags, estrutura do documento), assim como uma abordagem sobre o sucessor do HTML, o
XHTML, e sobre a estrutura de folhas de estilo CSS. Referências poderão ser encontradas aqui: Curso de HTML,
XHTML e CSS.
É necessária a instalação de um servidor Web com PHP. Para o estudo dos temas relacionados com a ligação às
bases de dados MySQL, é necessária também a existência de um servidor SQL. Para facilitar a instalação e
configuração destas aplicações, sugerimos aos usuários de Windows (NT series ― NT, 2000 e XP) descarregar a
última versão do Wamp [1] e instalá-la em seu ambiente. Este pacote inclui o servidor Apache 2, PHP5 e MySQL5 já
configurados e prontos a arrancar. Usuários de Linux e MacOS possivelmente já têm um servidor Web instalado;
para informações sobre instalação, se necessário for, e configuração das aplicações, podem consultar os seguintes
sítios, em inglês: http:/ / www. lampware. org/ , http:/ / www. mysql-apache-php. com/ . No caso de o leitor querer
Introdução 2
saber como se procede para instalar manualmente todo esse software, poderá ler este pequeno tutorial sobre a
instalação do PHP (não incluído no curso).
O uso de um editor PHP com realce de sintaxe será importante para a sua aprendizagem; há vários deles disponíveis
gratuitamente na Internet. Para Linux, há muitos editores que suportam realce de sintaxe, por exemplo, o Kate [2],
para usuários do KDE; o Vim [3], feito originalmente para o terminal, mas que agora conta com versões gráficas
também. No MacOS o Taco [4] é radicalmente a melhor opção.
No Windows, o PHP Editor [5] é uma boa opção, porque já traz o Manual do PHP incluído, um mini-servidor Web e
um interpretador de códigos PHP. No entanto o programa não é atualizado há mais de 3 anos, portanto não suportará
os recursos introduzidos nas versões mais modernas do PHP. Mas também há vários editores oriundos do Linux que
foram portados para o Windows, por exemplo o Vim. Para Windows, também temos o EasyEclipse for PHP [6], que
auxilia na codificação, apresentando alguns tópicos da documentação do PHP, e autocomplete de códigos orientados
a objetos.
Referências
[1] http:/ / www. wampserver. com
[2] http:/ / www. kate-editor. org/
[3] http:/ / www. vim. org/
[4] http:/ / tacosw. com/ main. php
[5] http:/ / www. phpeditor. kit. net
[6] http:/ / www. easyeclipse. org/ site/ distributions/ php. html
3
Conhecendo a linguagem
O PHP
PHP quer dizer PHP: Hypertext Preprocessor (PHP: Processador de Hipertexto). Esta linguagem nasceu pela mão
de Rasmus Lerdof em 1994, como um CGI [1] escrito em Linguagem C que inicialmente interpretava muito
facilmente formulários. A primeira designação dada foi de FI (Form Interpreter) porém, devido à criação de
inumeras funções pela comunidade [ PHP Team [2]] que se ia desenvolvendo pela internet, a linguagem teve que, em
1997, ser redenominada como PHP.
Utilização
O PHP é uma das mais abrangentes ferramentas que o homem possui atualmente. Por ser uma linguagem server-side,
ou seja roda direto do servidor e só mostra ao usuário o resultado já processado, o PHP tem poder semelhante ao
famoso Perl. É possível a criação de uma grande variedade de coisas com o PHP, tendo em vista que esta é uma
linguagem que podemos definir como inteligente, pois se não existir uma classe para uma determinada função
podemos criá-la. Porém, ferramentas que rodam do lado do cliente como a abertura de um pop-up, um mimo de
serpentinas a cairem pelo ecrã ou um slideshow de imagens não pode ser criado por esta linguagem. Se procura uma
boa linguagem para criar esse tipo de ferramentas procure o Javascript. É por isso que se diz que o PHP e o
Javascript são linguagens que se complementam!
• Conheça um pouco mais sobre PHP visitando este site [3].
Referências
[1] http:/ / pt. wikipedia. org/ wiki/ CGI
[2] http:/ / www. php. net
[3] http:/ / www. phpbrasil. com
Instalação 4
Instalação
Em Windows
Instalação
• Execute a instalação do Apache e instale-o com as configurações padrão. Se quiser, pode escolher outro diretório
para a instalação.
• Extraia o MySQL em uma pasta qualquer. Recomendo dentro da pasta onde você instalou o Apache. Ex:
C:\Arquivos de Programas\Apache Group\Apache\mysql.
• Extraia o PHP 5 na pasta C:\php5.
Obs.:
• Existe o arquivo de instalação do PHP (*.msi), porém, o pacote compactado já vem pré-configurado para que rode
mais rápido na máquina na qual está sendo executado.
• É possível descompactar os arquivos do PHP em outro endereço. Por exemplo: C:\Arquivos de programas\PHP5,
porém é necessário informar a mudança de endereço ao Apache.
Para maiores detalhes, consulte a seção de configuração do Apache logo abaixo.
Configuração do PHP
Na pasta aonde se encontra o PHP5, copie os arquivos php5ts.dll e libmysql.dll para a seguinte pasta, de acordo com
o seu Windows:
• Em Windows 9x/Me: C:\windows\system;
• em Windows XP: C:\windows\system32;
• para Windows NT/2000: C:\winnt\system32.
O arquivo libmysql.dll é necessário para o funcionamento do MySQL no PHP.
Abra o arquivo php.ini edite a linha extension_dir = "./" alterando-a para extension_dir =
"c:/php5/ext/" — C:/php5/ext/ é o diretório aonde ficam as extensões do PHP (MySQL, Curl, GD, etc).
Caso não encontre o arquivophp.ini no diretório do PHP5, renomeie o arquivo php.ini-dist para php.ini. Agora,
localize a linha ;extension=php_mysql.dll e tire o ponto e vírgula ; de seu início.
Se quiser também, já aproveite e faça o mesmo na linha ;extension=php_gd2.dll, caso queira a biblioteca
GD para a manipulação de imagens.
Salve as alterações e mova o arquivo o php.ini para a pasta:
• C:\windows (em Windows 9x/Me/XP);
• C:\winnt (para Windows NT/2000).
Instalação 5
Configuração do Apache
Acrescente no final do arquivo httpd.conf no endereço C:\Arquivos de programas\Apache Software
Foundation\Apache2.2\conf (por exemplo) as seguintes linhas:
Este endereço é aonde se encontra o arquivo referente a versão do apache, dentro da pasta PHP.
Ainda no endereço C:\Arquivos de programas\Apache Software Foundation\Apache2.2\conf abra o arquivo
mime.types (utilize o bloco de notas mesmo ou outro editor de texto disponível) e acrescente as seguintes linhas:
application/x-httpd-php php
application/x-httpd-php-source phps
Configuração do MySQL
Não há nada para se configurar no MySQL, apenas devemos iniciá-lo caso não tenha sido instalado como serviço (só
é possível no Windows NT/2000/XP). Vá para a pasta na qual foi instalado o MySQL e na pasta bin execute o
arquivo mysqld.exe, iniciando o servidor do MySQL. Lembre-se: dessa maneira teremos que iniciar o MySQL
sempre. Se não quisermos ir até a pasta toda vez que iniciarmos o computador, devemos criar um atalho para o
arquivo mysqld.exe na pasta Inicializar/Iniciar (dependendo da versão do Windows) do Menu Iniciar.
Falta pouco!
Vamos até Arquivo|Iniciar/Programas/Apache HTTP Server/Control Apache Server/Restart para reinicializar
o Apache com as alterações feitas. Pronto! Agora temos PHP5 + MySQL + Apache no Windows!
Para efetuar um teste, criaremos um arquivo chamado phpinfo.php, com o conteúdo:
<?php
phpinfo();
?>
Colocaremos ele na pasta htdocs dentro da pasta do Apache. Abra seu navegador e digite http:/ / localhost/ phpinfo.
php . Se a página abrir com as informações do PHP, significa que tudo deu certo.
Obs.: Lembrando que nos caminhos que foram mostrados, o C:\ deve ser substituído pela unidade na qual está seu
Windows e que também é aonde estão instalados os programas. Utilizamos a unidade C:\ no artigo pois é a letra que
é normalmente utilizada.
Caso queira usar register_globals no PHP, abra o arquivo php.ini no endereço C:\windows\ e localize a
linha register_globals = Off e troque Off por On. Saiba mais neste endereço: http:/ / www. php. net/
manual/pt_BR/security.registerglobals.php
Instalação 6
Em Linux
Ver instruções em inglês: Setup and Installation (Linux) [4]
Referências
[1] http:/ / httpd. apache. org/ download. cgi
[2] http:/ / dev. mysql. com/ downloads/
[3] http:/ / www. php. net/ downloads. php
[4] http:/ / en. wikibooks. org/ wiki/ PHP_Programming/ Setup_and_Installation#Linux
Sintaxe básica
Definir o início e o fim do código PHP
Para que o interpretador PHP reconheça o código que deverá "varrer" é necessário delimitá-lo por tags. Existem
três tipo de tags de iniciação e finalização de código: <?php e ?>, <? e ?> e <script language="php">
e </script>. A primeira é usada por omissão, estando sempre disponível. O segundo tipo não é aconselhável uma
vez que, por ser uma short-tag (bem à maneira do ASP), poderá não estar activada no ficheiro de configuração do
PHP. Neste caso qualquer utilizador poderá manipular essa activação ou desactivação da short-tags, logo, se o leitor
criar um script para ser distribuído poderão surgir incompatibilidades com a máquina do utilizador final. O terceiro
tipo foi criado apenas com o propósito de uniformizar as tags de scripting no HTML (como o uso no javascript),
porém, por ser de digitação morosa, não é muito usada.
Programa Hello World.php:
<?php
echo "Olá mundo";
?>
ou (não recomendado):
<?
echo "Olá mundo";
?>
Para ter uma ideia gráfica sobre o que está a ser explicado, analise o primeiro exemplo:
<html>
<head>
<title>Meu primeiro script</title>
</head>
<body>
<?php
echo "Olá mundo";
?>
</body>
</html>
A instrução echo(), como pôde analisar, exibe no navegador o texto que se encontra imediatamente a seguir a ele.
Sobre echo() iremos falar mais tarde.
Sintaxe básica 7
<?php
echo "Olá como estás?";
echo "Tudo bem contigo?";
?>
ou
<?php echo "Olá como estás?"; echo "Tudo bem contigo?" ?>
Notem que nesse segundo caso foi retirado a quebra de linhas porque o ponto e vírgula ; é que delimita o comando.
E foi retirado o ponto e vírgula ; do último comando porque logo após é fechada a tag do php, não é uma boa
prática, porém funciona.
<?php echo "Se não usar ponto e vírgula (;) o interpretador irá exibir um erro"; ?>
Obs.: Repare bem que o uso de ; no meio texto a ser exibido não afeta a instrução.
Comentários 8
Comentários
Comentários são tudo aquilo que descrevemos no PHP, sem que o interpretador as varre. O Leitor pode escrever
tudo o que quiser dentro dos comentários sem se importar com o tamanho ou o conteúdo escrito.
Como o PHP é baseado no C e no C++, ele suporta a sintaxe de comentários das duas linguagens, veja baixo.
Com /* comentário */:
<?php
/* Isto é um comentário
de várias linhas no PHP */
echo "Comentário acima!";
?>
Com //comentário:
<?php
echo "Outro comentário!"; //Comentário de um linha só
?>
Mas não é recomendado usar este último, pois será descontinuado em versões futuras do PHP.
Echo
A função echo é a instrução que envia para a saída qualquer informação, podendo conter texto, números ou
variáveis.
Deixemos os exemplos com variáveis para quando entendermos o uso das variáveis nos capítulos subsequentes.
Exemplo de uso do echo:
<?php
echo "Olá, tenho ";
echo 22;
echo " anos.";
?>
Podemos abreviar essa escrita concatenando os três parâmetros que fornecemos pelo operador . (ponto,
concatenador de strings):
<?php
echo "Olá, tenho 22 anos.";
?>
Formatação do texto
As strings passadas para a instrução echo também podem conter formatações de texto em HTML, já que, na
maioria dos casos, o PHP é usado para produzir saída em HTML. Por exemplo:
<?php
echo "<h2> Título em h2 </h2>";
echo "<h3> título em h3 </h3>";
echo "<i>Em itálico</i>";
echo "<b>Em negrito</b>";
echo "<strong>Em negrito</strong>";
?>
Usando as aspas
Para poder usar as aspas numa frase estas deverão ser precedidas por \ (barra invertida).
<?php
echo "Na frase a seguir o nome xpto virá dentro de aspas: ";
echo "O personagem que eu mais gosto é o \"xpto\", sem dúvida";
?>
As aspas duplas " podem sempre ser substituídas por apóstrofos/aspas simples '. Ambas as formas estão corretas.
No caso de usar os apóstrofos, deverá usar a expressão \' para escrever apóstrofos no ecrã. A principal diferença
entre os dois tipos de aspas é que, com aspas duplas, certas seqüências de caracteres são interpretadas de maneira
especial.
Include
O comando PHP include é muito útil porque permite incluir dinamicamente o conteúdo de um ficheiro PHP
dentro de outro.
Uma das utilizações mais simples é criar menus para um site que depois podem ser utilizados em outras páginas. No
exemplo a seguir criaríamos um ficheiro chamado navegar.inc que poderia ser incluído em qualquer página do site.
Em cada ficheiro em que se quisesse incluir o ficheiro navegar.inc, escreveríamos:
Poderiamos ter o menu do ficheiro navegar.inc em qualquer página. Bastava alterar o menu em navegar.inc para o
alterar em qualquer página.
Obs.: Evite utilizar arquivos (ficheiros) em PHP que não terminem com a extensão PHP. Dizemos isso por motivos
de segurança, já que, tendo a URL de um arquivo de extensão como .inc ou .class, o browser exibirá todo o seu
conteúdo (código, senhas, usuários, etc), pois esse tipo de arquivo não é interpretado pelo servidor. Então devemos
usar algo como pagina.inc.php ou pagina.class.php, etc.
If...Else 10
If...Else
A palavra-chave if em português equivale ao se, já o else ao se não.
Se ocorrer a condição A, então o bloco de instruções abaixo de A é executado, se não (else), então o bloco de
instruções abaixo de B é executado.
Veja abaixo como é a sintaxe.
Exemplo:
$a=10;
$b=15;
if($a<$b)
echo "Variável A é menor que B";
$x=3;
if ($x==2){
echo "x vale 2";
} else if ($x==3){
echo "x vale 3";
}else{
echo "x é diferente de 2 e de 3";
}
Lembrando que no if, para testar o valor de uma variável, usamos == e não apenas =.
Variáveis 11
Variáveis
Variáveis:
• Começam sempre pelo símbolo $ seguido de uma letra.
• Podem conter símbolos numéricos (0 - 9) alfanuméricos minúsculos (a - z) e alfanuméricos maíusculos.
• Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um underscore _.
Por exemplo: $total_variavel.
Tipos
O PHP suporta todos os oito tipos primitivos.
Boolean
O boolean é um valor lógico que pode assumir ou true ou false.
Neste exemplo o valor boleano é nos dado a conhecer pela função gettype():
<?php
echo gettype((bool) ""); // bool(false)
echo gettype((bool) 1); // bool(true)
echo gettype((bool) "foo"); // bool(true)
?>
<?php
$foo = TRUE;
$foo = FALSE;
?>
Como podemos ver no exemplo acima, uma expressão tem um valor boleano true se ela contiver alguma coisa, e
false se o seu conteúdo for nulo.
Variáveis 12
Inteiros
Um inteiro é um número do conjunto Z = { ...,-3,-2,-1,0,1,2,3,... }. Pode-se especificar através de notação decimal
(de base 10), hexadecimal (base 16) ou octal (base 8), opcionalmente precedido de sinal (- ou +).
Representação de inteiros:
<?php
$a = 1234; # número decimal
$a = -123; # número negativo
$a = 0123; # número octal - precedido de um 0 - equivalente a 83 em
decimal
$a = 0X1A; # número hexadecimal - precedido de um 0 e um X -
equivalente a 26 em decimal
?>
Se você especifica um inteiro além dos limites de um inteiro, o PHP o interpreta como um ponto flutuante, veja
abaixo.
<?php
$num = 2147483647;
var_dump($num); // Saída: int(2147483647)
?>
Ou:
<?php
$num = 2147483648;
var_dump($num); // Saída: float(2147483648)
?>
É necessário ter em atenção que na saída de uma fracção para um inteiro', os arredondamentos não seguem a regra
matemática, sendo assim é necessário o uso da função round():
<?php
var_dump(25/7); //float(3.5714285714286)
var_dump((int) 25/7); //int(3)
var_dump(round(25/7)); //float(4)
?>
<?php
$a = 1.234;
$b = 1.3e4;
$c = 25.4E-10;
?>
Strings
Uma string é uma série de caracteres sem limites de comprimento. Ela é delimitada, no PHP, por Aspas, apóstrofo ou
pela nova sintaxe heredoc:
<?php
echo 'string delimitada por apóstrofos!';
echo "string delimitada por Aspas";
echo <<<EOF
String delimitada por um heredoc
EOF;
?>
<?php
$carro = "Mercedes";
echo "Ele comprou um bonito $carro"; // funciona
echo "Eles compraram vários {$carro}s"; // funciona
echo "Eu faço um ${carro}"; // funciona
?>
As saídas serão:
• Ele comprou um bonito Mercedes
• Eles compraram vários Mercedess
• Eu faço um Mercedes
Podemos também modificar strings:
<?php
$str = "Olha que alí há mal"; // Apresenta "Olha que alí há mal"
$str{strlen($str)-1} = "r"; // Apresenta "Olha que alí á mar"
?>
Ou:
<?php
$str = "Pegue isto"; // Apresenta "Pegue isto"
$str{strlen($str)-10} = "S"; // Apresenta "Segue isto"
?>
Arrays
Um array é um mapa ordenado, com chaves e valores.
Exemplo:
<?php
$arr = array(1 => "um", 2 => "dois", 3 => TRUE);
echo $arr[1]; // Imprime "um"
echo $arr[3]; // Imprime "TRUE"
Variáveis 14
?>
<?php
$arr = array("versão" => array ("beta" => "0.5x",
"alpha" => "0.1x",
"release" => "0.8x",
"final" => "1.x"
),
"nome" => "PHP software",
"SO" => array("win" => "Windows",
"lin" => "Linux",
"mac" => "MacOS"
)
);
Podemos especificar apenas valores num array, sendo que o interpretador irá tornar cada um dos valores com uma
chave a partir do zero.
<?php
$arr = array(1,45,23,68);
echo $arr[1]; // imprime 45
Manipulação de Tipos
No PHP não é necessário definir o tipo que queremos usar, ou seja, este é determinado pelo contexto em que é
usado. Por exemplo, $var = "string" é uma string, já $var = 12, é um inteiro.
Para alternarmos entre os tipos usamos uma sintaxe de moldagens:
<?php
$foo = 5; // $foo é um inteiro
$bar = (boolean) $foo; // $bar é um boleano
?>
Moldagens permitidas:
• int ou integer: moldar para inteiro.
• bool ou boolean: moldar para booleano.
• float, double ou real: moldar para número de ponto flutuante.
• string: moldar para string.
• array: moldar para array.
• object: moldar para objecto.
Exemplos de moldes:
<?php
$str = "Eu sou string";
$int = 12;
$num = 25/85;
$a = (boolean) $str;
$b = (string) $int;
$c = (int) $num;
echo $a . $b . $c;
?>
Variáveis
As variáveis são no PHP representadas por um $ seguido do nome a ela atribuído. É necessário ter em conta alguns
cuidados quando criamos variáveis:
<?php
$var = "Bom ";
$Var = "dia!";
echo $var . $Var; // Exibe "Bom dia!"
É possível escrever-se qualquer um dos 8 tipo primitivos numa variável. As variáveis são usadas para se atribuir um
valor e guardá-lo na memória do computador para execução posterior:
Variáveis 16
<?php
$var = "Ganhou um prémio!";
$count = 3;
if ($count < 5){
echo $var;
}
?>
O script acima exibirá "Ganhou um prémio!" se o valor da variável $count for menor que 5.
Variáveis predefinidas
O PHP oferece variáveis predefinidas de informações vindas do servidor e do navegador, que podem ser usadas pelo
programador. são as chamadas superglobais.
$GLOBALS
Contém referências para todas as variáveis que estão disponíveis dentro do script.
<?php
print_r($GLOBALS);
?>
<?php
echo $GLOBALS["_SERVER"]["HTTP_HOST"];
?>
$_SERVER
Variáveis criadas pelo servidor web e relacionadas com o ambiente de execução.
Pode-se acessar os valores de _SERVER diretamente:
<?php
echo $_SERVER["HTTP_USER_AGENT"];
?>
$_GET
Variáveis enviadas por script para o servidor via método HTTP GET. O que é enviado pelo formulário é mostrado na
barra de endereço.
$_POST
Variáveis enviadas por script para o servidor via método HTTP POST. O que é enviado pelo formulário não é
mostrado na barra de endereço do navegador.
$_COOKIE
Variáveis enviadas por script para o servidor via cookies HTTP.
Variáveis 17
$_FILES
Variáveis enviadas para o script com todas as informações relativas aos arquivos enviados via HTTP.
$_ENV
Variáveis disponíveis no script do ambiente em execução. Em Web é igual ao $_SERVER.
$_REQUEST
Possui todas as variáveis englobadas em $_GET, $_POST e $_COOKIE. Em desuso devido à demora na realização
do script!
$_SESSION
Variáveis que estão diretamente relacionadas no registro da sessão no script.
Strings
Uma string é uma cadeia de caracteres. Geralmente são frases, textos ou linhas de comando.
Algo importante que deve ser considerado é o seguinte: todas as strings devem ser declaradas entre aspas simples
(') ou aspas duplas (").
<?php
?>
Aspas duplas são exatamente iguais as aspas simples, exceto no quesito da interpretação e da velocidade. As aspas
duplas interpretam qualquer variável, matriz (quando estiver entre {}) e comandos de texto (\n (quebra de linha),
\t (tabulação), \r (retorno de carro). Como o interpretador tem que percorrer toda a string em busca de variáveis,
matriz e comandos de texto, a impressão de uma string declarada com aspas duplas pode ser um pouco mais
demorada que a de aspas simples.
<?php
?>
Concatenando strings
A concatenação nada mais é do que a junção de duas ou mais strings. Isso pode se dar também com variáveis,
matrizes, constantes e qualquer outro parâmetro que não puder ser passado (ou que talvez você não queira passar)
dentro de uma string.
O operador de concatenação é o ponto (.).
<?php
?>
<?php
$variavel = 'mar';
print 'O '.$variavel.' é azul';
?>
Operadores 19
Operadores
Existem vários operadores usados no PHP.
Operadores aritméticos
Adição $a + $b Soma de $a e $b
Multiplicação $a * $b Produto de $a e $b
Exemplo:
<?php
$a = 2;
$b = 15.5;
echo $a + $b;
?>
Operadores Bit-a-Bit
Os operadores Bit-a-Bit permitem a manipulação de bits específicos dentro das expressões.
AND $a & $b Os bits que estão ativos tanto em $a quanto em $b são ativados.
XOR $a ^ $b Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados.
NOT ~$a Os bits que estão ativos em $a não são ativados, e vice-versa.
Deslocamento à esquerda $a << $b Desloca os bits de $a $b passos para a esquerda (cada passo significa "multiplica por dois")
Deslocamento à direita $a >> $b Desloca os bits de $a $b passos para a direita (cada passo significa "divide por dois")
Exemplo:
<?php
echo 12 ^ 9;
echo "12" ^ "9";
echo "hallo" ^ "hello";
?>
Operadores 20
Operadores de Comparação
Os Operadores de comparação permitem a comparação de dois valores.
Não idêntico $a !== $b Verdadeiro se $a diferente de $b, ou não são do mesmo tipo
Exemplo:
<?php
$a = 5;
$b = 4;
if ($a > $b) {
echo "$a é maior que $b";
}
?>
Funções 21
Funções
Funções no PHP ajudam muito no desenvolvimento de codigos, reaproveitar codigos é excencial para a
produtividade em um sistema, mostro abaixo um exemplo simples para uma função de conectar ao banco de dados
indiferente do banco do usuario e senha que for usar.
<?php
<?php
// função
//....
//
conectar("root", "******", "banco_dados");
?>
Para se chamar de outra classe utilizando Orientação Objetos utilizamos dessa forma
<?php
class Config{
public function conectar($usuario, $senha, $banco){
$con = mysql_connect("localhost", $usuario, $senha) or die
(mysql_error());
mysql_select_db($banco, $con)or die (mysql_error());
}
}
?>
<?php
include = 'Config.php';
$con = new Config();
$con->conectar("root", "******", "banco_dados");
?>
"trilhão", "quatrilhão");
"trilhões", "quatrilhões");
"novecentos");
$z=0;
for($i=0;$i<count($inteiro);$i++)
for($ii=strlen($inteiro[$i]);$ii<3;$ii++)
$inteiro[$i] = "0".$inteiro[$i];
for ($i=0;$i<count($inteiro);$i++) {
$valor = $inteiro[$i];
$rc = (($valor > 100) && ($valor < 200)) ? "cento" : $c[$valor[0]];
$u[$valor[2]]) : "";
$t = count($inteiro)-1-$i;
if (($t==1) && ($z>0) && ($inteiro[0] > 0)) $r .= (($z>1) ? " de "
: "").$plural[$t];
if ($r) $rt = $rt . ((($i > 0) && ($i <= $fim) && ($inteiro[0] > 0) && ($z < 1)) ? ( ($i < $fim) ? ", " : " e ") : " ") .
$r;
if(!$maiusculas){
} else {
Exemplo de Uso: echo extenso(12.62); // Exibirá: "Doze reais e sessenta e dois centavos.
Funções 23
$cssL, $cssN) {
$res[1] = $limite;
# Primeira página
if($atual == 1) {
if($textos == 1) {
} else if($textos == 2) {
} else {
if($textos == 1) {
$res[0] = " <span class="".$cssL.""><a href="".$url."1">primeira</a> \n <a class="".$cssL."" href="".$url.($atual - 1)."">anterior</a></span> ";
} else if($textos == 2) {
$res[0] = " <span class="".$cssL.""><a href="".$url."1"><<</a> \n <a class="".$cssL."" href="".$url.($atual - 1).""><</a></span> ";
# Paginação
if($minimo < 1) {
$minimo = 1;
$maximo = $limite;
#Pões reticências
if($minimo > 1) {
}
Funções 24
if($i == $atual) {
continue;
#Põe reticências
# Última página
if($atual == $limite) {
if($textos == 1) {
} else if($textos == 2) {
} else {
if($textos == 1) {
$res[0] .= "\n <span class="".$cssL.""><a href="".$url.($atual + 1)."">próxima</a> \n <a class="".$cssL."" href="".$url.$limite."">última</a></span> ";
} else if($textos == 2) {
$res[0] .= "\n <span class="".$cssL.""><a href="".$url.($atual + 1)."">></a> \n <a class="".$cssL."" href="".$url.$limite."">>></a></span> ";
return $res;
unset($atual,$total,$nopg,$url,$textos,$cssL,$cssN,$limite,$res);
?>
Ligações externas
• http://www.vivaolinux.com.br/scripts/verFonte.php?codigo=2992 .
25
Orientação a Objetos
Classes
Classes são tipos predeterminados que contém atributos e métodos.
Objetos
O objeto é o resultado da união entre uma estrutura de dados e todas as operações associadas a ela.
Inicialização de objetos
Para inicializar um objeto, você usa a instrução new, criando uma instancia do objeto em variável. Conforme a figura
abaixo:
Sintaxe de como utilizar objetos em PHP:
<?php
class Primeira {
function mostrar() {
echo "mostrando na tela";
}
}
$frase = new Primeira();
$frase->mostrar();
?>
26
Anexos
Exercícios
Exercício 1: Analise de código
<html>
<head><title>Exercício</title>
</head>
<body>
<?php
$str = array("morango" => "vermelho" , "banana" => "amarela");
echo "O morango é ".$str{"morango"}."<br>";
$first = $str["banana"];
echo "A banana é ".$first."<br>";
Exercício 4: Perguntas
1. O php sempre reconhece os campos name do HTML como variáveis?
2. O que faz este script?
Funções de compressão
Funções PHP de compressão, são funções para PHP utilizadas para a manipulação de certos tipos de arquivos
compactados.
Bzip2
São funções PHP utilizadas para a manipulação de arquivos compactados do tipo Bzip2.
• bzclose — Fecha um ponteiro de arquivo bzip2.
• bzcompress — Comprime uma string em dados no formato bzip2.
• bzdecompress — Descomprime dados no formato bzip2.
• bzerrno — Retorna um número de erro do bzip2.
• bzerror — Retorna o número e string de erro do bzip2 em um array.
• bzerrstr — Retorna a string de erro do bzip2.
• bzflush — Força a escrita de todos os dados que estão no buffer.
• bzopen — Abre um arquivo comprimido com bzip2.
• bzread — Leitura binary-safe de um arquivo bzip2.
• bzwrite — Escrita binary-safe em um arquivo bzip2.
ZIP
São funções PHP utilizadas para a manipulação de arquivos compactados do tipo ZIP.
• zip_close — Fecha um arquivo ZIP.
• zip_entry_close — Fecha o arquivo que está aberto.
• zip_entry_compressedsize — Recupera o tamanho compactado do arquivo que está dentro do arquivo
ZIP.
• zip_entry_compressionmethod — Recupera qual o método de compressão foi utilizado no arquivo.
• zip_entry_filesize — Retorna o tamanho de um diretório de entrada.
• zip_entry_name — Retorna o nome do arquivo.
• zip_entry_open — Abre um arquivo do arquivo ZIP.
• zip_entry_read — Lê de um arquivo aberto.
• zip_open — Abre um arquivo ZIPado.
• zip_read — Lê a próxima entrada em um arquivo ZIPado.
• ZipArchive::addEmptyDir — Add a new directory.
• ZipArchive::addFile — Adds a file to a ZIP archive from the given path.
• ZipArchive::addFromString — Add a file to a ZIP archive using its contents.
Funções de compressão 28
RAR
São funções PHP utilizadas para a manipulação de arquivos compactados do tipo RAR.
• rar_close — Close Rar archive and free all resources.
• rar_entry_get — Get entry object from the Rar archive.
• rar_list — Get entries list from the Rar archive.
• rar_open — Open Rar archive.
• Rar::extract — Extract entry from the archive.
• Rar::getAttr — Get attributes of the entry.
• Rar::getCrc — Get CRC of the entry.
• Rar::getFileTime — Get entry last modification time.
• Rar::getHostOs — Get entry host OS.
• Rar::getMethod — Get pack method of the entry.
• Rar::getName — Get name of the entry.
• Rar::getPackedSize — Get packed size of the entry.
• Rar::getUnpackedSize — Get unpacked size of the entry.
• Rar::getVersion — Get version of the archiver used to add the entry.
Funções de compressão 29
Fontes
• PHP: Bzip2 - Manual [1].
• PHP: Zip - Manual [2].
• PHP: RAR - Manual [3].
Referências
[1] http:/ / br. php. net/ manual/ pt_BR/ book. bzip2. php
[2] http:/ / br. php. net/ manual/ pt_BR/ book. zip. php
[3] http:/ / br. php. net/ manual/ pt_BR/ book. rar. php
Funções de Calendário
Funções de Calendário são funções utilizadas para simplificar a conversão de diferentes formatos de calendários.
O padrão é baseado no formato Julian Day Count [1]. A contagem de dias nesse calendário começa em 1º de Janeiro
de 4713 B.C.
Para converter um calendário para algum formato, você deve primeiro convertê-lo para esse formato e então
converter para o calendário que deseja.
O formato de calendário Julian Day Count é muito diferente do Julian Calendar! [2]. Veja a referência para saber
mais.
• cal_days_in_month — Retorna o número de dias em um mês de um calendário e ano requisitado.
• cal_from_jd — Converte à partir do Julian Day Count para um outro calendário suportado.
• cal_info — Retorna informações sobre um calendário em particular.
• cal_to_jd — Converte um calendário (suportado) para o calendário Julian Day Count.
• easter_date — Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado.
Se nenhum ano tiver sido especificado, será assumido o ano atual.
• easter_days — Obtém o número de dias entre 21 de Março e o dia da Páscoa em determinado ano.
• FrenchToJD — Converte uma data do calendário Republicano da França para o calendário Julian Day Count.
• GregorianToJD — Converte uma data gregoriana para o Julian Day Count.
• JDDayOfWeek — Retorna o dia da semana.
• JDMonthName — Retorna o nome de um mês.
• JDToFrench — Converte do calendário Julian Day Count para o calendário Republicano Francês.
• JDToGregorian — Converte uma data no formato Julian Day Count para o formato Gregoriano.
• jdtojewish — Convete uma data do calendário Julian Day Count para o calendário Judaico.
• JDToJulian — Converte uma data do calendário Julian Day Count para o calendário "Julian".
• jdtounix — Converte do formato de dada Juliana para Unix timestamp.
• JewishToJD — Converte uma data do calendário Judaico para o calendário Julian Day Count.
• JulianToJD — Converte datas no formato "Julian" para o formato Julian Day Count.
• unixtojd — Converte datas do sistema Unix para data Juliana.
Funções de Calendário 30
Ligações externas
1. Em astronomia, com aplicações na cronologia de acontecimentos históricos, a data juliana ou dia juliano é um
método de contar os dias sequencialmente, começando em uma data arbitrária no passado. Ele foi proposto por
Joseph Justus Scaliger.
2. Para mais informações sobre o calendário Julian Day Count, visite » http://www.hermetic.ch/cal_stud/jdn.
htm.Para mais informações sobre sistemas de calendários, visite: » http://www.fourmilab.ch/documents/
calendar/."Excerpts from this page are included in these instructions, and are in quotes" - fonte:
lhttp://br.php.net/manual/pt_BR/intro.calendar.php [1]
3. lhttp://br.php.net/manual/pt_BR/intro.calendar.php [1]
4. Iniciativa: WeB sHp [2]
Referências
[1] http:/ / br. php. net/ manual/ pt_BR/ intro. calendar. php
[2] http:/ / www. webshp. net
Extensões do PHP
Abaixo listo uma série de extensões do PHP, as quais serão mencionadas nesta coleção:
• Funções de compressão de bzip2, rar e zip
• Funções de Calendário
• Funções de manipulação de PDF
• Funções de crack
• Família de funções ctype
• Biblioteca de rotinas de cliente URL - CURL
• Funções de pagamento Cybercash
• Funções DBM
• Camada de funções de abstração de banco de dados DBA
• Funções de dBase
• Funções dbx
• Funções DOM XML
• Funções EXIF
• Funções FrontBase
• Funções de formato de dados de formulários (Forms Data Format) FDF.
• Funções de filePro
• Funções de FTP
• Funções da biblioteca de imagens GD
• Funções de Gettext
• Funções de HyperWave
• Conversão de tabela de caracteres ICONV
• Funções de Informix
• Funções de manuseio de IIS
• Funções de IMAP POP3 e NNTP
• Funções de Ingres II
• Funções de InterBase
• Funções de Java
• Funções de LDAP
Extensões do PHP 31
Ligações externas
• http://pt.wikipedia.org/wiki/PHP [1]
• http://br.php.net/manual/pt_BR [2]
• Iniciativa: webshp.net [2]
Referências
[1] http:/ / pt. wikipedia. org/ wiki/ PHP
[2] http:/ / br. php. net/ manual/ pt_BR
Segurança 32
Segurança
PHP ainda é uma linguagem com muitas deficiências no que diz respeito a segurança, diariamente notificações de
atos de vandalismo provocado pelos "defacers" são expostas na mídia, e na maioria das vezes as brechas encontradas
por esses criminosos para ter acesso restrito a determinada página se encontra no PHP.
Outras informações
Bibliografia
Ligações externas
• http://www.revistaphp.com.br/print.php?id=164
• http://www.vivaolinux.com.br/dicas/verDica.php?codigo=9255
• http://br.php.net/manual/pt_BR
• http://pt.wikipedia.org/wiki/PHP
• http://www.webshp.net
• http://www.vivaolinux.com.br/scripts/verFonte.php?codigo=2992
• http://dev.mysql.com/downloads/
• http://en.wikibooks.org/wiki/PHP_Programming/Setup_and_Installation#Linux
• http://httpd.apache.org/download.cgi
• http://localhost/phpinfo.php
• http://pt.wikipedia.org/wiki/CGI
• http://tacosw.com/main.php
• http://www.easyeclipse.org/site/distributions/php.html
• http://www.kate-editor.org/
• http://www.lampware.org/
• http://www.mysql-apache-php.com/
• http://www.php.net
• http://www.php.net/downloads.php
• http://www.php.net/manual/pt_BR/security.registerglobals.php
• http://www.phpbrasil.com
• http://www.phpeditor.kit.net
• http://www.vim.org/
• http://www.wampserver.com
• http://br.php.net/manual/pt_BR/intro.calendar.php
• http://www.fourmilab.ch/documents/calendar/
• http://www.hermetic.ch/cal_stud/jdn.htm
• http://br.php.net/manual/pt_BR/book.bzip2.php
• http://br.php.net/manual/pt_BR/book.rar.php
• http://br.php.net/manual/pt_BR/book.zip.php
• http://br.php.net/manual/pt_BR/refs.compression.php
Autores 34
Autores
Os usuários citados abaixo contribuiram para o desenvolvimento deste trabalho. Estes dados foram obtidos em
29/11/2013.
• 150.163.97.200
• 152.92.2.63
• 177.1.172.128
• 177.12.208.10
• 177.124.57.35
• 177.135.170.210
• 177.182.217.185
• 177.69.16.21
• 180.44.101.75
• 186.207.233.79
• 186.214.186.184
• 186.220.201.33
• 186.241.191.143
• 187.12.96.34
• 187.13.22.201
• 187.15.123.109
• 187.17.227.90
• 187.23.14.250
• 187.34.227.48
• 187.38.17.57
• 187.4.0.29
• 187.41.96.206
• 187.43.39.113
• 187.53.139.50
• 187.56.87.200
• 187.59.121.44
• 187.69.75.147
• 189.104.157.57
• 189.110.128.203
• 189.111.160.10
• 189.115.238.235
• 189.124.27.10
• 189.2.226.2
• 189.21.199.67
• 189.21.201.3
• 189.23.26.158
• 189.25.61.156
• 189.27.209.186
• 189.29.160.201
• 189.56.127.130
• 189.59.177.123
• 189.7.130.241
Autores 35
• 189.72.30.81
• 189.8.114.170
• 189.84.255.127
• 193.136.104.23
• 193.136.21.161
• 200.103.169.99
• 200.140.66.229
• 200.152.225.182
• 200.152.225.183
• 200.158.110.225
• 200.158.7.136
• 200.176.201.133
• 200.193.67.167
• 200.198.216.103
• 200.198.55.146
• 200.202.193.1
• 200.205.72.131
• 200.206.210.80
• 200.213.185.130
• 200.232.149.140
• 201.19.201.151
• 201.22.234.97
• 201.26.19.169
• 201.3.239.53
• 201.3.49.195
• 201.35.185.207
• 201.51.50.79
• 201.68.88.112
• 201.73.5.6
• 201.8.248.211
• 201.9.243.53
• 201.9.79.221
• 201.92.71.39
• 41.221.197.159
• 62.28.55.161
• 72.2.112.16
• 77.54.38.34
• 81.84.248.57
• 84.90.153.236
• 85.139.106.236
• 85.240.163.93
• 87.103.108.147
• 95.92.17.65
• Abacaxi
• Albmont
• Alguém
• AmiltonMartins
Autores 36
• Atoj
• Brunoy Anastasiya Seryozhenko
• Bysheep
• Cristovaopb
• Daniel Souza
• Dante Cardoso Pinto de Almeida
• David0811
• Edudobay
• FlavioBenYaakov
• Fmagrao
• Gilsonilunardi
• Guiwp
• Helder.wiki
• Helder.wiki.bot
• Iltonbarbosa
• JackPotte
• Jonas AGX
• Jorge Morais
• Julio Soares
• LeonardoG
• LeonardoRob0t
• Lightningspirit
• Marcos Antônio Nunes de Moura
• Master
• MewRS
• MGFE Júnior
• OsvaldoGago
• PatiBot
• Raylton P. Sousa
• Renatwo
• Ribafs
• SallesNeto BR
• Tabatinga
• Voz da Verdade
Fontes e Editores da Página 37
Introdução Fonte: http://pt.wikibooks.org/w/index.php?oldid=249099 Contribuidores: Abacaxi, Edudobay, Iltonbarbosa, Jorge Morais, Lightningspirit, Master, Tabatinga, 2 edições anónimas
O PHP Fonte: http://pt.wikibooks.org/w/index.php?oldid=263314 Contribuidores: Abacaxi, Edudobay, Guiwp, Jorge Morais, Lightningspirit, Master, SallesNeto BR, Voz da Verdade, 2 edições
anónimas
Instalação Fonte: http://pt.wikibooks.org/w/index.php?oldid=263313 Contribuidores: Abacaxi, Albmont, Edudobay, Guiwp, JackPotte, Jorge Morais, Lightningspirit, Marcos Antônio Nunes de
Moura, Master, 13 edições anónimas
Sintaxe básica Fonte: http://pt.wikibooks.org/w/index.php?oldid=262452 Contribuidores: Abacaxi, Bysheep, Guiwp, Jorge Morais, Lightningspirit, Master, Voz da Verdade, 4 edições
anónimas
Echo Fonte: http://pt.wikibooks.org/w/index.php?oldid=262554 Contribuidores: Albmont, Edudobay, Guiwp, Helder.wiki, Jorge Morais, Julio Soares, LeonardoG, Marcos Antônio Nunes de
Moura, Master, OsvaldoGago, 6 edições anónimas
Include Fonte: http://pt.wikibooks.org/w/index.php?oldid=262557 Contribuidores: Edudobay, Guiwp, Jorge Morais, LeonardoG, Master, OsvaldoGago, Ribafs
If...Else Fonte: http://pt.wikibooks.org/w/index.php?oldid=262560 Contribuidores: Guiwp, Jorge Morais, LeonardoG, Marcos Antônio Nunes de Moura, Master, Ribafs, 3 edições anónimas
Variáveis Fonte: http://pt.wikibooks.org/w/index.php?oldid=263319 Contribuidores: Abacaxi, Guiwp, Jorge Morais, LeonardoG, Master, OsvaldoGago, Ribafs, 5 edições anónimas
Strings Fonte: http://pt.wikibooks.org/w/index.php?oldid=262566 Contribuidores: Abacaxi, Atoj, Guiwp, Jorge Morais, Master, MewRS, Raylton P. Sousa, 1 edições anónimas
Operadores Fonte: http://pt.wikibooks.org/w/index.php?oldid=262567 Contribuidores: Abacaxi, Edudobay, Guiwp, Jorge Morais, Lightningspirit, Raylton P. Sousa, Voz da Verdade, 11
edições anónimas
Classes Fonte: http://pt.wikibooks.org/w/index.php?oldid=263315 Contribuidores: Abacaxi, Albmont, Guiwp, Jorge Morais, Master, SallesNeto BR, 5 edições anónimas
Exercícios Fonte: http://pt.wikibooks.org/w/index.php?oldid=262887 Contribuidores: Abacaxi, Albmont, Cristovaopb, Daniel Souza, Dante Cardoso Pinto de Almeida, David0811,
FlavioBenYaakov, Guiwp, Helder.wiki, Jorge Morais, Lightningspirit, MGFE Júnior, Marcos Antônio Nunes de Moura, Voz da Verdade, 62 edições anónimas
Funções de compressão Fonte: http://pt.wikibooks.org/w/index.php?oldid=263316 Contribuidores: Abacaxi, Daniel Souza, Guiwp, Raylton P. Sousa
Funções de Calendário Fonte: http://pt.wikibooks.org/w/index.php?oldid=262574 Contribuidores: Abacaxi, Guiwp, Master, Raylton P. Sousa, Renatwo
Extensões do PHP Fonte: http://pt.wikibooks.org/w/index.php?oldid=262576 Contribuidores: Abacaxi, Guiwp, Jorge Morais, Master, Raylton P. Sousa, Renatwo
Segurança Fonte: http://pt.wikibooks.org/w/index.php?oldid=262577 Contribuidores: Brunoy Anastasiya Seryozhenko, Guiwp, Jorge Morais, Master, 1 edições anónimas
Bibliografia Fonte: http://pt.wikibooks.org/w/index.php?oldid=262578 Contribuidores: Guiwp, Helder.wiki, Jorge Morais, Lightningspirit, Master, 1 edições anónimas
Licença
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/