# Curso de PHP/Imprimir

* Este é um tutorial de PHP para principiantes, ou seja, para pessoas que nunca tiveram contato 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.

## 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 objetivo - 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 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 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, para usuários do KDE; o Vim, feito originalmente para o terminal, mas que agora conta com versões gráficas também. No MacOS o Taco é radicalmente a melhor opção.
No Windows, o PHP Editor é 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, que auxilia na codificação, apresentando alguns tópicos da documentação do PHP, e autocomplete de códigos orientados a objetos.

## Estrutura e método de estudo

Como já referido, este curso usa o método Padrão Eficaz como forma de aprendizagem, onde, em qualquer passo do estudo, será imprescindível a cópia de todos os exemplos existentes neste livro. Modifique-os à vontade sem medo de errar, e corra-os no seu servidor.

# Capítulo 1 - Conhecendo a linguagem

PHP quer dizer PHP: Hypertext Preprocessor (PHP: Processador de Hipertexto). Esta linguagem nasceu pela mão de Rasmus Lerdof em 1994, como um CGI 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 inúmeras funções pela comunidade [PHP Team] 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, uma animação de serpentinas exibidas na tela ou um slideshow de imagens não podem ser criados 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.

## Em Windows
### Download dos itens necessários

Primeiro, faça o download dos programas a serem usados.
* Apache. No nosso exemplo, utilizamos o Apache 2.2.9.
* MySQL. No nosso exemplo, utilizamos o MySQL 5.0.51a.
* PHP. No nosso exemplo, utilizamos o PHP 5.2.6.

### 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).

### 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 é onde se encontram os arquivos PHP.
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:

### 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:
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

## Em Linux

Ver instruções em inglês: Setup and Installation (Linux)

## Definir o início e o fim do código PHP

Para que o interpretador PHP reconheça o código que deverá analizar é 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 ativada no ficheiro de configuração do PHP. Neste caso qualquer utilizador poderá manipular essa ativação ou desativaçã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:
ou (não recomendado):
Para ter uma ideia gráfica sobre o que está a ser explicado, analise o primeiro exemplo:
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.

## Gravar arquivos em php

Para que o interpretador reconheça uma página que contenha código php, qualquer arquivo em php deve ser gravado com a extensão .php em vez de .html .
Dependendo da configuração do apache (httpd.conf) poderão ser utilizadas as extensões .php3 ou derivações, o que é comumente encontrado em sistemas mais antigos, o número 3 representa a versão do php, hoje já não é mais feita esta distinção, mas não se assustem ao encontrar um arquivo com extensão php3.
Por exemplo index.php e não index.html. Se for usada a extensão .html o servidor não irá reconhecer e executar o código. E consequentemente irá mostrar o código que você escreveu e não o resultado que o código deveria gerar.

## Usar o ponto e vírgula no final de cada comando

Após qualquer instrução, é necessário o uso de um ; para que o interpretador reconheça que determinada instrução acaba aí. Após ; o interpretador processa a instrução, exibindo-a na memória do computador e, se não houver erros, passa para a próxima instrução.
Exemplo:
ou
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.
Obs.: Repare bem que o uso de ; no meio texto a ser exibido não afeta a instrução.
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 */:
Com //comentário:
Existe também outro tipo de comentário, igual ao usado no shell do Unix:
Mas não é recomendado usar este último, pois será descontinuado em versões futuras do PHP.
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:
Podemos abreviar essa escrita concatenando os três parâmetros que fornecemos pelo operador . (ponto, concatenador de strings):
Nos dois exemplos acima o resultado obtido é o mesmo.

### 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:

### Usando as aspas

Para poder usar as aspas numa frase estas deverão ser precedidas por \ (barra invertida).
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 na tela. A principal diferença entre os dois tipos de aspas é que, com aspas duplas, certas sequências de caracteres são interpretadas de maneira especial.
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.
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:
Exemplo de uso do if e else:
Lembrando que no if, para testar o valor de uma variável, usamos == e não apenas =.
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 maiúsculos.
* Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um underscore _.
Por exemplo: $total_variavel.

## Alguns exemplos de variáveis

O ponto . após a variável $minha_string concatena as variáveis.
Deverá escrever na tela do navegador: super 4.

## 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 booleano é nos dado a conhecer pela função gettype:
Aqui apresentamos duas variáveis com valores lógicos:
Como podemos ver no exemplo acima, uma expressão tem um valor booleano true se ela contiver alguma coisa, e false se o seu conteúdo for nulo.

### 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:
Se você especifica um inteiro além dos limites de um inteiro, o PHP o interpreta como um ponto flutuante, veja abaixo.
Ou:
É necessário ter em atenção que na saída de uma fração para um inteiro', os arredondamentos não seguem a regra matemática, sendo assim é necessário o uso da função round:
Evite transformar uma fração de valor desconhecido para inteiro.

### Números de ponto flutuante

Os números de ponto flutuante (floats e doubles) são números com casas decimais, onde, aqui, a vírgula é substituída por um ponto:
Aqui também é necessário ter em atenção os arredondamentos.

### 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:
A inclusão de variáveis funciona aqui de várias maneiras. Vamos ver:
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:
Ou:
Cabe à função strlen essa tarefa.
A função strlen: retorna o tamanho de uma String.

### Arrays

Um array é um mapa ordenado, com chaves e valores.
Exemplo:
Aqui nos é apresentado 3 chaves (1, 2 e 3) e 3 valores ("um", "dois" e TRUE).
Então podemos pegar uma chave de um array para imprimirmos o valor correspondente. Podemos também definir um array como vários array:
Podemos especificar apenas valores num array, sendo que o interpretador irá tornar cada um dos valores com uma chave a partir do zero.

## 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:
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 objeto.
Exemplos de moldes:

