PHP 101
O que é o PHP? PHP é um acrónimo para Hypertext Preprocessor. É uma linguagem de scripting open-source que funciona do lado do servidor e é usada para gerar páginas web dinâmicas. Os scripts de PHP residem dentro das tags reservadas do PHP - isto permite ao programador embeber scripts de PHP dentro de uma página HTML.
O que é o PHP? Tal como no javascript, ser uma linguagem de scripting significa que é interpretada à medida que é lida, ou seja, é interpretada em run-time. É uma linguagem server-side, isto é, é executada do lado do servidor. Por causa disso,o código-fonte não é visível pelo cliente (browser): - Clickar em View Source nos browsers não exibe o código PHP Para além disso, o PHP possui toda uma série de funções nativas que aceleram o desenvolvimento significativamente e é compatível com uma várias bases de dados populares.
Qual o aspecto do código PHP? Tal como o Javascript, todas as instruções de PHP têm de terminar com um ponto-e-vírgula, sob pena da página não renderizar caso nos esqueçamos de o fazer. Todos os scripts de PHP têm de ser encapsulados dentro das tags reservadas do PHP: <?php " // aqui entra o código PHP?>
Comentários no PHP Tal como no Javascript, os comentários fazem-se da seguinte forma: /* isto é um comentário multi-linha */ // isto é o comentário para uma linha só Para além das formas acima, pode também comentar-se uma linha só usando a seguinte sintaxe: # esta é outra forma de comentar uma linha
Variáveis no PHP As variáveis no PHP têm de começar com o caractere $ e, à semelhança do Javascript, são case-sensitive ( $carro!= $Carro!= $CarrO ). No PHP, podemos declarar variáveis globais e locais: - As variáveis globais podem ser utilizadas em todo o lado, e as variáveis locais são restritas a uma função ou classe. Existem no PHP, tal como no Javascript, palavras reservadas. Por exemplo: - Variáveis de formulários ($_POST, $_GET); - Variáveis de servidor ($_SERVER) - etc
Variáveis no PHP A titulo de exemplo, esta é a forma de usar variáveis no PHP: <?php " $foo = 25;" " " // variável numérica " $bar = "Olá";" " // variável de string " $foo = ($foo * 5);"// multiplica a variável $foo por 5 " $bar = ($bar * 5);"// expressão inválida?>
Echo O comando echo no PHP é usado para fazer o output de parâmetros que lhe passamos. É muito comum usá-lo para enviar informação para o browser do cliente. Exemplo: <?php " $foo = 25;" " " " // variável numérica " $bar = "Olá";" " " // variável de string " echo $bar;" " " " // imprime Olá " echo $foo,$bar;" " " // imprime 25Olá " echo "5x5=",$foo;" " // imprime 5x5=25 " echo "5x5=$foo";"" " // imprime 5x5=25 " echo 5x5=$foo ;"" " // imprime 5x5=$foo?>
Echo <?php " $foo = 25;" " " " // variável numérica " $bar = "Olá";" " " // variável de string " echo $bar;" " " " // imprime Olá " echo $foo,$bar;" " // imprime 25Olá " echo "5x5=",$foo;"" // imprime 5x5=25 " echo "5x5=$foo";" " // imprime 5x5=25 " echo 5x5=$foo ;" " // imprime 5x5=$foo?>" Reparem como 5x5=$foo imprime o nome da variável em vez de o substituir por 25.As strings dentro de aspas individuais ( ) não são interpretadas ou avaliadas pelo PHP.
Operações Aritméticas <?php " $a=15; " $b=30; " $total=$a+$b; " Print $total; " Print <p><h1>$total</h1> ; " // 45?>" - $a + $b // soma - $a - $b // subtracção - $a * $b // multiplicação - $a / $b // divisão - $a += 5 // $a = $a+5, também funciona com *= e /=
Concatenação Para concatenar ( ou somar ) duas strings numa só, em vez de se usar o sinal de + como no Javascript, usamos o ponto-final. <?php " $string1="olá"; " $string2="mundo"; " $string3=$string1. " ". $string2; " Print $string3;?> Olá Mundo
Escapar um caractere Se a string tiver um par de aspas duplas ( ) que têm de permanecer visíveis, então devemos usar a barra \ (backslash) antes das aspas para as ignorar e mostrar. <?php " $heading="\"computer Science"\"; " Print $heading;?> Computer Science
Estruturas de Controlo As estruturas de controlo numa linguagem são o que nos permite controlar o fluxo da execução de um programa ou script. No PHP, tal como no Javacript, agrupam-se em estruturas condicionais ( p.e.: if/else) e estruturas de repetição ( p.e.: ciclos for ). Exemplo de um if else: <?php " if($foo == 0){ " " //código a ser executado caso $foo seja igual a zero " } " else { " " //código a ser executado se $foo for diferente de zero " }?>
Estruturas de Controlo Exemplo de um ciclo for: <?php " $total = 5; " for($i=0; $i < $total; $i++){ " " //código a ser executado enquanto o $i for menor " " " que $total " }?>
Funções No PHP, as funções têm de ser definidas antes de serem chamadas, e tal como no Javacript, a sintaxe para as definir é a seguinte: <?php " function nomedafuncao( $arg1, $arg2,, $argn ){ " " // aqui entra o código da função " }?>" No entanto, ao contrário do Javascript, os nomes das funções não são casesensitive. Ou seja: foo( ) == Foo( ) == FoO( )
Funções Exemplo de uma função em PHP: <?php " // isto é uma função " function foo( $arg1, $arg2 ){ " " $arg2 = $arg1 * $arg2; " " return $arg2; " } " $resultado1 = foo(12,3);"" //guarda a função " echo $resultado1;"" " " // devolve 36 " echo foo(12,3);" " " " // devolve 36?>
Incluir ficheiros Por vezes, é necessário adicionar ao nosso código, código de outros ficheiros. Isto prova ser tanto útil como mais seguro, a partir do momento que ligamos o projecto a uma base de dados, bem como para evitarmos a repetição de código. Para o fazer usamos a instrução include do PHP Podemos usar o include também para incluir nacos de markup que de outra forma teríamos de replicar em todos os nossos ficheiros.
Include Utilizamos o include da seguinte forma: <?php " Include "footer.php";?>" Em que o ficheiro footer.php podia conter apenas: <footer> " <span class= copyright >Copyright 2014.</span> " <span class= rights >All rights reserved.</span> </footer>
Forms (GET e POST) Uma das funcionalidades mais poderosas do PHP é a forma como lida com os formulários de HTML. O conceito básico que é importante compreender é que qualquer elemento do formulário estará automaticamente disponível aos nossos scripts de PHP. Quando um formulário é submetido a um script de PHP, a informação desse formulário é disponibilizada para o script.
GET? POST? Façamos um aparte: O HTTP é desenhado para permitir comunicações entre clientes e servidores e funciona como um protocolo de pedido-resposta entre eles. Os dois métodos mais usados para um pedido-resposta entre um cliente e um servidor são: GET e o POST. GET - pede informação/dados de um recurso especifico POST - Submete informação/dados para ser processada a um recurso especifico! Mais informação sobre o tema em: http://www.w3schools.com/tags/ref_httpmethods.asp
Forms (GET e POST) No PHP, é muito simples aceder à informação enviada por GET ou POST. As variáveis globais $_POST[] e $_GET[] contêm a informação do pedido. Tenham em atenção o seguinte formulário em HTML: <form action="foo.php" method="post"> " Name: <input type="text" name="username" /><br /> " Email: <input type="text" name="email" /><br /> " <input type="submit" name="submit" value="submit me!" /> </form> Ao clicar no botão de submissão do formulário, a página foo.php é chamada. Neste ficheiro teríamos algo como: <?php " echo $_POST[ username ]; " // faz o output do valor introduzido no campo username?>
Sessões PHP Sempre que queremos criar um site que nos permita armazenar e exibir informação sobre um utilizador, determinar a que grupos pertence uma pessoa, utilizar permissões no nosso website ou só queremos fazer algo visualmente interessante no site, então as sessões do PHP são vitais para cada uma destas funcionalidades. Nos tempos que correm, depender de cookies para gerir este tipo de situações é arriscado. Cada vez mais as pessoas são adversas à utilização de cookies, porque estes gravam localmente informação que as pessoas não querem que seja gravada.
Sessões PHP O PHP tem uma série de funções que fazem o papel dos Cookies e mais, sem armazenar informação no computador do utilizador. As sessões de PHP guardam a informação no servidor web em ficheiros especiais. Estes ficheiros são depois ligados ao web browser do utilizador através do servidor usando um ID especial a que se dá o nome de ID de Sessão (Session ID). Este método tem uma eficácia de 99% e é virtualmente invisível para o utilizador.
Sessões PHP As sessões guardam o seu identificador num cookie do browser do utilizador e todas as páginas que usam informação de sessão devem precedidas da função session_start(). A instrução session_start() deverá ser escrita antes de qualquer coisa ter sido impressa no ficheiro, caso contrário ser-nos-á devolvido um erro. As variáveis de sessão são então criadas e devolvidas acedendo à variável global $_SESSION[] Escrevam o seguinte código e salvem o ficheiro como session.php : <?php " session_start(); " if(!$_session["count"]) " " $_SESSION["count"] = 0;" " if(!$_get["count"]=="yes"){ " " $_SESSION["count"] +=1; " }" " echo "<h1>".$_session["count"]."</h1>";?> <a href="session.php?count=yes">clique aqui para contar</a>
Destruir uma Sessão As sessões são destruídas quando o utilizador fecha o browser. Sendo assim, porque é necessário ter um método para destruir as sessões? Imaginem que têm um site, e que têm uma sessão registada chamada access_granted e estão a usá-la para determinar se o utilizador está loggado no site depois de ter inserido username e password. Sempre que temos uma funcionalidade de login, para deixarmos o utilizador confortável é de bom tom termos também uma funcionalidade de logout.
Destruir uma Sessão É nessa altura que a função session_destroy() se torna útil. Esta função vai destruir completamente a sessão do utilizador, limpando todos os ficheiros de sessão e eliminando qualquer rasto da mesma. É assim que se usa o session_destroy(): <?php " // start the session " session_start(); " $_SESSION = array (); " session_destroy(); " echo "<strong>step 5 - Destroy This Session </strong><br />"; " if($_session['name']){ " " echo "The session is still active"; " } else { " " echo "Ok, the session is no longer active! <br />"; " " echo "<a href= page1.php ><< Go Back Step 1</a>"; " }?>
Gerar datas Por vezes precisamos de gerar datas, sejam inteiras ou parciais (o ano no footer de um site, por exemplo). O PHP tem uma função, de nome date(), que é usada para formatar uma data e/ou um tempo. A sintaxe para a utilização da função é a seguinte: date(format,timestamp)" O parâmetro format, diz respeito ao formato que queremos que a nossa data tenha, por exemplo ( Y/m/d ) e é obrigatório. O parâmetro timestamp, diz respeito a uma data especifica que queiramos formatar e é facultativo. A função assume a data de hoje como valor por omissão deste parâmetro. Mais informação sobre esta função aqui e aqui.
Resumindo O PHP:! é uma linguagem fácil de aprender com uma sintaxe relativamente simples Tem uma grande biblioteca de funções É embebido directamente no HTML É uma linguagem interpretada que não necessita de ser compilada É uma linguagem de scripting open-source desenhada especificamente para a web. Podemos usá-lo para gerar HTML, XML, imagens (JPG & PNG), PDFs e até ficheiros de flash na hora e para salvar os mesmos no disco do servidor. Suporta uma grande variedade de bases de dados.