entering Posted March 29, 2006 at 05:29 PM Report #19995 Posted March 29, 2006 at 05:29 PM (edited) Introdução O que é PHP? PHP (Hypertext Preprocessor) originalmente chamado como Personal Home Page Tools é uma linguagem de scripting escrito por e para desenvolvedores de aplicações Web. Pode ser embebido em HTML e corre do lado do servidor (server-side scripting) ou seja "apenas é enviado HTML" para o cliente, sendo assim torna-o bastante seguro, pois o cliente apenas vê o desejado. PHP é um módulo oficial do Apache, como o Apache PHP pode correr em várias plataformas entre elas por ex: Unix, Mac, Windows ... Além de ser portável também é bastante usado, como tal existe muita documentação sobre PHP. Se anda a procura de uma linguagem de scripting a correr do lado do servidor, experimente PHP não se vai arrepender. A história de PHP PHP foi desenvolvido em 1994 por Rasmus Lerdorf, inicialmente desenvolvido com o objectivo de obter informações sobre as visitas a seu site, mais tarde surge uma nova versão PHP/FI que inclui o Form Interpreter. Em 1997, PHP já era usado aproximadamente por 50000 páginas na Internet e foi crescendo e evoluindo (na altura que estou a escrever isto já esta na versão 5.1.2). Para ter ideia do crescimento de PHP, apenas um ano mais tarde em vez de 50000 páginas na Internet a usar PHP existia aproximadamente o dobro e em 2000 atingiu a marca de dois milhões. Razões para usar PHP Performance elevada; Custo (usar PHP não custa nada 0€); Fácil de aprender; É estável; É popular (o que torna fácil encontrar documentação e source codes); Permite aceder a bases de dados (ODBC e suporte nativo por exemplo: MySQL e Oracle); PHP pode correr em quase todo o lado (ASP só corre em IIS, que na minha opinião é menos seguro que Apache). Adicionar PHP a HTML Chegamos finalmente ao ponto de escrever o primeiro script em PHP. <html> <head> <title>Olá Mundo</title> </head> <body> <?php echo "Olá Mundo!"; ?> </body> </html> Este código apenas mostra Olá Mundo, tudo que é PHP tem que estar dentro das tags <?php ?> ou então dentro de <? ?> (short tags). Não aconselho o uso dos short tags, pois é necessário estar no php.ini a opção short_open_tag on. Também se pode usar o HTML script tags <SCRIPT LANGUAGE="PHP"> </SCRIPT>. Se desejar ver informações sobre o PHP, Apache, ... <html> <head> <title>phpinfo</title> </head> <body> <?php phpinfo(); // Função que mostra informações do sistema ?> </body> </html> Irei agora mostrar um exemplo com um formulário e um campo de texto, o utilizador introduz um nome, que é recebido por PHP e consequentemente mostrado Olá NOME. Código HTML <html> <head> <title>ex01</title> </head> <body> <form name="form1" method="post" action=""> <!-- Inicio do formulario --> Nome: <input type="text" name="nome" maxlength="200"> <!-- Campo de texto máximo de 200 caracteres --> <br> <input type="submit" name="Submit" value="Enviar"> <!-- Botão para submeter --> </form> <!-- Fim do formulario --> </body> </html> Se premir o botão Enviar nada será feito (a página será recarregada), pois não existe nenhum tratamento da string recebida (campo nome). O código PHP deverá estar acima do código HTML. <?php if (isset($_POST['nome'])) { // Testa se a variável $_POST['nome'] existe echo "Olá ", $_POST['nome']; exit; // Termina a execução } ?> Iremos ver mais à frente melhor o $_POST (e também o $_GET) na secção Passar informações. Sintaxe e variáveis Nesta secção procuro abordar alguns aspectos gerais da linguagem, como usar variáveis e maneiras de mostrar texto na janela do browser. Aspectos gerais Não são necessárias declarações de variáveis; PHP não é HTML, PHP é embebido em HTML no entanto cada parte do documento é interpretado como PHP ou HTML consoante o caso; PHP tem uma sintaxe similar a C em alguns aspectos:Não interpreta espaços em branco (ex: $variavel=2; é igual a $variavel = 2;) Ao contrário de C o nome das funções não diferem minúsculas de maiúsculas Expressões são terminadas em ; Atribuições ($variável=valor) Comentários ( /* */ ou //) Chavetas separam blocos de instruções [*]PHP tem uma sintaxe similar a Perl em alguns aspectos: Comentários ( # texto ) Variáveis começam por o carácter dólar ($) Variáveis Uma das maneiras principais de armazenar informação é por meio de variáveis. Existem algumas regras sobre variáveis: Como já foi referido em cima começam por $; É atribuído um valor a variável usando o carácter =; O valor de uma variável é o valor da sua última atribuição; Os caracteres admitidos no nome das variáveis são a-z A-Z 0-9 e _ (no entanto o primeiro carácter a seguir ao $ não pode ser um número). <?php $var=3; echo $var; echo "<br />"; $var=5; echo $var; ?> Output: 3 5 Nota: uma variável cuja atribuição é feita num bloco de instruções (<?php ... ?>) estará disponível no resto dos blocos (<?php ... ?>). Tipos de variáveis PHP facilita a vida no tratamento de tipos de variáveis e é flexível (para programadores de linguagens estilo C podem esquecer declarações do estilo int variavel e char variavel[num]). <?php $teste = 2 + 0.15; echo $teste; ?> Output: 2.15 O output é o esperado, PHP converte o inteiro (2) num float (número real) e depois soma. <?php $teste="Olá"; echo $teste; // Igual a printf ("%s",$teste); ?> Output: Olá Output echo void echo (string arg1, [string arg2 ...]); O echo não é realmente uma função mas sim uma construção da linguagem, como tal os parênteses não são obrigatórios e no caso de se querer passar mais de um parâmetro não se podem usar. print int print (string arg); O print não é realmente uma função mas sim uma construção da linguagem, como tal os parênteses não são obrigatórios. Devolve um inteiro, que no entanto é sempre 1. Apenas permite passar um parâmetro. printf int printf (string,args); Produz um output formatado (equivalente ao printf de C), devolve o tamanho da string que foi enviada. Alguns formatos possíveis: %s - string %d - inteiro de base 10 %o - inteiro de base 8 %f - float, entre outros Constantes e Operadores Constantes Uma constante é um nome para um determinado valor, tal como o nome sugere não pode ser modificado ao longo da execução do script. O nome de uma constante obedece às mesmas regras que o nome de uma variável, ou seja: os caracteres admitidos no nome das constantes são a-z A-Z 0-9 e _ (no entanto o primeiro carácter não pode ser um número). <?php define ("TESTAR","xxx"); // Função que define a constante TESTAR com a string xxx echo TESTAR; ?> Output: xxx Pode-se obter o valor de uma constante através do seu nome (ao contrário das variáveis não possui um $ antes), ou então através da função constant. O exemplo que irei dar a seguir faz o mesmo que o exemplo acima dado, no entanto a função constant é especialmente útil quando à partida não se sabe o nome da constante, por exemplo porque se encontra armazenado numa variável ou é retornado por uma função. <?php define ("TESTAR","xxx"); echo constant("TESTAR"); ?> Output: xxx Se quiser verificar se uma função se encontra definida, bastara usar a função defined. Exemplo: <?php define ("TESTAR","xxx"); if (defined('TESTAR')) echo "Constante definida."; ?> Constantes "mágicas" PHP providencia um grande número de constantes predefinidas (http://pt.php.net/manual/en/reserved.constants.php). Também podem ser visualizadas usando a função get_defined_constants(), esta função devolve o nome e os valores de todas as constantes, devolvendo uma matriz (array). <?php print '<pre>'; // Esta tag mostra texto pre-formatador print_r(get_defined_constants()); print '</pre>'; ?> Output: Array ( [E_ERROR] => 1 [E_WARNING] => 2 [E_PARSE] => 4 [E_NOTICE] => 8 ... ) Operadores Aritméticos: + Adição (++ incrementa um valor) - Subtracção (-- decrementa um valor) * Multiplicação / Divisão % Módulo Lógicos (A diferença entre o and e &&, e or e || é ao nível de precedências): and Devolve TRUE quando ambos os argumentos são válidos or Devolve TRUE se pelo menos um argumento é válido ! Verdadeiro se o argumento não é verdadeiro xor Devolve TRUE se pelo menos um argumento é válido, mas não ambos && Devolve TRUE quando ambos os argumentos são válidos || Devolve TRUE se pelo menos um argumento é válido Comparação: == Igual (=== idêntico, ou seja analisa se são do mesmo tipo) != Diferente (!== não idêntico) < Menor > Maior <= Menor ou igual >= Maior ou igual Strings Existem dois operadores de strings, o . e o .= que servem para concatenar strings (para programadores de C que estão habituados a usar a função strcat em PHP tal não existe). <?php $s1="Olá "; $s2=$s1 . "Mundo."; // $s2 = Olá Mundo. //Ou $s1="Olá "; $s1.="Mundo."; ?> Estruturas de controlo If-Else-Elseif A estrutura de controlo if é muito importante em qualquer linguagem de programação pois permite fazer verificações de condições e consequentemente só executar alguns blocos de instruções. Para programadores em C que existem grande semelhanças. if (expressão) { instruções; } else { instruções; } Se pretende testar várias condições seguidas pode usar um conjunto de ifs encadeados. if (expressão) { instruções; } else if { // Ou então elseif é idêntico instruções; } else { instruções; } Exemplo: <html> <head> <title>ex02</title> </head> <body> <?php $d=date("D"); if ($d=="Fri") echo "Bom fim de semana."; else if ($d=="Mon") echo "Um bom inicio de uma semana de trabalho! "; else echo "Um bom dia."; ?> </body> </html> Switch A estrutura de controlo switch permite fazer várias verificações que poderiam ser feitas por N ifs encadeados mas assim torna-se muito mais simples. switch (expressão) { case valor1: instruções; [break;] case valor2: instruções; [break;] [default: instruções;] } Irei dar um exemplo, o mesmo que o exemplo do if faz mas usando um switch, poderá ver o que faz aqui. <?php $d=date("D"); switch ($d) { case "Fri": echo "Bom fim de semana."; break; case "Mon": echo "Um bom inicio de uma semana de trabalho!"; break; default: echo "Um bom dia."; } ?> While Dentro das construções de PHP de ciclos esta é sem dúvida a mais simples. Executa o bloco de instruções enquanto a expressão for TRUE. Caso seja FALSE logo de início nem sequer chega a executar as instruções, nesse caso devera ser usado um ciclo Do-While que iremos ver de seguida. while (expressão) instruções; Exemplo: <?php $cont=1; while ($cont<=5) { echo $cont."<br />"; ++$cont; } ?> Output: 1 2 3 4 5 Do-While O ciclo do while é similar ao while excepto que quando testa a expressão é no fim do ciclo e não no início. do instruções while (expressão); Exemplo: <?php $cont=2; do { echo $cont; ++$cont; } while ($cont>20); ?> Output: 2 Apenas mostra uma linha devido à expressão retornar FALSE. Se fosse um ciclo while em vez de um do while não mostrava uma única linha. For O ciclo mais complexo em PHP (em muitas outras linguagens também) sendo a sintaxe a seguinte: for (expressão inicial; expressão condicional; expressão final) instruções; expressão inicial - é executada apenas uma vez (normalmente usada para inicializar variáveis); expressão condicional - é analisada a cada ciclo se é FALSE o ciclo termina, caso contrário continua; expressão final - no fim de cada ciclo esta expressão é executada. Exemplo (o output será igual ao output da secção while só que desta vez é usado o for): <?php for ($cont=1;$cont<=5;++$cont) echo $cont."<br />"; ?> Output: 1 2 3 4 5 Nota: Se quiser incluir mais de uma instrução basta estarem entre chavetas, também é possível dentro de cada expressão ter várias instruções desde que separadas por vírgula. Ex: for ($cont=1;$cont<=5;++$cont,++$cont,--$cont) // Faz exactamente o mesmo Break e Continue A maneira mais comum de sair fora de um ciclo é a expressão tornar-se FALSE. Os comandos break e continue possibilitam outra opção. break Termina a execução de um ciclo. <?php $cont=1; while ($cont<=5) { echo $cont."<br />"; ++$cont; if ($cont==3) break; } ?> Output: 1 2 continue Salta o resto das instruções do ciclo actual que o contêm e continua a execução na expressão condicional. <?php $cont=0; while ($cont<5) { ++$cont; if ($cont==3) continue; echo $cont." "; } ?> Output: 1 2 4 5 Funções Funções definidas pelo utilizador não são realmente necessárias, pode-se produzir sites interessantes e úteis sem recorrer a funções definidas pelo utilizador mas apenas a construções básicas e funções já existentes no PHP. Se acha que os seus ficheiros em PHP estão a ficar demasiados grandes, difíceis de perceber, e difícil de fazer a gestão, pense em usar funções. O que é uma função? Função é uma maneira de pegar num pedaço de código dar-lhe um nome e pôr-lo à parte e quando quiser pode chamá-lo pelo nome. São especialmente úteis quando vamos usar esse pedaço de código várias vezes, no entanto em situações que só são usadas uma vez também são úteis por permite dividir bem o código tornando-o mais legível. Sintaxe function nome-da-função ($arg1, $arg2, ...) { instruções; [return $valor;] } Vou dar um exemplo de como fazer uma função a somar dois valores: <?php function soma ($valor1,$valor2) { return($valor1+$valor2); } if (isset($_POST['valor1']) && isset($_POST['valor2'])) { echo soma($_POST['valor1'],$_POST['valor2']); exit; } ?> O código HTML é o seguinte e deverá ser colocado após o código PHP: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>ex04</title> </head> <body> <form name="form1" method="post" action=""> Valor 1 <input name="valor1" type="text" id="valor1" maxlength="20"> <br> Valor 2 <input name="valor2" type="text" id="valor2" maxlength="20"> <br> <input type="submit" name="Submit" value="Enviar"> </form> </body> </html> Variáveis locais e globais Fora de funções as regras de variáveis são simples, se um valor for atribuído a uma variável, em qualquer parte do ficheiro em execução esse valor estará pronto a ser usado. As variáveis "declaradas" numa função são apenas acessíveis dentro dela, digamos que cada função tem um pequeno mundo seu e que não entra em conflito com o verdadeiro mundo. Se pretendem que numa função se refiram a variáveis globais deverão usar: global $variavel;. Include e Require (se o require falhar emite um erro e pára o processamento) É normal termos um conjunto de funções que vamos usar em várias páginas. Pode-se reunir esse conjunto de funções todo numa página PHP e incluir ao longo das páginas conforme necessário. Funções: include, include_once, require e require_once. Passar informações Alguma desta informação não é específica de PHP mas sim uma consequência da interacção PHP/HTML. HTML por si próprio é muito limitado. Imaginemos que quero guardar sempre numa variável de onde o utilizador veio para ter sempre um link 'Voltar atrás' correcto, tal não é possível com HTML; também podemos fazer umas forms todas giras mas de nada nos serve senão temos maneira de fazer o tratamento da informação recebida e guardá-la conforme o caso, aqui entra o PHP. Iremos abordar o $_POST e o $_GET. $_GET Variáveis fornecidas ao script através da URL. Similar ao $HTTP_GET_VARS (em desuso). Exemplo <?php if (isset($_GET['palavra'])) echo "A palavra é ".$_GET['palavra']; else echo "Erro, variável não definida."; ?> exemplos/ex05.php exemplos/ex05.php?palavra=TESTE Nota: Não recomendo a utilização do $_GET para sistemas de login, pois as passwords ficam a vista e também a utilização de URL grandes, mais de 255 caracteres é pedir problemas. $_POST Variáveis fornecidas ao script através de HTTP POST. Similar ao $HTTP_POST_VARS (em desuso). É mais seguro que o $_GET pois as passwords não ficam visíveis no URL e também permitem passar maior quantidade de informação. Ao longo deste manual já usei várias vezes o $_POST, cada campo de uma form tem um nome para ir buscar essa variável é $_POST['nome']. Exemplo: <input type="text" name="nome" maxlength="200"> : $_POST['nome']. Strings Strings são uma sequência de caracteres que podem ser manipulados, dados como input a funções, enviadas para o utilizador, recebias pelo utilizador através de forms, entre outras. $string1='Olá'; $string2="Olá"; A diferença é entre " e ', sendo esta ao nível da interpretação com " o PHP interpreta as variáveis e também caracteres começados pelo caracter especial \. <?php $nome="guest"; $string1='Olá $nome'; $string2="Olá $nome"; echo $string1; echo "<br />"; echo $string2; ?> Output: Olá $nome Olá guest Sendo uma string um conjunto de caracteres, ou seja, um vector, podemos manipular facilmente strings. <?php $s="Olá tudo bem? Quando vais a casa do ..."; $cont=0; while ($cont<strlen($s)) { if (($s[$cont]=="o") || ($s[$cont]=="O")) $s[$cont]="X"; if (($s[$cont]=="l") || ($s[$cont]=="L")) $s[$cont]="w"; if (($s[$cont]=="Q") || ($s[$cont]=="c")) $s[$cont]="k"; ++$cont; } echo $s; ?> Output: Xwá tudX bem? kuandX vais a kasa dX ... Se desejar fazer concatenações de strings veja isto. Existem um conjunto de funções importantes: strlen (devolve o número de caracteres da string), strpos (devolve a primeira posição da substring), strcmp (compara duas strings, pode se usar o operador ==), strcasecmp (comparar duas strings mas sem diferenciar maiúsculas de minúsculas). Matrizes (Arrays) As matrizes em PHP, ao contrário de outras linguagens de programação (C/C++), permitem armazenar dados de tipos variados. Uma matriz é um conjunto de variáveis "juntas" numa só. Algumas das variáveis que já usamos, como por exemplo $_GET, usa uma matriz. $aluno0="Nome"; $aluno1="Nome"; Podemos organizar numa matriz, por número e/ou string (entre ' '). <?php $alunos[0]="Eduardo"; $alunos[1]="João"; print_r ($alunos); ?> array $alunos=array('Eduardo', 'João'); É exactamente o mesmo que acima foi mostrado. Por defeito começa pelo índice 0, mas pode ser especificado outro valor, como veremos a seguir: <?php $alunos=array(0 => 'Eduardo', 1=> 'João'); print_r ($alunos); ?> Existem muitas funções para manipulação de arrays vou dar apenas o exemplo das mais importantes (lista completa): bool is_array (var); Devolve FALSE se a var não for um array int count (var, [int mode]); Devolve o números de variáveis (linhas) no array current Devolve o elemento actual do array next Aponta para o próximo elemento do array reset Aponta para o primeiro elemento do array end Aponta para o último elemento do array Edited July 29, 2013 at 03:55 PM by entering
UnKnowN Posted March 30, 2006 at 06:12 PM Report #20171 Posted March 30, 2006 at 06:12 PM Pah Isto é Que Foi 1 Ganda Post 😛 Parabéns e Continua é isto que o ppl ker 😁
entering Posted March 30, 2006 at 08:17 PM Author Report #20199 Posted March 30, 2006 at 08:17 PM tanks Unknow, foi escrito já a uns meses largos (trabalho para entregar a um stor), em breve estou a pensar fazer algo mais alargado e organizado e por na net, dai querer algumas sugestoes, criticas, detecçao de erros, etc..
deathseeker25 Posted March 30, 2006 at 09:06 PM Report #20216 Posted March 30, 2006 at 09:06 PM Boas, Grande tutorial que aqui temos. Só existe um pormenor que gostaria de ver corrigido: utiliza o GeSHI no código que postas para fazer o highlight do mesmo. 😁 Dará um aspecto mais soft ao tutorial. De resto, um grande tutorial 😛
David Pintassilgo Posted March 30, 2006 at 09:45 PM Report #20231 Posted March 30, 2006 at 09:45 PM Boas! eu gostei bastante do tuto. Mas na qualidade de recente aprendiz de PHP devo dizer que coisas como... Chegamos finalmente ao ponto de escrever o primeiro script em PHP. <html> <head> <title>Ola Mundo</title> </head> <body> <?php echo "Ola Mundo!"; ?> </body> </html> ... só complica, (pelo menos a mim era o caso) Pesso que para 1ª abordagem se devia de falar simplesmente em: <?php echo "Ola Mundo!"; ?> e aproveitar LOGO para esplicar que echo/print,...same shit. Porque era algo me me fazia uma granda confuzão! Mas de resto está 5 estrelas, muito esplicito,... gostei! cool stuffs to check. http://blog.zxcoders.com//
pedrotuga Posted April 30, 2006 at 01:27 PM Report #24968 Posted April 30, 2006 at 01:27 PM muito trabalhinho aí... ainda bem que alguem se predispoe a faze-lo.
MCK-12 Posted July 17, 2006 at 05:07 PM Report #38678 Posted July 17, 2006 at 05:07 PM Muito muito bom. Ainda bem que há tutos para os mais iniciados. Tem-me ajudado bastante. Thanks 🙂 Mas olha...aqui nesta frase... "O output é o esperado, PHP converte o inteiro (2) num float e depois soma." O que queres dizer com "float"?
UnKnowN Posted July 17, 2006 at 05:30 PM Report #38679 Posted July 17, 2006 at 05:30 PM O que queres dizer com "float"? Float é um número real (fráccionário, com vírgulas portanto...)
PaLobo Posted July 17, 2006 at 09:56 PM Report #38738 Posted July 17, 2006 at 09:56 PM Muito bom trabalho! E vem mesmo a calhar pois estou a precisar de aprender PHP para um trabalhinho que tenho que fazer. Isto vai sem dúvida acelerar o processo. Muito obrigado. 😛 http://s4.bitefight.com.pt/c.php?uid=20666
Drone Posted July 17, 2006 at 11:28 PM Report #38765 Posted July 17, 2006 at 11:28 PM Realmente tas de parabens se foste tu que o fizestes tens todo merito isto ajuda a muita gente, quem me dera que quando comecei a programar PHP encontra-se uma coisa destas 👍 É isto e um forum como o p@p, na altura que comecei com o PHP tive de aprender sozinho, pedia ajuda a pessoal que percebia mandavam-me passear. Penso que devias fazer uma pagina toda pipi com este tutorial 😛 Vou ver se arranjo um tempinho para fazer tutoriais tambem 😁 PS: um moderador que faça move do topic para o forum Tutorials! Cheers!
entering Posted July 18, 2006 at 11:29 AM Author Report #38825 Posted July 18, 2006 at 11:29 AM Drone ainda bem que referiste isso, sff que mudem para a secçao tutoriais (foi eu que fiz o tut td) *MCK-12: vou por uma nota no tutorial que um fload é um número real
UnKnowN Posted July 18, 2006 at 01:13 PM Report #38848 Posted July 18, 2006 at 01:13 PM Drone ainda bem que referiste isso, sff que mudem para a secçao tutoriais (foi eu que fiz o tut td) *MCK-12: vou por uma nota no tutorial que um fload é um número real Float* 😛
pedrotuga Posted July 18, 2006 at 06:14 PM Report #38904 Posted July 18, 2006 at 06:14 PM bem... lamento estar a dizer isto em vez de o fazer de uma vez.. ( exames ) wiki com isto!
entering Posted July 19, 2006 at 10:24 PM Author Report #39143 Posted July 19, 2006 at 10:24 PM pedrotuga nao percebi!
pedrotuga Posted July 19, 2006 at 10:35 PM Report #39147 Posted July 19, 2006 at 10:35 PM O PaP tem um wiki... é importante que este tipo de conteudo comece a ser arquivado lá de forma a ficar mais acessível. vai a http://portugal-a-programar.org/mediawiki faz login com o username aqui do fórum e afixa lá este tutorial 🙂 Atenção que a sintaxe do wiki n é bbcode como a dos fóruns... mas aquilo tem um editor todo pipi que permite afixação facil.
operacoes Posted July 20, 2006 at 05:48 AM Report #39173 Posted July 20, 2006 at 05:48 AM bom tutorial. bom mesmo.
Guest Marine Posted November 5, 2006 at 05:25 PM Report #62248 Posted November 5, 2006 at 05:25 PM Está excelente!!!
finkas Posted April 3, 2007 at 08:16 PM Report #91752 Posted April 3, 2007 at 08:16 PM Gostei muito do toturial... Mas acho que é muito difícil aprender PHP... Por acaso gostava de saber do pessoal que sabe PHP se foi muito dificil aprender(responda pfv) 😄
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now