# Aplicativos em PHP/Referências/PHP/PHP2
## CURSO DE PHP EM 61 VÍDEO AULAS GRÁTIS

O curso está em espanhol. São 61 vídeo aulas com uns 20 minutos cada somando ao todo mais de 1GB de curso. Contendo uma gama muito grande de assuntos relacionados ao PHP, do básico ao avançado.
http://www.illasaron.com/html/modules.php?name=Downloads&d_op=viewdownload&cid=70
Faça o registro gratuito em - http://www.illasaron.com/html/modules.php?name=Your_Account
Baixe todo o conteúdo em um único arquivo ISO de 1GB - http://www.illasaron.com/html/modules.php?name=Downloads&d_op=getit&lid=1004
Caso baixe em arquivos separados:
- Ao final baixe também o índice
- Descompacte tudo
- Copie todos os subdiretório php* para o subdiretório "Curso PHP-MySQL\videos" do arquivo de índice.
- Após isso apenas abra o arquivo index1.html para assistir a todo o curso.
Trabalho muito bom, conteúdo invejável. Parabéns ao Angel Bernal (autor do curso).

## ALERTA - PHP4 chegando ao fim da linha

Alerta para que quem ainda não migrou para o PHP 5 inicie sua migração:
Depois de 3 anos de PHP5 e com o PHP 6 chegando, a versão 4 será descontinuada a partir do ano que vem. Bugs críticos ainda serão corridos até o final de agosto de 2008.
Enviado por Marcos Alexandre Lemos Rodrigues para o br-linux (marcosalexandre·rodriguesΘgmail·com)
Notícia original em ingles:
PHP 4 end of life announcement [13-Jul-2007]
Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued.
The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.
For documentation on migration for PHP 4 to PHP 5, we would like to point you to our migration guide. There is additional information available in the PHP 5.0 to PHP 5.1 and PHP 5.1 to PHP 5.2 migration guides as well.
Documentos para ajudar na migração:
Migration Guide - http://www.php.net/manual/en/migration5.php Também - http://www.php.net/manual/en/migration51.php e http://www.php.net/manual/en/migration52.php

## - Estruturas de Controle

As principais estruturas para controlar o fluxo dos scripts PHP.
if, else, elseif, while, do... while, for, break, consinue e switch.
Um script PHP é formado por instruções (cada instrução termina com ;).
Uma instrução pode ser:
As instruções podem ser agrupadas com chaves, formando blocos.

### if

Uma construção muito importante e versátil. Permite a execução condicional de fragmentos de código.
Sintaxe:
expressao - é avaliada como TRUE ou FALSE
Exemplos:
Muito cuidado:
Sempre exibirá "a é maior que b", mesmo que não seja. Por que?
Porque o teste está errado. Está apenas atribuindo o valor de $b a $a. O teste correto deve ser assim:
if ($a == $b) //Checa apenas se ambas as variáveis têm o mesmo valor
ou então assim:
if ($a === $b) //Checa se ambas as variáveis têm o mesmo valor e também se são do mesmo tipo
Veja este exemplo:
if (1 == "1") retornará TRUE
mas
if (1 === "1") retornará FALSE, pois 1 é numérico e "1" é string.

### else

Executa instrucoes2 caso expressao seja FALSE.
Sintaxe:
Exemplos:

### elseif

É uma combinação de if com else. Caso a expressao do if seja FALSE então o elseif testa a expresao2, se esta for TRUE instrucoes2 serão executadas, caso contrário instrucoes3 serão executadas.
Sintaxe:

### while

Executa instruções várias vezez, enquanto uma expressão for verdadeira (TRUE).
Sintaxe:
Em cada iteração expressao é avaliada, se TRUE instrucoes serão executadas, se FALSE, serão ignoradas.
Exemplos:

### do ... while

Semelhante ao while, diferindo no fato da expressão condicional ficar ao final das iterações.
No do ... while a primeira iteração sempre executará as instruções incondicionalmente.
Sintaxe:
Exemplos:

### for

Laço composto por 3 instruções. A primeira é a de inicialização da variável, a segunda será avaliada a cada iteração e a terceira é a de incremento. As 3 separadas por ponto e vírgula. Todas as 3 são opcionais e caso a segunda seja nula o loop será infinito.
Sintaxe:
- expr1 será avaliada uma única vez incondicionalmente;
- expr2 será avaliada no início de cada iteração:
- expr3 é avaliada ao final de cada iteração, no caso incrementa a variável
Exemplos:

### foreach

Laço para varrer os elementos de uma matriz (array).
Atentar para o fato de que o foreach não requer reset antes, pois quando é executado o ponteiro interno do array já é zerado automaticamente.
Sintaxe:
Exemplos:

### break

Cancela a execução de laços: for, foreach, while, do ... while ou switch.
break n é suportado, onde n é o número de estruturas a serem canceladas.
Sintaxe:
Exemplos:
Exemplo simples
Imprimirá 1234, pois quando $x for 5 sairá do laço.
Exemplo sofisticado

### continue

Sai da atual iteração de um loop para continuar na próxima iteração.
Sintaxe:
Enquanto o break encerra definitivamente um laço, o continue encerra somente a iteração atual.
Exemplos:
Exemplo simples
Imprimirá 12346789, pois quando $x for 5 sairá da iteração e continuará na próxima que é o 6.
Exemplo sofisticado

### switch

Similar a uma série de construções if seguidas.
Sintaxe:
Exemplos:

## Estruturas em Obsolescência