## 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:
É 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:
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.
É possível fazer a referencia de um dos itens da variável GLOBALS:

### $_SERVER

Variáveis criadas pelo servidor web e relacionadas com o ambiente de execução.
Pode-se acessar os valores de _SERVER diretamente:

### $_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.

### $_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.
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 (").

## Aspas simples e Aspas duplas

Existe uma diferença básica entre aspas simples e aspas duplas.
Com aspas simples, você têm uma string realmente como ela foi declarada, independente de qualquer caractere especial (com exceção do caractere de escape - \). Se você deseja inserir uma aspa simples dentro de uma string declarada com a mesma, deve, então, "escapa-la".
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.

## 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 (.).
Podemos também concatenar com variáveis.
Existem vários operadores usados no PHP.

### Operadores aritméticos

| Nome | Exemplo | Significado |
| Adição | $a + $b | Soma de $a e $b |
| Subtração | $a - $b | Diferença entre $a e $b |
| Multiplicação | $a * $b | Produto de $a e $b |
| Divisão | $a / $b | Quociente de $a por $b (divisão de ponto flutuante) |
| Módulo | $a % $b | Resto da divisão de $a por $b |
Exemplo:

### Operadores Bit-a-Bit

Os operadores Bit-a-Bit permitem a manipulação de bits específicos dentro das expressões.
| Nome | Exemplo | Significado |
| AND | $a & $b | Os bits que estão ativos tanto em $a quanto em $b são ativados. |
| OR | $b | Os bits que estão ativos em $a ou 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:

### Operadores de Comparação

Os Operadores de comparação permitem a comparação de dois valores.
| Nome | Exemplo | Significado |
| Igual | $a == $b | Verdadeiro se $a é igual a $b |
| Idêntico | $a === $b | Verdadeiro se $a igual a $b e do mesmo tipo |
| Diferente | $a != $b | Verdadeiro se $a diferente de $b |
| Diferente | $a <> $b | Verdadeiro se $a diferente de $b |
| Não idêntico | $a !== $b | Verdadeiro se $a diferente de $b, ou não são do mesmo tipo |
| Menor que | $a < $b | Verdadeiro se $a menor que $b |
| Maior que | $a > $b | Verdadeiro se $a maior que $b |
| Menor ou igual | $a <= $b | Verdadeiro se $a menor ou igual a $b |
| Maior ou igual | $a >= $b | Verdadeiro se $a maior ou igual a $b |
Exemplo:
Funções no PHP ajudam muito no desenvolvimento de codigos, reaproveitar codigos é essencial 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.
para se chamar a função no mesmo arquivo apenas fazemos isso:
Para se chamar de outra classe utilizando Orientação a Objetos utilizamos dessa forma:
Chamada para a classe externa:
Prontinho, esse é um exemplo simples de como usar funcoes em PHP.

# Capítulo 2 - Orientação a Objetos

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:

## Ver também

* Programação orientada a objetos/Classes e Objetos - conceitos

# Anexos
### Exercício 1: Analise de código

* Tente descobrir onde está o erro neste script.
* Os comentários existentes estão bem integrados (têm a sintaxe correta)?

### Exercício 3: Aplicação de conhecimentos

* Escreva um código que exiba a mensagem "Olá Mundo!" no navegador.
* Que instrução preciso de usar para exibir essa mensagem?

### Exercício 4: Perguntas

* O php sempre reconhece os campos name do HTML como variáveis? 1 O PHP pode escrever scripts que rodem do lado do cliente? Verdadeiro. Falso. 2 Para correr PHP preciso de um servidor Web? Verdadeiro. Falso. 3 O uso de short-tags, tais como <? e ?> é mais benéfico do que as outras tags porque assim perco menos tempo a escrever o código. Verdadeiro. Falso. 4 O PHP é mantido por uma comunidade de programadores pela internet e está acessível a toda a gente. Verdadeiro. Falso. 5 O PHP é uma linguagem de programação compilada? Verdadeiro. Falso.
* O que faz este script?
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.
* ZipArchive::close — Close the active archive (opened or newly created).
* ZipArchive::deleteIndex — delete an entry in the archive using its index.
* ZipArchive::deleteName — delete an entry in the archive using its name.
* ZipArchive::extractTo — Extract the archive contents.
* ZipArchive::getArchiveComment — Returns the Zip archive comment.
* ZipArchive::getCommentIndex — Returns the comment of an entry using the entry index.
* ZipArchive::getCommentName — Returns the comment of an entry using the entry name.
* ZipArchive::getFromIndex — Returns the entry contents using its index..
* ZipArchive::getFromName — Returns the entry contents using its name..
* ZipArchive::getNameIndex — Returns the name of an entry using its index.
* ZipArchive::getStream — Get a file handler to the entry defined by its name (read only)..
* ZipArchive::locateName — Returns the index of the entry in the archive.
* ZipArchive::open — Open a ZIP file archive.
* ZipArchive::renameIndex — Renames an entry defined by its index.
* ZipArchive::renameName — Renames an entry defined by its name.
* ZipArchive::setArchiveComment — Set the comment of a ZIP archive.
* ZipArchive::setCommentIndex — Set the comment of an entry defined by its index.
* ZipArchive::setCommentName — Set the comment of an entry defined by its name.
* ZipArchive::statIndex — Get the details of an entry defined by its index..
* ZipArchive::statName — Get the details of an entry defined by its name..
* ZipArchive::unchangeAll — Undo all changes done in the archive..
* ZipArchive::unchangeArchive — Revert all global changes done in the archive..
* ZipArchive::unchangeIndex — Revert all changes done to an entry at the given index..
* ZipArchive::unchangeName — Revert all changes done to an entry with the given name..

## 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.

## Fontes

* PHP: Bzip2 - Manual.