Vous êtes sur la page 1sur 10

Hello there, the angel from my nightmare...

T bom, t bom, no foi um comeo nada muito bom, mas acredite, vai piorar =) . Estamos aqui reunidos por um motivo em comum, no? Queremos aprender PHP, ou no queremos, m as [b]temos[/b]. Tudo beleza ento, s efetuar um depsito de R$ 10,00 na conta XYZ-0 que eu lhe envio o Suco de Laranja Mastering PHP, s beber duas vezes ao dia, que voc aprende PHP em 78 horas.

infelizmente no um jeito fcil dessa maneira que ir realmente aprender PHP. Ser um c minho rduro e cheio de muralhas pela frente, muralhas mesmo, pedras so pequenas pa ra atrapalhar... Mas eu ficar contando historinhas ou piadinhas no vai ajudar em muita coisa, ento, vamos ao que interessa. [i][b]Introduo[/b][/i] Caso voc j tenha tido a oportunidade de ler outro tutorial, provavelmente j viu que PHP uma linguaguem Server-Side, ou seja, que executada no, e somente, no servid or. Diferente do JavaScript por exemplo que uma linguaguem Client-Side, executad a no cliente (internauta). Dessa forma, h coisas fora do nosso alcance para realizar no PHP. Como por exempl o, alterar a cor de um boto ao internauta pressionar a letra "b". Isso est sendo e xecutado aonde? No servidor ou no cliente? J pensando em nosso frum, faa essa pergu nta para voc mesmo antes de criar um tpico. Isso ou no relacionado PHP? Como vamos ver desde ponto em diante, comentrios em alguns scripts, vamos ver as possiveis formas de adicionar um comentrio no PHP. [quote]<?php // Comentrio de 1 linha # Comentrio de 1 linha /* Comentrio em bloco segue comentado at finalizar o bloco com */ ?>[/quote] [i][b]O que vamos ver nesse tutorial?[/b][/i] Antes de prosseguir, vamos deixar claro que, estou considerando que voc j est com u m servidor web com o PHP rodando em sua mquina, ou com um servidor online. Config uraes padres do php.ini 4.3.0+ (register_globals = off).

Vou tentar, atravs desse tutorial, abranguer os primeiros passos dado ao PHP, ele vando um pouco a dificuldade em cada passo que damos. No minha inteno passa funes re acionadas banco de dados nesse primeiro tutorial, mas para um segundo, isso seri a o foco. Ento vamos parando com o [i]lero-lero[/i] e comear a ralar ;) [i][b]"Adeus Mundo!"[/b][/i] Por que sempre o famoso "Ol Mundo!"? Vamos estar nos escondendo dele ao tentar ap rofundar em PHP. Quanto mais voc se interessa em aprender, mais festas deixar de p articipar, menos garotas ir conhecer e mais sbrio ir ficar (estou em dvida se isso u m fato bom ou ruim). - Nossa, mas ele sempre tira tempo para outra piadinha horrvel...

T booooooooom! Todas as pginas, para serem executados os cdigos/instrues PHP, pre sua extenso .php (.php3 est ficando para trs). Sabemos qual a extenso das pginas par a serem consideradas PHP, e agora, como eu crio um cdigo PHP? Por padro, um cdigo P

