Baixe apostila php intermediario e outras Notas de estudo em PDF para Gestão de Recursos Humanos, somente na Docsity!
Licenciamento de Uso
Este documento é propriedade intelectual © 2002 do Centro de Computação da Unicamp e distribuído sob os seguintes termos:
- As apostilas publicadas pelo Centro de Computação da Unicamp podem ser reproduzidas e distribuídas no todo ou em parte, em qualquer meio físico ou eletrônico, desde que os termos desta licença sejam obedecidos, e que esta licença ou referência a ela seja exibida na reprodução.
- Qualquer publicação na forma impressa deve obrigatoriamente citar, nas páginas externas, sua origem e atribuições de direito autoral (o Centro de Computação da Unicamp e seu(s) autor(es)).
- Todas as traduções e trabalhos derivados ou agregados incorporando qualquer informação contida neste documento devem ser regidas por estas mesmas normas de distribuição e direitos autorais. Ou seja, não é permitido produzir um trabalho derivado desta obra e impor restrições à sua distribuição. O Centro de Computação da Unicamp deve obrigatoriamente ser notificado ([email protected]) de tais trabalhos com vista ao aperfeiçoamento e incorporação de melhorias aos originais. Adicionalmente, devem ser observadas as seguintes restrições:
- A versão modificada deve ser identificada como tal
- O responsável pelas modificações deve ser identificado e as modificações datadas
- Reconhecimento da fonte original do documento
- A localização do documento original deve ser citada
- Versões modificadas não contam com o endosso dos autores originais a menos que autorização para tal seja fornecida por escrito. A licença de uso e redistribuição deste material é oferecida sem nenhuma garantia de qualquer tipo, expressa ou implícita, quanto a sua adequação a qualquer finalidade. O Centro de Computação da Unicamp não assume qualquer responsabilidade sobre o uso das informações contidas neste material.
- O que é PHP?.........................................................................................................................
- História...................................................................................................................................
- Vantagens...............................................................................................................................
- Sintaxe Básica........................................................................................................................
- Variáveis.............................................................................................................................
- Inteiros...........................................................................................................................
- Ponto-Flutuante.............................................................................................................
- Strings............................................................................................................................
- Caracteres de Escape....................................................................................................
- Arrays............................................................................................................................
- Listas.............................................................................................................................
- Booleans........................................................................................................................
- Transformações de tipo......................................................................................................
- Coerções........................................................................................................................
- Transformações explícitas de tipo.................................................................................
- Tipo suportados nas transformações explícitas............................................................
- Função settype...............................................................................................................
- Operadores..........................................................................................................................
- Aritméticos.....................................................................................................................
- Strings..........................................................................................................................
- Atribuição....................................................................................................................
- Lógicos........................................................................................................................
- Comparação................................................................................................................
- Incremento e decremento............................................................................................
- Estruturas de controle.......................................................................................................
- If e Else........................................................................................................................
- Switch..........................................................................................................................
- While............................................................................................................................
- Do..while.....................................................................................................................
- For...............................................................................................................................
- Break...........................................................................................................................
- Continue......................................................................................................................
- Saída: echo().....................................................................................................................
- Saída: print().....................................................................................................................
- Funções.............................................................................................................................
- Passagem de parâmetros por referência.....................................................................
- Escopo das variáveis.........................................................................................................
- Globais........................................................................................................................
- Locais..........................................................................................................................
- Estáticas......................................................................................................................
- Sessões..................................................................................................................................
- Superglobal $_SESSION..................................................................................................
- Upload de Arquivos.............................................................................................................
- A variável $_FILES..........................................................................................................
- A função move_uploaded_file().......................................................................................
- Manipulação de Data e Hora.............................................................................................
- Funções.............................................................................................................................
- mktime().......................................................................................................................
- strftime()......................................................................................................................
- date()...........................................................................................................................
- checkdate()..................................................................................................................
- getdate().......................................................................................................................
- Enviando e-mails.................................................................................................................
- Projeto..................................................................................................................................
- Base de dados e tabelas....................................................................................................
- chamados.....................................................................................................................
- atendimentos................................................................................................................
- usuarios.......................................................................................................................
- Funções utilizadas no sistema..........................................................................................
- funcoes.php..................................................................................................................
- Pagina inicial/autenticação do sistema.............................................................................
- misc.php.......................................................................................................................
- Index.php.....................................................................................................................
- Os scripts autentica_src.php e a homepage do sistema....................................................
- autentica_src.php........................................................................................................
- pagina_principal.php..................................................................................................
- Módulo de inclusão de chamados.....................................................................................
- form_chamado.php......................................................................................................
- incluir_chamado.php...................................................................................................
- exibe_mensagem.php...................................................................................................
- Testando o módulo de inclusão de chamados.............................................................
- Módulo de registro de atendimentos................................................................................
- form_atendimento.php.................................................................................................
- registrar_atendimento.php..........................................................................................
- registrar_atendimento2.php........................................................................................
- registrar_atendimento3.php........................................................................................
- exibe_mensagem.php...................................................................................................
- Testando o módulo de registro de atendimentos.........................................................
- Módulo de consulta..........................................................................................................
- consulta_chamados_periodo.php................................................................................
- consulta_chamados_periodo2.php..............................................................................
- Testando o módulo de consulta...................................................................................
- Expiração de sessão..........................................................................................................
- logout.php....................................................................................................................
- Referência Bibliográfica.....................................................................................................
- Onde obter ajuda................................................................................................................. - Última atualização em 25/03/
O que é PHP? A abreviação PHP vem de “Hypertext PreProcessor”, que é uma linguagem de programação de código aberto muito utilizada para a criação de scripts que são executados no servidor web para a manipulação de páginas HTML. História O PHP foi criado por volta de 1994 por Rasmus Lerdorf, que inicialmente utilizava-o em sua home page pessoal (Personal Home Page). Em meados de 1995 ele passou a ser utilizado por outras pessoas e foi reescrito com novos recursos, sendo renomeado para Personal Home Page Tools/FI (Form Interpreter), e entre os novos recursos, passou a contar com suporte ao MySQL. Dois anos mais tarde o PHP deixou de ser um projeto pessoal de Rasmus Lerdorf e passou a ser desenvolvido por uma equipe de colaboradores, e neste período, foi lançada a versão 3 da linguagem. A partir da versão 4 o PHP passou a utilizar a engine de scripting da Zend, para melhorar a performance e suportar uma variedade maior de bibliotecas externas e extensões. Até Março de 2008, o PHP estava sendo utilizado em aproximadamente 21.000.000 de domínios (Pode-se acompanhar esta estatística em http://www.php.net/usage.php ). A última versão estável da linguagem é a 5.2.5. Vantagens O PHP tem inúmeras vantagens, como veremos a seguir:
- É uma linguagem de fácil aprendizado;
- Tem performance e estabilidade excelentes;
- Seu código é aberto, não é preciso pagar por sua utilização, e é possível alterá-lo na medida da necessidade de cada usuário;
- Tem suporte nos principais servidores web do mercado, principalmente no servidor web Apache (o mais utilizado no mundo);
- Suporta conexão com os bancos de dados mais utilizados do mercado, como por exemplo, MySQL, PostgreSQL, Oracle e DB2;
- É multiplataforma, tem suporte nos sistemas operacionais mais utilizados no mercado;
- Suporta uma variedade grande de padrões e protocolos, como o XML, DOM, IMAP, POP3, LDAP, HTTP, entre outros;
- Não precisa ser compilado.
$curso = -1000; $curso = 0234; // inteiro base octal $curso = 0x34; // inteiro na base hexadecimal
Ponto-Flutuante
Sintaxe: $curso = 1.050; $curso = 52e3; // equivale a 52000)
Strings
Sintaxe: $curso = 'PHP'; // desta maneira, o valor da variável será exatamente o texto contido entre as aspas $curso= “PHP”; // desta maneira, qualquer variável ou caracter de escape será expandido antes de ser atribuído
Caracteres de Escape
\n (^) nova linha; \r (^) retorno de carro (semelhante a \n) \t (^) tabulação horizontal \ (^) a própria barra () $ (^) o símbolo $ \’ aspas simples \” aspas duplas
Arrays
Array é um tipo de variável que possui seu conteúdo agrupado por índices, como um vetor ou um dicionário. Estes índices podem ser de qualquer tipo suportado pelo PHP, com é mostrado a seguir: Sintaxe: $estilo_musical[0] = 'pagode'; $estilo_musical[1] = “drum 'n' bass”; $estilo_musical[“MPB”] = 'Gilberto Gil'; $estilo_musical[“Rock”] = 'Blind Guardian';
Listas
Utilizadas em PHP para realizar atribuições múltiplas, como por exemplo, atribuir valores de um array para variáveis, como mostra a seguir: Sintaxe: list($a,$b,$c) = array(0=>”a”, 1=>”b”, 2=>”c”); O trecho de código acima atribuirá simultânea e respectivamente os valores do array às variáveis passadas com parâmetros para o comando list. É muito importante lembrar que só serão passadas ao comando list os elementos do array que possuírem os índices com valores inteiros e não negativos.
Booleans
Em PHP, não existe um tipo específico para as variáveis do tipo boolean , ele trata este tipo com valores inteiros: 0 (zero) para false e valores diferentes deste como true. Transformações de tipo É possível fazer transformações de tipos de variáveis através das seguintes formas:
Coerções
Quando ocorrem determinadas operações matemáticas entre dois valores de tipos diferentes, como por exemplo a adição, o PHP converte um deles automaticamente. Um exemplo disso seria a conversão de uma string para um valor numérico (inteiro ou ponto flutuante), que segue as seguintes regras: É analisado o ínicio da string, se contiver um número, ele será analisado, caso contrário, o valor será 0 (zero); O número pode conter o sinal no início (+ ou -); Se a string contiver um ponto em sua parte numérica a ser analisada, ele será considerado, e o valor obtido será um ponto flutuante; Se a string contiver as letras ''e'' ou ''E'' em sua parte numérica a ser analisada, o valor seguinte será considerado como expoente da base 10, e o valor obtido será um ponto flutuante. Sintaxe: $curso = 1 + “12.8”; // $curso == 13. $curso = 1 + “15”; // $curso == 16 $curso = 1 + “1.5e3”; // $curso == 1501 $curso = 1 + “10curso”; // $curso == 11 $curso = 1 + “ 10curso”; // $curso == 11 $curso = 1 + “+A10testes”; // $curso == 1
Strings
. Concatenação
Atribuição
= Atribuição simples
+= Atribuição com adição
-= Atribuição com subtração
*= Atribuição com Multiplicação
/= Atribuição com divisão
%= Atribuição com módulo
.= Atribuição com concatenação
Sintaxe: $curso = 7; $curso += 2; // $curso fica com o valor 9)
Lógicos
and “e” lógico
or “ou” lógico
xor “ou” exclusivo
! Não (inversão)
&& “e” lógico
|| “ou” lógico
Comparação
== igual a
!= diferente de
< menor que
> maior que
<= menor ou igual a
>= maior ou igual a
Incremento e decremento
++ incremento
-- decremento
Estes podem receber o valor antes ou depois da variável:
● Antes: retorna o valor da variável antes de incrementá-la ou decrementá-la: Sintaxe: $a = 1; $b = ++$a; // $b recebe 2, valor de $a já incrementado) ● Depois: retorna o valor da variável já incrementada ou decrementada: Sintaxe: $a = 1; $b = $a++; // $b recebe 1 e $a passa a ter 2) Estruturas de controle
If e Else
O comando if testa a condição passada e executa o bloco de código caso o valor retornado da condição seja verdadeiro: Sintaxe: $a = 1; if ($a == 1) { ... ... ... } Caso a condição passada retorne um valor falso, e seja necessário executar um bloco de código diferente, utiliza-se a instrução else : Sintaxe: $a = 1; $b = 2; if ($a > $b) { ... ... } else { ... ... } Ainda existe a instrução elseif , para situações onde precisa-se verificar mais que uma condição: Sintaxe:
break; case “CCUEC“: echo “ $a é igual a CCUEC “; break; }
While
Este comando é utilizado para realizar laços condicionais. Ele executa o bloco de código enquanto a condição passada for verdadeira, e caso a condição inicial que foi passada se torne falsa, o bloco não será executado: Sintaxe: $a = 1; while ($a <= 10) { echo “Número“.$a++.“
“; }
Do..while
Este comando tem a mesma idéia que o comando while , porém, seu teste de condição é feito no final do bloco de código: Sintaxe: $c = 0; do { echo “Número“.++$c.“
“; } while ($c < 10);
For
Como nos outros comando que realizam laços condicionais, o comando for também precisa de uma condição para ser testada a cada laço realizado, porém, este comando necessita de mais dois parâmetros, que seriam a declaração da variável contadora e a instrução de incremento: Sintaxe: for ($a=1; $a<=10; $a++) { echo “Número”.$a.”
”; }
Break
O comando break pode ser utilizado em comandos de laços condicionais e no comando switch , e sua função é parar imediatamente a execução do laço condicional, prosseguindo normalmente com a execução do script: Sintaxe: $a = 20; while ($a > 0) { if ($a == 3) { echo “Número inválido!”; break; } echo “Número “.$a.”
”; $a--; }
Continue
O comando continue também funciona dentro dos laços condicionais, porém, não para o fluxo do bloco de código, e sim, volta para o início dele: Sintaxe: for ($a=0;$a<=10;$a++) { if ($a == 5) { echo "
Pulou o Numero ==> $a
"; continue; } echo "Numero ==> $a
"; }
Saída: echo() A função
echo faz a impressão de um ou mais argumentos na janela do navegador. Sintaxe: Echo “Essa instrução irá imprimir no navegador.”; Echo (“Também pode-se usar parênteses.”); Para a construção sem o uso de parênteses, é possível passar mais de um argumento para a função: Sintaxe: Echo “Primeiro argumento”, “Segundo argumento” ;
Passagem de parâmetros por referência
Normalmente, a passagem de parâmetros em PHP é feita através dos valores das variáveis, não permitindo assim, a alteração do valor na variável original. Sintaxe: function contador($a) { ++$a; } $cont = 10; contador($cont); echo "A variavel $cont contem ==> ".$cont; No exemplo acima, a variável original permanecerá com o mesmo valor porque não foi definida a passagem de parâmetros por referência, o que alteraria também o valor da variável original. Uma das maneiras de se utilizar esse recurso é colocar o carácter ''&'' antes do nome da variável na declaração da função. Sintaxe: function contador( & $a) { ++$a; } $cont = 10; contador($cont); echo "A variavel $cont contem ==> ".$cont; Poderíamos também utilizar a passagem de parâmetros por referência apenas quando fôssemos chamar a função, e não em sua declaração. Sintaxe: contador( & $cont); echo $cont; Escopo das variáveis Discutimos anteriormente sobre variáveis e os tipos suportados pelo PHP. Agora, discutiremos sobre os escopos destas variáveis, que podem ser dos seguintes tipos: ● Globais; ● Locais; ● Estáticas; ● Constantes.
Globais As variáveis globais são por definição, as variáveis que podem ser acessadas dentro de todo o script. Porém, quando cria-se escopos locais como nas funções, precisaremos utilizar um tipo de chamada especial, utilizando o global. Sintaxe: $curso = 'PHP'; function mostra() { global $curso; echo $curso; } mostra(); O mesmo recurso pode ser acessado através da array GLOBALS , que nos permite acessar todas as variáveis globais do script. O exemplo acima pode ser reescrito da seguinte maneira: Sintaxe: $curso = 'PHP'; function mostra() { echo $GLOBALS[“curso“] ; } mostra();
Locais
As variáveis locais são o tipo mais restrito dentro do PHP. Elas funcionam apenas dentro do escopo onde foram definidas. Sintaxe: function mostra() { $var_local = 'variável local'; echo “Var_local= $var_local”; } echo “Var_local= $var_local”;
Estáticas
As variáveis estáticas são variáveis que possuem o mesmo tempo de vida das variáveis globais, com a diferença de funcionarem apenas em escopos locais e serem inicializadas uma só vez. Sintaxe:
Sessões Este recurso, que foi implementado na versão 4 do PHP, é muito útil para quem trabalha com scripts que necessitam passar dados em acessos subseqüentes para outros scripts. Sessões também são utilizadas para:
- Customização de elementos de uma página, como cores, fontes, textos, etc;
- Gerenciamento de autenticação em sistemas para a web;
- Armazenamento de informações sigilosas dentro do servidor, evitando a passagem destas informações por meio de campos do tipo hidden do HTML ou cookies, aumentando assim a segurança destes dados. Esse recurso já vem habilitado na instalação padrão do PHP, não havendo a necessidade de nenhuma configuração adicional, e antes de inicializar uma sessão, devemos lembrar das seguintes regras básicas de utilização:
- Nenhum conteúdo deve ser exibido antes de inicializar uma sessão;
- Em todas as páginas que forem utilizar este recurso, a sessão deve ser inicializada; Para inicializar uma sessão, basta executar o seguinte comando: Sintaxe:
Quando esta página for carregada, a sessão será inicializada e a ID da sessão ficará gravada em um cookie chamado PHPSESSID dentro do navegador. Esta sessão será válida enquanto o navegador estiver aberto ou enquanto a função session_destroy() não for executada. Para visualizarmos a ID da sessão corrente, utilizamos a função session_id(). Sintaxe:
$id_sess"; ?> **Superglobal** $_SESSION Adicionar valores em uma sessão é uma tarefa muito simples, e para isso, utilizaremos a superglobal **$_SESSION.** Sintaxe: **OBS:** Em versões anteriores ao PHP 4.2.x, ou se a flag register_globals estiver habilitada (desabilitada por padrão), é necessário adicionar variáveis em versões através da função session_register(), mas por questões de segurança, é indicado permanecer com a configuração padrão, que utiliza a superglobal $_SESSION. Atribuir os valores de uma sessão para variáveis globais ou locais também é uma tarefa simples: Sintaxe: Os últimos dois recursos que serão apresentados para manipular sessões são: **session_unset()** - Limpa todas as variáveis da sessão corrente. **session_destroy() -** Finaliza a sessão corrente. Utiliza-se estas duas funções no final do uso da sessão, que conseqüentemente expira o cookie PHPSESSID no navegador, finalizando a sessão corrente. O código PHP para este fim é apresentado no exemplo abaixo. Sintaxe: