Projeto Supervisionado - PDF
Download "Projeto Supervisionado"
Sara Belmonte Custódio
1 UNIVERSIDADE FEDERAL DE SERGIPE CCET - CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DCCE - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO E ESTATÍSTICA Projeto Supervisionado Tutorial da linguagem PHP por Maurício Vivas de Souza Barreto Professor Orientador: Giovanny Lucero
2 UNIVERSIDADE FEDERAL DE SERGIPE CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA Projeto de Final de Curso Submetido a uma banca examinadora composta por: Professor Giovanny Lucero Professora Ana Rosimere Professor Leonardo Nogueira Matos
3 Agradecimentos A Giovanny, por ter acreditado no projeto e aceitado o desafio de realizá-lo em tão pouco tempo; A Ana Rosimere, pela ajuda que sempre deu durante todo o curso; A minha mãe, SEMPRE! Aos professores do DCCE, pelo conhecimento que me transmitiram; A Mônica e Calliandra, também pelo incentivo, principalmente enquanto ainda estavam no curso; A Marina, por existir; A meus amigos, porque o são; A Shi eu não vou agradecer, só pra ser do contra! J
4 Índice ÍNDICE INTRODUÇÃO...9 O QUE É PHP?...9 O QUE PODE SER FEITO COM PHP?...9 COMO SURGIU A LINGUAGEM PHP? SINTAXE BÁSICA...11 DELIMITANDO O CÓDIGO PHP...11 SEPARADOR DE INSTRUÇÕES...11 NOMES DE VARIÁVEIS...12 COMENTÁRIOS...12 Comentários de uma linha:...12 Comentários de mais de uma linha: CRIANDO OS PRIMEIROS SCRIPTS...14 PRIMEIRO EXEMPLO...14 UTILIZANDO FORMULÁRIOS HTML...15 INTERAGINDO COM O BROWSER...16 ACESSANDO BANCOS DE DADOS...17 Conexão com o servidor...17 Seleção do banco de dados...18 Execução de queries SQL...18 Tratamento de resultados de query SELECT TIPOS...22 TIPOS SUPORTADOS...22 Inteiros (integer ou long)...22 Números em Ponto Flutuante (double ou float)...23 Strings...23 Arrays...24 Listas...24 Objetos...26 Booleanos...26 TRANSFORMAÇÃO DE TIPOS...26 Coerções...26 Transformação explícita de tipos...27 Com a função settype CONSTANTES...29 CONSTANTES PRÉ-DEFINIDAS...29 DEFININDO CONSTANTES OPERADORES...30 ARITMÉTICOS...30 DE STRINGS...30 DE ATRIBUIÇÃO...30 BIT A BIT...31
5 LÓGICOS...31 COMPARAÇÃO...31 EXPRESSÃO CONDICIONAL...32 DE INCREMENTO E DECREMENTO...32 ORDEM DE PRECEDÊNCIA DOS OPERADORES ESTRUTURAS DE CONTROLE...34 BLOCOS...34 COMANDOS DE SELEÇÃO...34 if...35 switch...37 COMANDOS DE REPETIÇÃO...38 while...38 do... while...39 for...40 QUEBRA DE FLUXO...41 Break...41 Continue FUNÇÕES...43 DEFININDO FUNÇÕES...43 VALOR DE RETORNO...43 ARGUMENTOS...44 Passagem de parâmetros por referência...44 Argumentos com valores pré-definidos (default)...45 CONTEXTO...46 ESCOPO VARIÁVEIS...48 O MODIFICADOR STATIC...48 VARIÁVEIS VARIÁVEIS...49 VARIÁVEIS ENVIADAS PELO NAVEGADOR...49 URLencode...50 VARIÁVEIS DE AMBIENTE...50 VERIFICANDO O TIPO DE UMA VARIÁVEL...50 Função que retorna o tipo da variável...51 Funções que testam o tipo da variável...51 DESTRUINDO UMA VARIÁVEL...51 VERIFICANDO SE UMA VARIÁVEL POSSUI UM VALOR...52 A função isset...52 A função empty CLASSES E OBJETOS...53 CLASSE...53 OBJETO...53 A VARIÁVEL $THIS...53 SUBCLASSES...54 CONSTRUTORES CONCLUSÕES BIBLIOGRAFIA E REFERÊNCIAS...57
6 APÊNDICE 01 - FUNÇÕES PARA TRATAMENTO DE STRINGS...58 FUNÇÕES RELACIONADAS A HTML...58 htmlspecialchars...58 htmlentities...58 nl2br...58 get_meta_tags...59 strip_tags...59 urlencode...59 urldecode...60 FUNÇÕES RELACIONADAS A ARRAYS...60 Implode e join...60 split...60 explode...61 COMPARAÇÕES ENTRE STRINGS...61 similar_text...61 strcasecmp...61 strcmp...61 strstr...62 stristr...62 strpos...62 strrpos...62 FUNÇÕES PARA EDIÇÃO DE STRINGS...63 chop...63 ltrim...63 trim...63 strrev...63 strtolower...64 strtoupper...64 ucfirst...64 ucwords...64 str_replace...65 FUNÇÕES DIVERSAS...65 chr...65 ord...65 echo...65 print...65 strlen...65 APÊNDICE 02 - FUNÇÕES PARA TRATAMENTO DE ARRAYS...66 FUNÇÕES GENÉRICAS...66 Array...66 range...66 shuffle...67 sizeof...67 FUNÇÕES DE NAVEGAÇÃO...67 reset...67 end...67 next...68 prev...68 pos...68
7 key...68 each...68 FUNÇÕES DE ORDENAÇÃO...69 sort...69 rsort...69 asort...69 arsort...70 ksort...70 usort...70 uasort...70 uksort...71
8 Resumo O presente trabalho tem por objetivo relatar as atividades desenvolvidas durante a realização do projeto supervisionado do aluno Maurício Vivas de Souza Barreto, orientado pelo professor Giovanny Lucero. O projeto consistiu numa pesquisa sobre a linguagem PHP uma linguagem de script voltada para a construção de home-pages dinâmicas, que é executada no servidor http. Para a complementação do estudo sobre a linguagem foi desenvolvida uma aplicação, como exemplo da utilização da linguagem PHP. A aplicação desenvolvida trata-se do preenchimento do formulário para a GED Gratificação de Estímulo à Docência. Através do sistema desenvolvido, qualquer usuário cadastrado poderá preencher os formulários do GED através de um navegador http, e ao final do período poderá imprimir o formulário preenchido.
9 1. Introdução O que é PHP? PHP é uma linguagem que permite criar sites WEB dinâmicos, possibilitando uma interação com o usuário através de formulários, parâmetros da URL e links. A diferença de PHP com relação a linguagens semelhantes a Javascript é que o código PHP é executado no servidor, sendo enviado para o cliente apenas html puro. Desta maneira é possível interagir com bancos de dados e aplicações existentes no servidor, com a vantagem de não expor o código fonte para o cliente. Isso pode ser útil quando o programa está lidando com senhas ou qualquer tipo de informação confidencial. O que diferencia PHP de um script CGI escrito em C ou Perl é que o código PHP fica embutido no próprio HTML, enquanto no outro caso é necessário que o script CGI gere todo o código HTML, ou leia de um outro arquivo. O que pode ser feito com PHP? Basicamente, qualquer coisa que pode ser feita por algum programa CGI pode ser feita também com PHP, como coletar dados de um formulário, gerar páginas dinamicamente ou enviar e receber cookies. PHP também tem como uma das características mais importantes o suporte a um grande número de bancos de dados, como dbase, Interbase, msql, mysql, Oracle, Sybase, PostgreSQL e vários outros. Construir uma página baseada em um banco de dados torna-se uma tarefa extremamente simples com PHP. Além disso, PHP tem suporte a outros serviços através de protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda é possível abrir sockets e interagir com outros protocolos.
10 Como surgiu a linguagem PHP? A linguagem PHP foi concebida durante o outono de 1994 por Rasmus Lerdorf. As primeiras versões não foram disponibilizadas, tendo sido utilizadas em sua home-page apenas para que ele pudesse ter informações sobre as visitas que estavam sendo feitas. A primeira versão utilizada por outras pessoas foi disponibilizada em 1995, e ficou conhecida como Personal Home Page Tools (ferramentas para página pessoal). Era composta por um sistema bastante simples que interpretava algumas macros e alguns utilitários que rodavam por trás das home-pages: um livro de visitas, um contador e algumas outras coisas. Em meados de 1995 o interpretador foi reescrito, e ganhou o nome de PHP/FI, o FI veio de um outro pacote escrito por Rasmus que interpretava dados de formulários HTML (Form Interpreter). Ele combinou os scripts do pacote Personal Home Page Tools com o FI e adicionou suporte a msql, nascendo assim o PHP/FI, que cresceu bastante, e as pessoas passaram a contribuir com o projeto. Estima-se que em 1996 PHP/FI estava sendo usado por cerca de sites pelo mundo, e em meados de 1997 esse número subiu para mais de Nessa época houve uma mudança no desenvolvimento do PHP. Ele deixou de ser um projeto de Rasmus com contribuições de outras pessoas para ter uma equipe de desenvolvimento mais organizada. O interpretador foi reescrito por Zeev Suraski e Andi Gutmans, e esse novo interpretador foi a base para a versão 3. Atualmente o uso do PHP3 vem crescendo numa velocidade incrível, e já está sendo desenvolvida a versão 4 do PHP. 0
11 2. Sintaxe Básica Delimitando o código PHP O código PHP fica embutido no próprio HTML. O interpretador identifica quando um código é PHP pelas seguintes tags: <?php comandos?> <script language= php > comandos </script> <? comandos?> <% comandos %> O tipo de tags mais utilizado é o terceiro, que consiste em uma abreviação do primeiro. Para utilizá-lo, é necessário habilitar a opção short-tags na configuração do PHP. O último tipo serve para facilitar o uso por programadores acostumados à sintaxe de ASP. Para utilizá-lo também é necessário habilitá-lo no PHP, através do arquivo de configuração php.ini. Separador de instruções Entre cada instrução em PHP é preciso utilizar o ponto-e-vírgula, assim como em C, Perl e outras linguagens mais conhecidas. Na última instrução do bloco de script não é necessário o uso do ponto-e-vírgula, mas por questões estéticas recomendase o uso sempre.
12 Nomes de variáveis Toda variável em PHP tem seu nome composto pelo caracter $ e uma string, que deve iniciar por uma letra ou o caracter _. PHP é case sensitive, ou seja, as variáveis $vivas e $VIVAS são diferentes. Por isso é preciso ter muito cuidado ao definir os nomes das variáveis. É bom evitar os nomes em maiúsculas, pois como veremos mais adiante, o PHP já possui alguma variáveis pré-definidas cujos nomes são formados por letras maiúsculas. Comentários Há dois tipos de comentários em código PHP: Comentários de uma linha: Marca como comentário até o final da linha ou até o final do bloco de código PHP o que vier antes. Pode ser delimitado pelo caracter # ou por duas barras ( // ). Exemplo: <? echo teste ; #isto é um teste?> <? echo teste ; //este teste é similar ao anterior?> Comentários de mais de uma linha: Tem como delimitadores os caracteres /* para o início do bloco e */ para o final do comentário. Se o delimitador de final de código PHP (?> ) estiver dentro de um comentário, não será reconhecido pelo interpretador. 2
13 Exemplos: <? echo teste ; /* Isto é um comentário com mais de uma linha, mas não funciona corretamente?> */ <? echo teste ; /* Isto é um comentário com mais de uma linha que funciona corretamente */?>
14 3. Criando os primeiros scripts Primeiro Exemplo Neste exemplo, criaremos um script com uma saída simples, que servirá para testar se a instalação foi feita corretamente: <html> <head><title>aprendendo PHP</title></head> <body> <?php echo "Primeiro Script";?> </body> </html> Salve o arquivo como primeiro.php3 no diretorio de documentos do Apache (ou o Web Server escolhido). Abra uma janela do navegador e digite o endereço Verificando o código fonte da página exibida, temos o seguinte: <html> <head><title>aprendendo PHP</title></head> <body> Primeiro Script </body> </html> Isso mostra como o PHP funciona. O script é executado no servidor, ficando disponível para o usuário apenas o resultado. Agora vamos escrever um script que produza exatamente o mesmo resultado utilizando uma variável: 4
15 <html> <head><title>aprendendo PHP</title></head> <body> <?php $texto = "Primeiro Script"; echo $texto;?> </body> </html> Utilizando formulários HTML Ao clicar num botão Submit em um formulário HTML as informações dos campos serão enviadas ao servidor especificado para que possa ser produzida uma resposta. O PHP trata esses valores como variáveis, cujo nome é o nome do campo definido no formulário. O exemplo a seguir mostra isso, e mostra também como o código PHP pode ser inserido em qualquer parte do código HTML: <html> <head><title>aprendendo PHP</title></head> <body> <?php if ($texto!= "") echo "Você digitou \"$texto\"<br><br>";?> <form method=post action="<? echo $PATH_INFO;?>"> <input type="text" name="texto" value="" size=10> <br> <input type="submit" name="sub" value="enviar!"> </form> </body> </html> Ao salvar o arquivo acima e carregá-lo no browser, o usuário verá apenas um formulário que contém um espaço para digitar o texto, como visto na figura 01. Ao digitar um texto qualquer e submeter o formulário, a resposta, que é o mesmo arquivo PHP (indicado pela constante $PATH_INFO, que retorna o nome do arquivo) será como na figura 02:
16 figura 01 figura 02 Isso ocorre porque o código PHP testa o conteúdo da variável $texto. Inicialmente ele é uma string vazia, e por isso nada é impresso na primeira parte. Quando algum texto é digitado no formulário e submetido, o PHP passa a tratá-lo como uma variável. Como no formulário o campo possui o nome texto, a variável com seu conteúdo será $texto. Assim, no próximo teste o valor da variável será diferente de uma string vazia, e o PHP imprime um texto antes do formulário. Interagindo com o browser PHP também permite interagir com informações do browser automaticamente. Por exemplo, o script a seguir mostra informações sobre o browser do usuário. As figuras 03 e 04 mostram o resultado visto no Netscape Communicator e o Microsoft Internet Explorer, respectivamente. <html> <head><title>aprendendo PHP</title></head> <body> <? echo $HTTP_USER_AGENT;?> </body> </html> figura 03 figura 04 Observe que o resultado mostra características de cada browser, como a versão, e no caso do Communicator até o idioma ( en ). Com isso, se você criar uma página com recursos disponíveis somente no Internet Explorer, por exemplo, pode esconder o código dos outros browsers, com um código semelhante ao seguinte: <html> <head><title>aprendendo PHP</title></head> <body> <? if (strpos($http_user_agent,"msie 5")!= 0) { echo "Você usa Internet Explorer"; } else { echo "Você não usa Internet Explorer"; 6
17 }?> </body> </html> Neste exemplo, será apenas exibido um texto informando se está sendo utilizado o Microsoft Internet Explorer ou não, mas para outras funções poderia ser utilizado algo semelhante. É bom notar o surgimento de mais uma função no código anterior: strpos(string1,string2). Essa função retorna a posição da primeira aparição de string2 em string1, contando a partir de zero, e não retorna valor algum se não ocorrer. Assim, para testar se a string $HTTP_USER_AGENT contém a string MSIE, basta testar se strpos devolve algum valor. Acessando Bancos de Dados Neste documento todos os exemplos referentes a acesso de bancos de dados utilizarão o gerenciador de banco de dados MySQL, que pode ser copiado gratuitamente no site Para interagir com uma base de dados SQL existem três comandos básicos que devem ser utilizados: um que faz a conexão com o servidor de banco de dados, um que seleciona a base de dados a ser utilizada e um terceiro que executa uma query SQL. Conexão com o servidor A conexão com o servidor de banco de dados mysql em PHP é feita através do comando mysql_connect, que tem a seguinte sintaxe: int mysql_connect(string /*host [:porta]*/, string /*login*/, string /*senha*/ ); Os parâmetros são bastante simples: o endereço do servidor(host), o nome do usuário (login) e a senha para a conexão. A função retorna um valor inteiro, que é o identificador da conexão estabelecida e deverá ser armazenado numa variável para ser
18 utilizado depois. No nosso exemplo, temos como servidor de banco de dados a mesma máquina que roda o servidor http, como login o usuário root e senha phppwd : $conexao = mysql_connect( localhost, root, phppwd ); Assim, se a conexão for bem sucedida (existir um servidor no endereço especificado que possua o usuário com a senha fornecida), o identificador da conexão fica armazenado na variável $conexão. Seleção do banco de dados Uma vez conectado, é preciso selecionar o banco de dados existente no servidor com o qual desejamos trabalhar. Isso é feito através da função int mysql_select_db, que possui a seguinte sintaxe: ); int mysql_select_db(string /*nome_base*/, int /*conexao*/ O valor de retorno é 0 se o comando falhar, e 1 em caso de sucesso. O nome da base de dados a selecionar é o primeiro parâmetro fornecido, seguido pelo identificador da conexão. Se este for omitido, o interpretador PHP tentará utilizar a última conexão estabelecida. Recomenda-se sempre explicitar esse valor, para facilitar a legibilidade do código. No nosso exemplo, a base de dados a ser selecionada possui o nome ged : mysql_select_db( ged, $conexao); Após a execução desse comando qualquer consulta executada para aquela conexão utilizará a base de dados selecionada. Execução de queries SQL Após estabelecida a conexão e selecionada a base de dados a ser utilizada, quase toda a interação com o servidor mysql pode ser feita através de consultas escritas em SQL (Structured Query Language), com o comando mysql_query, que 8
19 utiliza a seguinte sintaxe: int mysql_query(string consulta, int [conexao] ); O valor de retorno é 0 se falhar ou 1 em caso de sucesso. Sucesso aqui significa que a consulta está sintaticamente correta e foi executada no servidor. Nenhuma informação sobre o resultado é retornada deste comando, ou até mesmo se o resultado é o esperado. No caso da consulta ser um comando SELECT, o valor de retorno é um valor interno que identifica o resultado, que poderá ser tratado com a função mysql_result() e outras. A string query não deve conter ponto-e-vírgula no final do comando, e o identificador da conexão é opcional. Vamos criar uma tabela como exemplo: $cria = CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome CHAR(40), CHAR(50)) ; mysql_query($cria, $conexao); Agora vejamos como ficou o código completo para executar uma query SQL numa base de dados mysql, com um exemplo que cria uma tabela chamada exemplo e adiciona alguns dados: $conexao = mysql_connect( localhost, root, phppwd ); mysql_select_db( ged, $conexao); $cria = CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome CHAR(40), CHAR(50)) ; $insere1 = INSERT INTO exemplo (nome, ) VALUES ( Mauricio Vivas, ); $insere2 = INSERT INTO exemplo (nome, ) VALUES ( Jose da Silva, ); $insere3 = INSERT INTO exemplo (nome, ) VALUES ( Fernando Henrique Cardoso, ); $insere4 = INSERT INTO exemplo (nome, ) VALUES ( Bill Clinton, ); mysql_query($cria, $conexao); mysql_query($insere1, $conexao); mysql_query($insere2, $conexao); mysql_query($insere3, $conexao); mysql_query($insere4, $conexao);
20 Tratamento de resultados de query SELECT Ao executar uma query SQL SELECT através do comando mysql_query, o identificador do resultado deve ser armazenado numa variável que pode ser tratada de diversas formas. Duas maneiras interessantes de fazê-lo usam o comando mysql_result e o comando mysql_fetch_row, respectivamente. O comando mysql_result tem a seguinte sintaxe: int mysql_result(int resultado, int linha, mixed [campo]); Onde resultado é o identificador do resultado, obtido com o retorno da função mysql_query, linha especifica a tupla a ser exibida, já que uma query SELECT pode retornar diversas tuplas, e campo é o identificador do campo a ser exibido, sendo o tipo descrito como mixed pela possibilidade de ser de diversos tipos (neste caso, inteiro ou string). Vejamos um exemplo utilizando a tabela criada anteriormente: $consulta = SELECT nome, FROM exemplo WHERE LIKE vivas ; $resultado = mysql_query($consulta, $conexao); printf("nome: ", mysql_result($resultado,0,"nome"), <br>\n ); printf(" ", mysql_result($resultado,0," "), <br> ); Com o exemplo acima, o resultado será: Nome: Mauricio Vivas<br> É importante notar que a utilização desta função é um pouco trabalhosa, já que no caso de um resultado com várias linhas é preciso controlar o número de linhas para tratá-las (pode-se utilizar a função mysql_num_rows(int resultado), que retorna o número de linhas de um resultado), e no caso de uma alteração no nome do campo é preciso alterar também a maneira de tratá-lo. Por isso é mais aconselhável que se use uma outra função, como por exemplo mysql_fetch_row, que possui a seguinte sintaxe: 0
21 array mysql_fetch_row(int result); A variável resultado é o identificador da memória de resultados, obtido como retorno da função mysql_query. O resultado produzido por esta função é de retirar a primeira linha da memória de resultados, se houver, e colocá-la num array. Assim torna-se mais fácil tratar um resultado com várias linhas, e sem utilizar os nomes dos campos na rotina de tratamento do resultado: $consulta = SELECT nome, FROM exemplo ; $resultado = mysql_query($consulta, $conexao); echo "<table border=1>\n"; echo "<tr><td>nome</td><td> </tr>\n"; while ($linha = mysql_fetch_row($resultado)) { printf("<tr><td>$linha[0]</td> ); printf("<td>$linha[1]</td></tr> ); } echo "</table>\n"; O código acima irá imprimir todos os registros da tabela exemplo numa tabela html. Se o programador desejar pular alguma(s) linha(s) do resultado, poderá utilizar a função mysql_data_seek, que tem por objetivo definir qual será a próxima linha da memória de resultados a ser impressa. Sua sintaxe é: int mysql_data_seek(int resultado, int linha); Sendo resultado o identificador do resultado e linha o numero da linha. Retorna 0 em caso de falha, e um valor diferente de zero em caso de sucesso. Existem diversas outras funções para o tratamento de resultados, que armazenam as linhas em arrays e objetos, assim como outras funções para administrar o banco de dados, mas como este documento trata-se de uma introdução, inicialmente não tratará tópicos mais avançados.
22 4. Tipos Tipos Suportados PHP suporta os seguintes tipos de dados: Inteiro Ponto flutuante String Array Objeto PHP utiliza checagem de tipos dinâmica, ou seja, uma variável pode conter valores de diferentes tipos em diferentes momentos da execução do script. Por este motivo não é necessário declarar o tipo de uma variável para usá-la. O interpretador PHP decidirá qual o tipo daquela variável, verificando o conteúdo em tempo de execução. Ainda assim, é permitido converter os valores de um tipo para outro desejado, utilizando o typecasting ou a função settype (ver adiante). Inteiros (integer ou long) seguintes sintaxes: Uma variável pode conter um valor inteiro com atribuições que sigam as $vivas = 1234; # inteiro positivo na base decimal $vivas = -234; # inteiro negativo na base decimal $vivas = 0234; # inteiro na base octal-simbolizado pelo 0 # equivale a 156 decimal $vivas = 0x34; # inteiro na base hexadecimal(simbolizado # pelo 0x) equivale a 52 decimal. A diferença entre inteiros simples e long está no número de bytes utilizados para armazenar a variável. Como a escolha é feita pelo interpretador PHP de maneira transparente para o usuário, podemos afirmar que os tipos são iguais. 2
23 Números em Ponto Flutuante (double ou float) sigam as seguintes sintaxes: Uma variável pode ter um valor em ponto flutuante com atribuições que $vivas = 1.234; $vivas = 23e4; # equivale a Strings Strings podem ser atribuídas de duas maneiras: a) utilizando aspas simples ( ' ) Desta maneira, o valor da variável será exatamente o texto contido entre as aspas (com exceção de \\ e \' ver tabela abaixo) b) utilizando aspas duplas ( " ) Desta maneira, qualquer variável ou caracter de escape será expandido antes de ser atribuído. Exemplo: <? $teste = "Mauricio"; $vivas = '---$teste--\n'; echo "$vivas";?> A saída desse script será "---$teste--\n". <? $teste = "Mauricio"; $vivas = "---$teste---\n"; echo "$vivas";?> final). A saída desse script será "---Mauricio--" (com uma quebra de linha no
24 A tabela seguinte lista os caracteres de escape: Sintaxe Significado \n Nova linha \r Retorno de carro (semelhante a \n) \t Tabulação horizontal \\ A própria barra ( \ ) \$ O símbolo $ \ Aspa simples \ Aspa dupla tratamento de strings. No apêndice 01 está disponível uma lista das funções utilizadas no Arrays Arrays em PHP podem ser observados como mapeamentos ou como vetores indexados. Mais precisamente, um valor do tipo array é um dicionário onde os índices são as chaves de acesso. Vale ressaltar que os índices podem ser valores de qualquer tipo e não somente inteiros. Inclusive, se os índices forem todos inteiros, estes não precisam formar um intervalo contínuo Como a checagem de tipos em PHP é dinâmica, valores de tipos diferentes podem ser usados como índices de array, assim como os valores mapeados também podem ser de diversos tipos. Exemplo: <? $cor[1] = vermelho ; $cor[2] = verde ; $cor[3] = azul ; $cor[ teste ] = 1;?> Equivalentemente, pode-se escrever: <? $cor = array(1 => vermelho, 2 => verde, 3 => azul, teste => 1);?> Listas As listas são utilizadas em PHP para realizar atribuições múltiplas. 4
25 Através de listas é possível atribuir valores que estão num array para variáveis. Vejamos o exemplo: Exemplo: list($a, $b, $c) = array( a, b, c ); O comando acima atribui valores às três variáveis simultaneamente. É bom notar que só são atribuídos às variáveis da lista os elementos do array que possuem índices inteiros e não negativos. No exemplo acima as três atribuições foram bem sucedidas porque ao inicializar um array sem especificar os índices eles passam a ser inteiros, a partir do zero. Um fator importante é que cada variável da lista possui um índice inteiro e ordinal, iniciando com zero, que serve para determinar qual valor será atribuído. No exemplo anterior temos $a com índice 0, $b com índice 1 e $c com índice 2. Vejamos um outro exemplo: $arr = array(1=> um,3=> tres, a => letraa,2=> dois); list($a,$b,$c,$d) = $arr; Após a execução do código acima temos os seguintes valores: $a == null $b == um $c == dois $d == tres Devemos observar que à variável $a não foi atribuído valor, pois no array não existe elemento com índice 0 (zero). Outro detalhe importante é que o valor tres foi atribuído à variável $d, e não a $b, pois seu índice é 3, o mesmo que $d na lista. Por fim, vemos que o valor letraa não foi atribuído a elemento algum da lista pois seu índice não é inteiro. Os índices da lista servem apenas como referência ao interpretador PHP para realizar as atribuições, não podendo ser acessados de maneira alguma pelo programador. De maneira diferente do array, uma lista não pode ser atribuída a uma variável, servindo apenas para fazer múltiplas atribuições através de um array. tratamento de arrays. No apêndice 02 está disponível uma lista das funções mais comuns para o
26 Objetos Um objeto pode ser inicializado utilizando o comando new para instanciar uma classe para uma variável. Exemplo: class teste { function nada() { echo nada ; } } $vivas = new teste; $vivas -> nada(); A utilização de objetos será mais detalhada mais à frente. Booleanos PHP não possui um tipo booleano, mas é capaz de avaliar expressões e retornar true ou false, através do tipo integer: é usado o valor 0 (zero) para representar o estado false, e qualquer valor diferente de zero (geralmente 1) para representar o estado true. Transformação de tipos Coerções A transformação de tipos em PHP pode ser feita das seguintes maneiras: Quando ocorrem determinadas operações ( +, por exemplo) entre dois valores de tipos diferentes, o PHP converte o valor de um deles automaticamente (coerção). É interessante notar que se o operando for uma variável, seu valor não será alterado. O tipo para o qual os valores dos operandos serão convertidos é determinado da seguinte forma: Se um dos operandos for float, o outro será convertido para float, senão, se um deles for integer, o outro será convertido para integer. 6
27 Exemplo: $vivas = 1 ; // $vivas é a string 1 $vivas = $vivas + 1; // $vivas é o integer 2 $vivas = $vivas + 3.7;// $vivas é o double 5.7 $vivas = // $vivas é o double 2.5 Como podemos notar, o PHP converte string para integer ou double mantendo o valor. O sistema utilizado pelo PHP para converter de strings para números é o seguinte: - É analisado o início da string. Se contiver um número, ele será avaliado. Senão, o valor será 0 (zero); - O número pode conter um 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á double; - Se a string contiver um 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á double; Exemplos: $vivas = ; // $vivas == 11.5 $vivas = e3 ; // $vivas == $vivas = 1 + teste10.5 ; // $vivas == 1 $vivas = testes ; // $vivas == 11 $vivas = 1 + " 10testes"; // $vivas == 11 $vivas = 1 + "+ 10testes"; // $vivas == 1 Transformação explícita de tipos A sintaxe do typecast de PHP é semelhante ao C: basta escrever o tipo entre parenteses antes do valor Exemplo: $vivas = 15; // $vivas é integer (15) $vivas = (double) $vivas // $vivas é double (15.0) $vivas = 3.9 // $vivas é double (3.9) $vivas = (int) $vivas // $vivas é integer (3) // o valor decimal é truncado
28 Os tipos de cast permitidos são: (int), (integer) muda para integer; (real), (double), (float) muda para float; (string) muda para string; (array) muda para array; (object) muda para objeto. Com a função settype A função settype converte uma variável para o tipo especificado, que pode ser integer, double, string, array ou object. Exemplo: $vivas = 15; settype($vivas,double) // $vivas é integer // $vivas é double 8
29 5. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações. Para ter acesso a todas as constantes pré-definidas, pode-se utilizar a função phpinfo(), que exibe uma tabela contendo todas as constantes pré-definidas, assim como configurações da máquina, sistema operacional, servidor http e versão do PHP instalada. Definindo constantes Para definir constantes utiliza-se a função define. Uma vez definido, o valor de uma constante não poderá mais ser alterado. Uma constante só pode conter valores escalares, ou seja, não pode conter nem um array nem um objeto. A assinatura da função define é a seguinte: int define(string nome_da_constante, mixed valor); utilização a seguir: A função retorna true se for bem-sucedida. Veja um exemplo de sua define ("pi", ); $circunf = 2*pi*$raio;
!"# 8:9 8:; ; < = 9 ;>8:;?A@ B.CD8@ CDB? $&%')(*,+.-)/0'214355 675 6 Índice O que é PHP?...2 A Linguagem HTML...3 Introdução...3 Criando Documentos HTML...3 Marcações Básicas...3 Interligando Documentos...4
Aplicações Web com PHP. por Maurício Vivas de Souza Barreto
Aplicações Web com PHP por Maurício Vivas de Souza Barreto Aracaju, junho/2000 Índice ÍNDICE...II NOTAS DO AUTOR...1 01. INTRODUÇÃO...2 CLIENT-SIDE SCRIPTS... 2 SERVER-SIDE SCRIPTS... 2 O QUE É PHP?...
Curso de Aplicaçoes WEB em PHP Curso de Aplicaçoes WEB em PHP - www.cipsga.org.br - cursos@cipsga.org.br - Página 1 Autor: Mauricio Vivas mauricio@cipsga.org.br Junho de 2000 Curso de Aplicaçoes WEB em
UNIVERSO. Curso: Análise de Sistemas DISCIPLINA: Ferramentas para Multimídia e Internet - 1486. Versão 4.0. 6º período
UNIVERSO UNIVERSIDADE SALGADO DE OLIVEIRA Curso: Análise de Sistemas DISCIPLINA: Ferramentas para Multimídia e Internet - 1486 Versão 4.0 6º período Prof. Marcos Vinícius Celeste Dalamura dalamura@gmail.com
Apostila de Desenvolvimento PHP v1.0
Apostila de Desenvolvimento PHP v1.0 Por: Adriano de Oliveira Gonçalves 10/2004 Baseado no trabalho original de Mauricio Vivas - mauricio@cipsga.org.br Curso de Aplicações Web em PHP - www.cipsga.org.br,
Aplicações Web com PHP por Maurício Vivas de Souza Barreto Aracaju, junho/2000 Curso de Aplicaçoes WEB em PHP Autor: Mauricio Vivas mauricio@vivas.com.br Junho de 2000 Copyright (c) 2000, Mauricio Vivas
Instituto Vianna Júnior Faculdade de Ciências Econômicas Vianna Júnior Curso Superior de Tecnologia em Desenvolvimento Web
Instituto Vianna Júnior Faculdade de Ciências Econômicas Vianna Júnior Curso Superior de Tecnologia em Desenvolvimento Web Profª. Lúcia Helena de Magalhães 1 2008 1 Profª. Lúcia Helena de Magalhães Especialista