HP iniciado com a tag [color=red][b]<?php[/b][/color] e encerrado com [color=red ][b]?>[/b][/color]. No vamos nos ater outras tags, mas s para conhecimento existem as opes: [quote]<? ?> <% %> <script languague="php"> </script>[/quote] Certo, vamos criar nossa pgina "tut01.php" e "limpe" o cdigo fonte dela, no vamos t rabalhar com html ainda, somente com a sada PHP. Vamos iniciar um bloco de cdigo P HP e fazer uma sada para o navegador. [quote]<?php echo "Adeus Mundo!"; ?>[/quote] Como diria meu amigo, Jack Estripador, vamos por partes, ou melhor, por linhas. Linha 01: <?php => Iniciamos o bloco PHP; Linha 02: echo "Adeus Mundo!"; => [i]echo[/i] uma funo do PHP para [i]imprimir[/i] uma sada no navegador. Escrevemos a sada entres aspas pois no estamos trabalhando com variveis ainda. Utilizamos o ";" no final de cada linha de comando, caso cont rrio um erro gerado; Linha 03: ?> => Encerramos o bloco PHP. Salvamos essa pgina e publicamos no servidor. A nica sada que temos no navegador se r "Adeus Mundo!" (sem as aspas). O cdigo fonte tambm omite qualquer outra sada, send o assim, o PHP somente apresentar para o usurio o que for mandado apresentar. - Certo, mas por que o Jozinho usa o [i]print[/i]? No tem diferena?

Embora muitos digam que no, tem sim. Claro, nada que seja muito utilizado em caso s "normais", mas que h uma diferena, h. Tempo de execuo, exatamente iguais, sem difer ena nisso. Digamos que a nica visivel seja, [i]print[/i] retorna para uma varivel T RUE ou FALSE. (lembrando, essa parte somente para tirar a dvida de algumas pessoa s em relao a comparao de [i]echo[/i] e [i]print[/i], no h necessidade de decorar nada daqui). [quote]<?php $print = print "Teste"; // A sada ser Teste, mas agora apresente a varivel echo $print; // Sada 1 ou TRUE ?>[/quote] [i][b]Eba! J sei apresentar um contedo no navegador[/b][/i] Agora vamos comear a complicar um pouco mais. Vamos ver como apresentar um mais nm ero de sadas no mesmo bloco, e logo em seguida, comearemos a utilizar algumas variv eis. [quote]<?php echo "Nome:"; echo "Luciano"; ?>[/quote] Mas preciso realmente preciso utilizar duas vezes [i]echo[/i]?!?! No necessrio, pa ra isso, ns utilizamos a concatenao "." (em outras linguaguens mais comum ver o smbo lo "+" para concatenao, mas no PHP o "." mesmo). [quote]<?php

echo "Nome:" . "Luciano"; ?>[/quote]

Voc se pergunta, qual a vantagem disso? Poderia colocar os dois textos juntos. Si m, realmente poderia, mas uma introduo concatenao. Agora veremos a utilizao de va . [i][b]O que diabos so variveis?[/b][/i] So apenas blocos de memria para armazenamento de alguma informao. Texto, nmeros, arqu ivos, etc... Novamente, diferente de outras linguaguens, no PHP voc no obrigado a definir o tipo de varivel que deseja utilizar (int, float, bool, ...). Vamos algu ns exemplos: [quote]<?php $minha_variavel = "Meu texto"; ?>[/quote] Vamos seguir o exemplo do nosso amigo Jack Estripador, por partes. Como podem ve r, para declarar uma varivel iniciamos o texto com o caracter "$", ele que indica que o texto a seguir ser uma varivel. Algumas observaes quanto variveis: - Voc no pode iniciar um nome de varivel com nmeros, ex: $1. Mas pode utilizar nas d emais partes do nome, ex: $a1; - O PHP case-sensitive (h diferenas entre $nome, $Nome e $NOME); - Utilize sempre variveis com nomes indicando o seu contedo, para simplificar a ma nuteno de terceiros e at mesmo a sua. [i][b]Tenho uma varivel, o que fao com ela?[/b][/i] Digamos que a base de todas as linguaguens de programao so variveis, pois, se no prec isa-se de contedos variveis, por que programaria? Simplesmente utilizava HTML. Vamos um outro cdigo: [quote]<?php $nome = "Luciano"; $idade = 19; ?>[/quote] Declaramos duas variveis no exemplo acima, uma chamada $nome, com o valor "Lucian o" e outra, chamada $idade, com o valor 19. Por que no foi utilizado aspas para i nserir o valor 19? Simples, variveis do tipo texto (text) precisam ser inseridas entre aspas, j as numerais (int, float, ...) voc simplesmente precisa informar o nm ero. [i][b]Beleza, agora temos duas variveis e no fizemos nada com elas...[/b][/i] Calma l! Vamos juntar tudo que vimos at agora: [quote]<?php $nome = "Luciano"; $idade = 19; echo "Ol, meu nome " . $nome . " e tenho " . $idade . " anos."; ?>[/quote] Aqueceu a mente agora? Jack neles: $nome = "Luciano" => Simplesmente declaramos uma varivel, como haviamos feito ant eriormente; $idade = 19 => Mesmo que o anterior, declarao de outra varivel; echo ...... => Complicou? Bom, temos a primeira parte "Ol, meu nome " que a apres entao de um texto esttico para o navegador, utilizamos o "." para adicionar outro v

alor apresentao, [i]$nome[/i] aqui apresentamos o valor da varivel $nome, veja que no escrito no navegador a palavra "$nome", mas sim "Luciano", adicionamos outro b loco de texto esttico, o valor da varivel $idade, e por fim, " anos.". isso ento? Boa sorte no PHP e comece a trabalhar! ........... , infelizmente no s isso no, temos muuuuuuuuito mais desafios pela frente. Que tal a lgumas funes bsicas que podemos fazer trabalhando com variveis: strlen(TEXTO) [quote]<?php $nome = "Luciano"; echo "Seu nome tem " . strlen($nome) . " letras."; ?>[/quote] A funcionalidade da funo [i]strlen[/i] de contar o nmero de caracteres que temos em determinada string (texto). Utilizamos a concatenao em uma funo, como podem ver, po demos concatenar textos estticos, variveis e funes. substr(TEXTO, INICIO, [ANDAR]) [quote]<?php $nome = "Luciano"; echo "A primeira letra de seu nome " . substr($nome, 0, 1); ?>[/quote] A funo [i]substr[/i] tem por objetivo "cortar" parte de um texto para a apresentao. O primeiro parmetro passamos o texto a ser cortado, por segundo o caracter onde d eve ser dado o inicio do corte (lembrando que comea do 0, no do 1), e por final, m as no obrigatrio, quantos caracteres devem ser "andados", caso no passe nenhum valo r, ser at o final do texto. trim(TEXTO) [quote]<?php $variavel = " OI "; echo trim($variavel); ?>[/quote] [i]trim[/i] elimina os espaos em branco do inicio e do final de um texto. ucfirst(TEXTO) [quote]<?php $nome = "luciano"; echo ucfirst($nome); ?>[/quote] [i]ucfirst[/i] capitaliza (existe essa palavra?!) a primeira letra de um texto. strtoupper(TEXTO) [quote]<?php $nome = "Luciano"; echo strtoupper($nome); ?>[/quote] [i]strtoupper[/i] transforma todas as letras de um texto em maiuscula. strtolower(TEXTO) [quote]<?php $nome = "Luciano";