Devemos evitar, pois em futuras versões não mais serão utilizados.
Funções com nomes antigos, tipo:
pg_numrown, pg_fecharray e similares.
Caso se faça uma busca por estas funções no site do PHP nada será retornado.
As funções atuais tem nomes com espaço separando palavras, como:
pg_num_rown, pg_fech_array e similares.
Algumas funções agora tem outro nome, por exemplo:
pg_exec agora deve ser substuida por pg_query
Algumas estruturas de controle usavam os dois pontos:
while: ... endwhile, if: ... endif, devemos preferir:
while{ ... }, if{ ... }
Evitar o uso do comentário tipo shell #.
Estruturas do tipo $HTTP_POST_VARS e similares foram substituídas por: $_POST e similares.

## Formatando Números

number_format
number_format -- Formata um número com os milhares agrupados
string number_format ( float number [, int decimals] )
string number_format ( float number, int decimals, string dec_point, string thousands_sep )
number_format retorna uma versão formatada de number. Esta função aceita um, dois ou quatro parâmetros (não três):
Se apenas um parâmetro é dado, number será formatado sem decimais, mas com uma virgula (",") entre cada grupo de milhar.
Se dois parâmetros são dados, number será formatado com o número de casas decimais especificadas em decimals com um ponto (".") na frente, e uma vírgula (",") entre cada grupo de milhar.
Se todos os quatro parâmetros forem dados, number será formatado com o número de casas decimais em decimals, dec_point ao invés do ponto (".") antes das casas decimais e thousands_sep ao invés de uma vírgula (",") entre os grupos de milhares.
Somente o primeiro caractere de thousands_sep é usado. Por exemplo, se você usar foo como o parâmetro thousands_sep no número 1000, number_format irá retornar 1f000.
Exemplo 1. Exemplo number_format
Por exemplo, a notação Francesa usa duas casas decimais, vírgula (',') como separador decimal, e espaço (' ') como separador de milhar. Isto é feito com a linha :

## Algumas Funções Matemáticas

Exemplo 2. Uso recursivo da função count (PHP >= 4.2.0)
Forçando a Limpeza do Cache
Redirecionamento de Páginas
Exibir o conteúdo de um arquivo
readfile -- Lê e exibe o conteúdo de um arquivo
readfile('http://www.google.com.br');
readfile('/home/1www/pagina2.php');

## Enviar E-mail via PHP

Usando Favicon em sites
Aquele pequeno ícone que fica à esquerda da URL do site, na caixa Location do Browser, que inclusive personaliza a barra de links quando arrastamos o endereço do site. Para que nosso site apareça para o visitante com um link, devemos seguir os seguintes procedimentos:
- Criar uma imagem com o logo do site, no formato png, jpg, gif, etc com 32x32 pixels
- Salvar como favicon.png ou outra extensão
- Adicionar a TAG abaixo, na TAG head, como abaixo:
Também pode ser assim:
rel="shortcut icon"
Este ícone pode ser inclusive animado.
Referência: lista da Dicas-L (http://www.dicas-l.com.br).

## Integração entre PHP e JavaScript

O PHP pode ter acesso às variáveis do JavaScript e o JavaScript pode ter acesso às variáveis do PHP. Veja alguns exemplos:

### Passing JavaScript variables to PHP

Original em:
http://www.webcheatsheet.com/php/passing_javascript_variables_php.php
Criar arquivo js.html com o conteúdo:
Criar o arquivo main.php com o seguinte conteúdo:

## PHP com banco de dados Access

http://www.imasters.com.br/artigo/299/php/php_com_banco_de_dados_access/

## Referências
### Vídeo Tutoriais

Dezenas de vídeo tutoriais sobre PHP
http://www.illasaron.com/html/modules.php?name=Downloads&d_op=viewdownload&cid=70

### PHP

http://www.php.net
http://www.php.net/manual/pt_BR/
http://www.php.net/downloads.php
http://www.phpbrasil.com/
http://www.planet-source-code.com/vb/default.asp?lngWId=8
http://www.hotscripts.com/PHP/index.html
http://www.zend.com (empresa dos dois membros israelenses da equipe de desenvolvimento do PHP, especial ênfase na seção Developer Zone)
http://www.phpwizard.net
http://www.phpclasses.org
http://www.weberdev.com
http://www.devshed.com
http://www.phpmania.org/
http://www.phpnet.us/ - Hospedagem free para PHP e MySQL (300MB)
http://www.superphp.com.br
http://www.scriptbrasil.com/
http://www.faqts.com/knowledge_base/index.phtml/fid/51/
http://www.alt-php-faq.org/
http://ribafs.byethost2.com/

### CURSOS GRÁTIS

http://cursos.cdtc.org.br/brasil/ - Cursos Grátis para Func.Públ.
http://www.apostilando.com/download.php?cod=171&categoria=PHP
http://www.aprendaemcasa.com.br/apcasa6.htm
http://www.solocursosgratis.com/cursos_gratis_php-slctema264.htm
CLIPARTS
http://www.digitmania.holowww.com/digital.html – Dígitos (cliparts)

### POSTGRESQL

http://www.postgresql.org/docs/current/interactive/
http://pgdocptbr.sourceforge.net/pg80/index.html
http://www.designmagick.com/category/3/PostgreSQL

### MYSQL

http://dev.mysql.com/doc/refman/4.1/pt/index.html
http://dev.mysql.com/doc/refman/5.0/en/index.html

### SQL

http://www.firstsql.com/tutor.htm
http://sqlzoo.net/
http://www.sql-tutorial.net/SQL-tutorial.asp
http://www.programmingtutorials.com/sql.aspx
http://tutorials.findtutorials.com/
http://www.hardened-php.net/home.8.html - Hardened PHP Project
http://www.1phpscripts.com/
http://www.weberdev.com/
http://www.goldsofts.com/scriptscategory/10/0/1/0.html
http://www.sql-statements.com/