echo strtolower($nome); ?>[/quote] [i]strtolower[/i] a funo inversa de [i]strtoupper[/i]. Transforma todos os caracte res em minusculo. str_replace(PESQUISA, SUBSTITUI, TEXTO) [quote]<?php $texto = "isso foi foda mesmo"; echo str_replace("foda", "****", $texto); ?>[/quote] [i]str_replace[/i] procura por uma combinao de letras e a substitui em determinado texto. Outras opes nessa funo podem ser vistas com a utilizao de matrizes. [i][b]Captei! Vamos para Matrizes[/b][/i] Digamos que o monstro para muitos programadores iniciantes. Matrizes so grupos de valores em uma nica varivel. No PHP temos algumas maneiras para iniciar uma matri z: [quote]<?php $matriz_a = array("Joo", "Maria"); $matriz_b[] = "Joo"; $matriz_b[] = "Maria"; ?>[/quote] Ambas teriam o mesmo contedo. Na primeiro forma ($matriz_a) declaramos que a variv el do tipo [i]array[/i] (matriz) e em seguida passamos os valores para ela. J na segunda, colocamos cada valor separamente. Caso no seja definido um ndice para a m atriz, ela se auto-inicia do 0 e tambm se incrementa de acordo com a necessidade. [quote]<?php $matriz = array("Oi", "Tchau"); echo $matriz[0]; // Oi echo $matriz[1]; // Tchau ?>[/quote] Criamos nossa matriz, e em seguida apresentamos os valores dela, como no definimo s ndice em nenhum dos casos, ela se iniciou no 0 e foi se incrementando. [i][b]Mas como definir um ndice?[/b][/i] Vamos ver nas duas formas: [quote]<?php $matriz = array(5 => "Joo", "indice" => "Maria"); echo $matriz[5]; // Joo echo $matriz["indice"]; // Maria ?>[/quote] [quote]<?php $matriz[5] = "Joo"; $matriz["indice"] = "Maria"; echo $matriz[5]; echo $matriz["indice"]; ?>[/quote] [i][b]Certo, mas matriz no tem vantagem nenhum em relao s variveis normais...[/b][/i] 10 minutos e voc mudar completamente de idia. Vamos criar uma lista de nomes em uma varivel e apresenta-las:

[quote]<?php $nome1 = "Luciano"; $nome2 = "Joo"; $nome3 = "Maria"; echo $nome1; echo $nome2; echo $nome3; ?>[/quote] Divertido, no? Imagine fazer dessa forma para 500 nomes? Eu no queria ser programa dor nesses casos... Agora vejamos com matrizes: [quote]<?php $nomes = array("Luciano", "Joo", "Maria"); foreach( $nomes as $nome ) { echo $nome; } ?>[/quote] NO!!! No desista agora. Nosso amigo Jack vai explicar melhor tudo isso: $nome = array(...) => Criamos nosso array, nada de novo foreach( $nomes as $nome ) { => Opa, algo novo a. Para quem conhece ingls j deve te r imaginao do que isso faz, [i]foreach[/i] (para cada): [quote]para cada( $nomes como $nome )[/quote] Ele ir passar por TODOS os valores da matriz e copiar o seu valor para a varivel $ nome. Interessante no? como se execut-se-mos o cdigo tantas vezes quanto h valores n a matriz. Utilizamos "{" e "}" para determinar o inicio e fim do nosso comando [i]foreach[ /i]. Tudo que est entre eles ser repetido. Vamos outro exemplo com o foreach: [quote]<?php $nomes = array(5 => "Luciano", 10 => "Joo", "indice" => "Maria"); // Criamos a ma triz definindo seus ndices foreach( $nomes as $indice => $valor ) { echo $indice . " = " . $valor; } ?>[/quote] ixi, fedeu? Calma l, o que temos de novo nessa parte? [b]( $nome as $indice => $v alor )[/b], dessa vez, ao invz de passar somente o valor de cada ndice na matriz, estamos passando o nome do ndice. Lembrando, a primeir vriavel receber o nome do ndi ce e a segunda o seu valor. Matrizes, basicamente isso, sua definio e utilizao. Vamos passar por algumas funes envolvem matrizes e dar mais valor essas prolas da programao. [i][b]L vem bomba... Condicional[/b][/i] Qual a vantagem de ter um contedo dinmico em seu site se ele no conseguir decidir q ual caminho tomar? Vamos ter uma introduo s condicionais agora [i]if else[/i] [quote]<?php $nome = "Luciano";

if( $nome == "Luciano" ) { echo "Voc realmente o Luciano"; } ?>[/quote]

Como vimos anteriormente, "{" e "}" servem para definir um inicio e um fim a um comando. [i]if[/i] estar se perguntando SE o valor da varivel $nome for igual "Luc iano". Se sim, o cdigo entre "{" e "}" executado, caso contrrio, nenhuma ao tomada. Outro detalhe , para definir valores variveis, utilizamos "=", para comparar valor es "==". E uma terceira opo seria "===", que compara tambm o tipo da varivel, alm de seu valor (utilizada para diferenciar 0 de FALSE, por exemplo). Agora veremos para no deixar passar em branco nossa condicional, a utilizao do coma ndo [i]else[/i]: [quote]<?php $idade = 19; if( $idade >= 18 ) { echo "Maior de idade"; } else { echo "Menor de idade"; } ?>[/quote] Nossa comparao dessa vez no consulta por um valor igual, mas sim, ">=" (maior ou ig ual). Somente aplicada em nmeros. Caso o valor da varivel $idade no seja >= 18, a i nstruo [i]else[/i] executada. Com isso j possivel fazer uma pesquisa em uma matriz, por exemplo: [quote]<?php $nomes = array("Joo", "Maria", "Carlos", "Ana", "Paulo", "Bruna"); foreach( $nomes as $nome ) { if( $nome == "Ana" ) { echo "Ana encontrada"; } } ?>[/quote] O que temos no script acima? Criamos uma matriz com uma lista de nomes, em segui da, varremos toda a matriz, passando cada valor para a varivel $nome. Dentro do l oop para cada valor na matriz, verificamos se o valor do $nome igual "Ana" se fo r, apresentamos a mensagem "Ana encontrada". Alguns erros comuns nesses casos: [quote]<?php $nomes = array("Joo", "Maria", "Carlos", "Ana", "Paulo", "Bruna"); foreach( $nomes as $nome ) { if( $nome == "Ana" ) { echo "Ana encontrada"; } else { echo "Ana no encontrada"; } } ?>[/quote] No que esse esteja errado, mas provavelmente no trar a sada desejada, pois, repare b em, em cada loop do comando [i]foreach[/i] ele executa a condicional, pegamos o

primeiro caso, "Joo", como "Joo" diferente de "Ana", ele executa o comando [i]else [/i], apresentando, dessa forma, vrias vezes "Ana no encontrada". Para executar da maneira desejada esse script, precisamos de uma varivel conhecida pelo nome de [ i]flag[/i]. [i][b]Pronto, s faltava uma bandeira mesmo no PHP...[/b][/i] Nada disso, [i]flag[/i] o nome dado uma varivel que tem apenas um valor para comp arao, na maioria das vezes [i]TRUE[/i] ou [i]FALSE[/i] (VERDADEIRO ou FALSO). Veja mos como fica nosso exemplo dessa forma: [quote]<?php $nomes = array("Joo", "Maria", "Carlos", "Ana", "Paulo", "Bruna"); $flag = false; foreach( $nomes as $nome ) { if( $nome == "Ana" ) { $flag = true; } } if( $flag ) { echo "Ana encontrada"; } else { echo "Ana no encontrada"; } ?>[/quote] Jack?!?! Criamos a matriz, definimos nossa $flag como false (falso), pois "Ana" no foi enc ontrada dentro da matriz ainda, varremos a matriz passando o valor para a varivel $nome, se $nome for igual a "Ana" alteramos nossa $flag para true (verdadeiro). Terminando completamente o loop, executamos nossa condicional, repare que no tem os realmente uma comparao a ser feita, por que isso? pois na verdade toda comparao r etorna TRUE ou FALSE, ex: 1 == 2 FALSE, 5 == 5 TRUE, e assim por diante. Como no ssa varivel j tem um valor boleano (TRUE ou FALSE), ela mesmo se encarregar de reto rnar a resposta para o comando [i]if[/i]. Se $flag contr TRUE apresentamos "Ana e ncontrada", caso contrrio, "Ana no encontrada". Imagine agora, se estivessemos procurando por "Joo", era uma repetio sem sentido at o final da matriz, j que "Joo" o primeiro nome, mas como consigo parar um loop? [quote]<?php $nomes = array("Joo", "Maria", "Carlos", "Ana", "Paulo", "Bruna"); $flag = false; foreach( $nomes as $nome ) { if( $nome == "Joo" ) { $flag = true; break; } } if( $flag ) { echo "Joo encontrado"; } else { echo "Joo no encontrado"; } ?>[/quote] Nossa nica diferena, o comando [i]break[/i], que simplesmente corta o loop no mome nto que for encontrado o nome que procuramos. [i][b]Outras formas de Loop[/b][/i]

Vamos ver algumas outras formas de loop para utilizar no somente em arrays. Vamos para a primeira delas, [i]while[/i]: [quote]<?php $contagem = 1; while( $contagem <= 10 ) { echo $contagem; $contagem = $contagem + 1; } ?>[/quote] O comando [i]while[/i] (enquanto) executa determinada funo enquanto a sua condicio nal for verdadeira. Jack, venha c: while( $contagem <= 10 ) => Enquanto contagem for menor ou igual 10, apresentamo s o valor de $contagem no navegador e alteramos o valor de $contagem para $conta gem + 1, ou seja, um a mais que o seu valor anterior. [color=red]Sim, muitas vezes vocs vo conseguir fazer os chamados loops infinitos, ou seja, ele vai ficar em execuo at estourar o tempo limite do PHP.[/color] Um exemplo de loop infinito (no execute =D): [quote]<?php $contagem = 1; while( $contagem <= 10 ) { echo $contagem; } ?>[/quote] Veja que fazemos praticamente a mesma ao que a acima, mas esquecemos de aumentar o valor da varivel $contagem, ou seja, ela sempre ter seu valor igual 1, nunca pass ar de 10. Outro comando para loop que disponivel no PHP o [i]for[/i], que, basicamente, o mesmo que o while, mas no precisamos controlar nossa contagem, como no exemplo ac ima. [quote]<?php for( $contagem = 1; $contagem <= 10; $contagem++ ) { echo $contagem; } ?>[/quote] De certa forma mais simples que o [i]while[/i]. Sua sintaxe a seguinta: for( INICIALIZACAO; CONDICIONAL; INCREMENTO ) Ou seja, na primeira parte iniciamos a $contagem, depois fazemos nossa condicion al verificando se $contagem <= 10 e por ltimo, aumentamos o valor da varivel $cont agem. Repare que dessa vez, utilizamos $contagem++ para aumentar a varivel. [quote]<?php $numero = 5; $numero++; // $numero aumentado em 1 $numero--; // $numero diminuido em 1 $numero += 10; // $numero aumentado em 10 $numero -= 10; // $numero diminuido em 10

$numero = 5; $a = $numero++; // $a recebe $numero (5) e ento $numero aumentado em 1 $numero = 5; $a = ++$numero; // $numero aumentado em 1 e ento passa o novo valor (6) para $a $numero = 5; $a = $numero--; // $a recebe $numero (5) e ento $numero diminuido em 1 $numero = 5; $a = --$numero; // $numero diminuido em 1 e ento passa o novo valor (4) para $a ?>[/quote] H tambm outros comandos para loop como [i]do... while[/i] / [i]while... do[/i] Mas que teria a mesma sintexa do comando while, deixaremos eles de fora por enquant o. [i][b]Ahhhh, acabou[/b][/i] Exato, infelizmente acabou... Tudo precisa de um comeo, um meio e um fim. Bom, es tamos quase em 20% :) Estou preparando outros tutoriais envolvendo funes de maior utilidade para o desenvolvimento de sites, mas espero que esse pequeno tutorial tenha servidor como uma introduo para quem procura aprender mais sobre PHP e as ma ravilhas que pode fazer com ele. Qualquer dvida, estou inteiramente a disposio para tentar lhe ajudar. Basta "pergun tar" ;) Quanto liberdade para apresentar ou qualquer outro site de intuito orial pensando em ajudar quem est idos, melhor. Peo somente, que me esse tutorial em outros fruns, sites de download educacional, sinta-se livre, escrevi esse tut iniciando em PHP, quanto maior o nmero de atingu reconheam como autor dele, beleza ento?

Vous aimerez peut-être aussi