Baixe o app para aproveitar ainda mais
Prévia do material em texto
PDF gerado usando o pacote de ferramentas em código aberto mwlib. Veja http://code.pediapress.com/ para mais informações. PDF generated at: Fri, 06 Dec 2013 10:27:22 UTC Curso de PHP Conteúdo Páginas Capa 1 Prefácio 1 Introdução 1 Conhecendo a linguagem 3 O PHP 3 Instalação 4 Sintaxe básica 6 Comentários 8 Echo 8 Include 9 If...Else 10 Variáveis 11 Strings 17 Operadores 19 Funções 21 Orientação a Objetos 25 Classes 25 Anexos 26 Exercícios 26 Funções de compressão 27 Funções de Calendário 29 Extensões do PHP 30 Segurança 32 Outras informações 33 Bibliografia 33 Ligações externas 33 Autores 34 Referências Fontes e Editores da Página 37 Fontes, Licenças e Editores da Imagem 38 Licenças das páginas Licença 39 Capa 1 Capa Ir para o Índice Prefácio Este é um tutorial de PHP para principiantes, ou seja, para pessoas que nunca tiveram contacto com PHP antes. Pretende-se um livro simples, seguindo uma ordem de aprendizagem cronológica e ordenada. Esta obra é o resultado da experiência de várias pessoas, que acreditam que a melhor forma do conhecimento é o conhecimento compartilhado. Introdução Pré-requisitos Este curso pretende ensinar a desenvolver toda a compreensão sobre a linguagem PHP em pouco tempo (em alguns meses, dependendo do seu empenho, o leitor já será um bom programador de PHP). Este curso assenta-se numa técnica de aprendizagem denominada Padrão Eficaz, conceito desenvolvido no livro Introdução à Programação. Assim sendo, um dos pré-requisitos é a leitura compreensiva deste livro para poder acompanhar este curso com sucesso. Outras fontes externas serão, obviamente, construtivas. Se o leitor já tiver alguma experiência com outras linguagens de programação, provavelmente poderá saltar todos os tópicos do livro de Introdução à Programação, não deixando de ler, naturalmente, a parte sobre o Padrão Eficaz. O PHP é uma linguagem que, embora possa ser usada para a construção de aplicações baseadas em script para funcionamento no computador, é muito mais eficaz para a elaboração de scripts para uso em páginas dinâmicas na Internet. Se a última opção for o seu objectivo - e provavelmente o é -, é importante que tenha uma visão geral sobre HTML (tags, meta-tags, estrutura do documento), assim como uma abordagem sobre o sucessor do HTML, o XHTML, e sobre a estrutura de folhas de estilo CSS. Referências poderão ser encontradas aqui: Curso de HTML, XHTML e CSS. É necessária a instalação de um servidor Web com PHP. Para o estudo dos temas relacionados com a ligação às bases de dados MySQL, é necessária também a existência de um servidor SQL. Para facilitar a instalação e configuração destas aplicações, sugerimos aos usuários de Windows (NT series ― NT, 2000 e XP) descarregar a última versão do Wamp [1] e instalá-la em seu ambiente. Este pacote inclui o servidor Apache 2, PHP5 e MySQL5 já configurados e prontos a arrancar. Usuários de Linux e MacOS possivelmente já têm um servidor Web instalado; para informações sobre instalação, se necessário for, e configuração das aplicações, podem consultar os seguintes sítios, em inglês: http:/ / www. lampware. org/ , http:/ / www. mysql-apache-php. com/ . No caso de o leitor querer Introdução 2 saber como se procede para instalar manualmente todo esse software, poderá ler este pequeno tutorial sobre a instalação do PHP (não incluído no curso). O uso de um editor PHP com realce de sintaxe será importante para a sua aprendizagem; há vários deles disponíveis gratuitamente na Internet. Para Linux, há muitos editores que suportam realce de sintaxe, por exemplo, o Kate [2], para usuários do KDE; o Vim [3], feito originalmente para o terminal, mas que agora conta com versões gráficas também. No MacOS o Taco [4] é radicalmente a melhor opção. No Windows, o PHP Editor [5] é uma boa opção, porque já traz o Manual do PHP incluído, um mini-servidor Web e um interpretador de códigos PHP. No entanto o programa não é atualizado há mais de 3 anos, portanto não suportará os recursos introduzidos nas versões mais modernas do PHP. Mas também há vários editores oriundos do Linux que foram portados para o Windows, por exemplo o Vim. Para Windows, também temos o EasyEclipse for PHP [6], que auxilia na codificação, apresentando alguns tópicos da documentação do PHP, e autocomplete de códigos orientados a objetos. Estrutura e método de estudo Como já referido, este curso usa o método Padrão Eficaz como forma de aprendizagem, onde, em qualquer passo do estudo, será imprescindível a cópia de todos os exemplos existentes neste livro. Modifique-os à vontade sem medo de errar, e corra-os no seu servidor. Referências [1] http:/ / www. wampserver. com [2] http:/ / www. kate-editor. org/ [3] http:/ / www. vim. org/ [4] http:/ / tacosw. com/ main. php [5] http:/ / www. phpeditor. kit. net [6] http:/ / www. easyeclipse. org/ site/ distributions/ php. html 3 Conhecendo a linguagem O PHP PHP quer dizer PHP: Hypertext Preprocessor (PHP: Processador de Hipertexto). Esta linguagem nasceu pela mão de Rasmus Lerdof em 1994, como um CGI [1] escrito em Linguagem C que inicialmente interpretava muito facilmente formulários. A primeira designação dada foi de FI (Form Interpreter) porém, devido à criação de inumeras funções pela comunidade [ PHP Team [2]] que se ia desenvolvendo pela internet, a linguagem teve que, em 1997, ser redenominada como PHP. Utilização O PHP é uma das mais abrangentes ferramentas que o homem possui atualmente. Por ser uma linguagem server-side, ou seja roda direto do servidor e só mostra ao usuário o resultado já processado, o PHP tem poder semelhante ao famoso Perl. É possível a criação de uma grande variedade de coisas com o PHP, tendo em vista que esta é uma linguagem que podemos definir como inteligente, pois se não existir uma classe para uma determinada função podemos criá-la. Porém, ferramentas que rodam do lado do cliente como a abertura de um pop-up, um mimo de serpentinas a cairem pelo ecrã ou um slideshow de imagens não pode ser criado por esta linguagem. Se procura uma boa linguagem para criar esse tipo de ferramentas procure o Javascript. É por isso que se diz que o PHP e o Javascript são linguagens que se complementam! • Conheça um pouco mais sobre PHP visitando este site [3]. Esta página é um esboço de informática. Ampliando-a você ajudará a melhorar o Wikilivros. Referências [1] http:/ / pt. wikipedia. org/ wiki/ CGI [2] http:/ / www. php. net [3] http:/ / www. phpbrasil. com Instalação 4 Instalação Em Windows Download dos itens necessários Primeiro, faça o download dos programas a serem usados. • Apache [1]. No nosso exemplo, utilizamos o Apache 2.2.9. • MySQL [2]. No nosso exemplo, utilizamos o MySQL 5.0.51a. • PHP [3]. No nosso exemplo, utilizamos o PHP 5.2.6. Instalação • Execute a instalação do Apache e instale-o com as configurações padrão. Se quiser, pode escolher outro diretório para a instalação. • Extraia o MySQL em uma pasta qualquer. Recomendo dentro da pasta onde você instalou o Apache. Ex: C:\Arquivos de Programas\Apache Group\Apache\mysql. • Extraia o PHP 5 na pasta C:\php5. Obs.: • Existe o arquivo de instalação do PHP (*.msi), porém, o pacote compactado já vem pré-configurado para que rode mais rápido na máquina na qual está sendo executado. • É possível descompactar os arquivos do PHP em outro endereço. Por exemplo: C:\Arquivos de programas\PHP5, porém é necessário informar a mudança de endereço ao Apache. Para maiores detalhes, consulte a seção de configuração do Apache logo abaixo. Configuração do PHP Na pasta aonde se encontra o PHP5, copie os arquivos php5ts.dll e libmysql.dll para a seguinte pasta, de acordo com o seu Windows: • Em Windows 9x/Me: C:\windows\system; • em Windows XP: C:\windows\system32; • para Windows NT/2000: C:\winnt\system32.O arquivo libmysql.dll é necessário para o funcionamento do MySQL no PHP. Abra o arquivo php.ini edite a linha extension_dir = "./" alterando-a para extension_dir = "c:/php5/ext/" — C:/php5/ext/ é o diretório aonde ficam as extensões do PHP (MySQL, Curl, GD, etc). Caso não encontre o arquivophp.ini no diretório do PHP5, renomeie o arquivo php.ini-dist para php.ini. Agora, localize a linha ;extension=php_mysql.dll e tire o ponto e vírgula ; de seu início. Se quiser também, já aproveite e faça o mesmo na linha ;extension=php_gd2.dll, caso queira a biblioteca GD para a manipulação de imagens. Salve as alterações e mova o arquivo o php.ini para a pasta: • C:\windows (em Windows 9x/Me/XP); • C:\winnt (para Windows NT/2000). Instalação 5 Configuração do Apache Acrescente no final do arquivo httpd.conf no endereço C:\Arquivos de programas\Apache Software Foundation\Apache2.2\conf (por exemplo) as seguintes linhas: PHPIniDir C:\Arquivos de programas\PHP5\ Este endereço é onde se encontram os arquivos PHP. LoadModule php5_module C:\Arquivos de programas\PHP5\php5apache2_2.dll Este endereço é aonde se encontra o arquivo referente a versão do apache, dentro da pasta PHP. Ainda no endereço C:\Arquivos de programas\Apache Software Foundation\Apache2.2\conf abra o arquivo mime.types (utilize o bloco de notas mesmo ou outro editor de texto disponível) e acrescente as seguintes linhas: application/x-httpd-php php application/x-httpd-php-source phps Configuração do MySQL Não há nada para se configurar no MySQL, apenas devemos iniciá-lo caso não tenha sido instalado como serviço (só é possível no Windows NT/2000/XP). Vá para a pasta na qual foi instalado o MySQL e na pasta bin execute o arquivo mysqld.exe, iniciando o servidor do MySQL. Lembre-se: dessa maneira teremos que iniciar o MySQL sempre. Se não quisermos ir até a pasta toda vez que iniciarmos o computador, devemos criar um atalho para o arquivo mysqld.exe na pasta Inicializar/Iniciar (dependendo da versão do Windows) do Menu Iniciar. Falta pouco! Vamos até Arquivo|Iniciar/Programas/Apache HTTP Server/Control Apache Server/Restart para reinicializar o Apache com as alterações feitas. Pronto! Agora temos PHP5 + MySQL + Apache no Windows! Para efetuar um teste, criaremos um arquivo chamado phpinfo.php, com o conteúdo: <?php phpinfo(); ?> Colocaremos ele na pasta htdocs dentro da pasta do Apache. Abra seu navegador e digite http:/ / localhost/ phpinfo. php . Se a página abrir com as informações do PHP, significa que tudo deu certo. Obs.: Lembrando que nos caminhos que foram mostrados, o C:\ deve ser substituído pela unidade na qual está seu Windows e que também é aonde estão instalados os programas. Utilizamos a unidade C:\ no artigo pois é a letra que é normalmente utilizada. Caso queira usar register_globals no PHP, abra o arquivo php.ini no endereço C:\windows\ e localize a linha register_globals = Off e troque Off por On. Saiba mais neste endereço: http:/ / www. php. net/ manual/ pt_BR/ security. registerglobals. php Instalação 6 Em Linux Ver instruções em inglês: Setup and Installation (Linux) [4] Referências [1] http:/ / httpd. apache. org/ download. cgi [2] http:/ / dev. mysql. com/ downloads/ [3] http:/ / www. php. net/ downloads. php [4] http:/ / en. wikibooks. org/ wiki/ PHP_Programming/ Setup_and_Installation#Linux Sintaxe básica Definir o início e o fim do código PHP Para que o interpretador PHP reconheça o código que deverá "varrer" é necessário delimitá-lo por tags. Existem três tipo de tags de iniciação e finalização de código: <?php e ?>, <? e ?> e <script language="php"> e </script>. A primeira é usada por omissão, estando sempre disponível. O segundo tipo não é aconselhável uma vez que, por ser uma short-tag (bem à maneira do ASP), poderá não estar activada no ficheiro de configuração do PHP. Neste caso qualquer utilizador poderá manipular essa activação ou desactivação da short-tags, logo, se o leitor criar um script para ser distribuído poderão surgir incompatibilidades com a máquina do utilizador final. O terceiro tipo foi criado apenas com o propósito de uniformizar as tags de scripting no HTML (como o uso no javascript), porém, por ser de digitação morosa, não é muito usada. Programa Hello World.php: <?php echo "Olá mundo"; ?> ou (não recomendado): <? echo "Olá mundo"; ?> Para ter uma ideia gráfica sobre o que está a ser explicado, analise o primeiro exemplo: <html> <head> <title>Meu primeiro script</title> </head> <body> <?php echo "Olá mundo"; ?> </body> </html> A instrução echo(), como pôde analisar, exibe no navegador o texto que se encontra imediatamente a seguir a ele. Sobre echo() iremos falar mais tarde. Sintaxe básica 7 Gravar arquivos em php Para que o interpretador reconheça uma página que contenha código php, qualquer arquivo em php deve ser gravado com a extensão .php em vez de .html . Dependendo da configuração do apache (httpd.conf) poderão ser utilizadas as extensões .php3 ou derivações, o que é comumente encontrado em sistemas mais antigos, o número 3 representa a versão do php, hoje já não é mais feita esta distinção, mas não se assustem ao encontrar um arquivo com extensão php3. Por exemplo index.php e não index.html. Se for usada a extensão .html o servidor não irá reconhecer e executar o código. E consequentemente irá mostrar o código que você escreveu e não o resultado que o código deveria gerar. Usar o ponto e vírgula no final de cada comando Após qualquer instrução, é necessário o uso de um ; para que o interpretador reconheça que determinada instrução acaba aí. Após ; o interpretador processa a instrução, exibindo-a na memória do computador e, se não houver erros, passa para a próxima instrução. Exemplo: <?php echo "Olá como estás?"; echo "Tudo bem contigo?"; ?> ou <?php echo "Olá como estás?"; echo "Tudo bem contigo?" ?> Notem que nesse segundo caso foi retirado a quebra de linhas porque o ponto e vírgula ; é que delimita o comando. E foi retirado o ponto e vírgula ; do último comando porque logo após é fechada a tag do php, não é uma boa prática, porém funciona. <?php echo "Se não usar ponto e vírgula (;) o interpretador irá exibir um erro"; ?> Obs.: Repare bem que o uso de ; no meio texto a ser exibido não afeta a instrução. Comentários 8 Comentários Comentários são tudo aquilo que descrevemos no PHP, sem que o interpretador as varre. O Leitor pode escrever tudo o que quiser dentro dos comentários sem se importar com o tamanho ou o conteúdo escrito. Como o PHP é baseado no C e no C++, ele suporta a sintaxe de comentários das duas linguagens, veja baixo. Com /* comentário */: <?php /* Isto é um comentário de várias linhas no PHP */ echo "Comentário acima!"; ?> Com //comentário: <?php echo "Outro comentário!"; //Comentário de um linha só ?> Existe também outro tipo de comentário, igual ao usado no shell do Unix: # comentário de linha única proveniente do shell Mas não é recomendado usar este último, pois será descontinuado em versões futuras do PHP. Echo A função echo é a instrução que envia para a saída qualquer informação, podendo conter texto, números ou variáveis. Deixemos os exemplos com variáveis para quando entendermos o uso das variáveis nos capítulos subsequentes. Exemplo de uso do echo: <?php echo "Olá, tenho "; echo 22; echo " anos."; ?> Podemos abreviar essa escrita concatenando os três parâmetros que fornecemos pelo operador . (ponto, concatenador de strings): <?php echo "Olá, tenho 22 anos."; ?> Nos dois exemplos acima o resultado obtido é o mesmo. Echo 9 Formatação do texto As strings passadas para a instrução echo também podem conter formatações de texto em HTML, já que, na maioria dos casos, o PHP é usado para produzir saída em HTML. Porexemplo: <?php echo "<h2> Título em h2 </h2>"; echo "<h3> título em h3 </h3>"; echo "<i>Em itálico</i>"; echo "<b>Em negrito</b>"; echo "<strong>Em negrito</strong>"; ?> Usando as aspas Para poder usar as aspas numa frase estas deverão ser precedidas por \ (barra invertida). <?php echo "Na frase a seguir o nome xpto virá dentro de aspas: "; echo "O personagem que eu mais gosto é o \"xpto\", sem dúvida"; ?> As aspas duplas " podem sempre ser substituídas por apóstrofos/aspas simples '. Ambas as formas estão corretas. No caso de usar os apóstrofos, deverá usar a expressão \' para escrever apóstrofos no ecrã. A principal diferença entre os dois tipos de aspas é que, com aspas duplas, certas seqüências de caracteres são interpretadas de maneira especial. Include O comando PHP include é muito útil porque permite incluir dinamicamente o conteúdo de um ficheiro PHP dentro de outro. Uma das utilizações mais simples é criar menus para um site que depois podem ser utilizados em outras páginas. No exemplo a seguir criaríamos um ficheiro chamado navegar.inc que poderia ser incluído em qualquer página do site. Em cada ficheiro em que se quisesse incluir o ficheiro navegar.inc, escreveríamos: <?php include("navegar.inc"); ?> Poderiamos ter o menu do ficheiro navegar.inc em qualquer página. Bastava alterar o menu em navegar.inc para o alterar em qualquer página. Obs.: Evite utilizar arquivos (ficheiros) em PHP que não terminem com a extensão PHP. Dizemos isso por motivos de segurança, já que, tendo a URL de um arquivo de extensão como .inc ou .class, o browser exibirá todo o seu conteúdo (código, senhas, usuários, etc), pois esse tipo de arquivo não é interpretado pelo servidor. Então devemos usar algo como pagina.inc.php ou pagina.class.php, etc. If...Else 10 If...Else A palavra-chave if em português equivale ao se, já o else ao se não. Se ocorrer a condição A, então o bloco de instruções abaixo de A é executado, se não (else), então o bloco de instruções abaixo de B é executado. Veja abaixo como é a sintaxe. if( condição ) //A { comando; ... comando; //Bloco de instruções A. } else //B { comando; ... comando; //Bloco de instruções B. } Exemplo: $a=10; $b=15; if($a<$b) echo "Variável A é menor que B"; else //Se não. echo "Variável B é menor que A"; Exemplo de uso do if e else: $x=3; if ($x==2){ echo "x vale 2"; } else if ($x==3){ echo "x vale 3"; }else{ echo "x é diferente de 2 e de 3"; } Lembrando que no if, para testar o valor de uma variável, usamos == e não apenas =. Variáveis 11 Variáveis Variáveis: • Começam sempre pelo símbolo $ seguido de uma letra. • Podem conter símbolos numéricos (0 - 9) alfanuméricos minúsculos (a - z) e alfanuméricos maíusculos. • Não podem conter espaços! Se tiverem mais do que uma palavra deverão ser interligadas por um underscore _. Por exemplo: $total_variavel. Alguns exemplos de variáveis <?php $minha_variavel=4; $minha_string="super "; echo "$minha_string "." $minha_variavel"; ?> O ponto . após a variável $minha_string concatena as variáveis. Deverá escrever na tela do navegador: super 4. Tipos O PHP suporta todos os oito tipos primitivos. Boolean O boolean é um valor lógico que pode assumir ou true ou false. Neste exemplo o valor boleano é nos dado a conhecer pela função gettype(): <?php echo gettype((bool) ""); // bool(false) echo gettype((bool) 1); // bool(true) echo gettype((bool) "foo"); // bool(true) ?> Aqui apresentamos duas variáveis com valores lógicos: <?php $foo = TRUE; $foo = FALSE; ?> Como podemos ver no exemplo acima, uma expressão tem um valor boleano true se ela contiver alguma coisa, e false se o seu conteúdo for nulo. Variáveis 12 Inteiros Um inteiro é um número do conjunto Z = { ...,-3,-2,-1,0,1,2,3,... }. Pode-se especificar através de notação decimal (de base 10), hexadecimal (base 16) ou octal (base 8), opcionalmente precedido de sinal (- ou +). Representação de inteiros: <?php $a = 1234; # número decimal $a = -123; # número negativo $a = 0123; # número octal - precedido de um 0 - equivalente a 83 em decimal $a = 0X1A; # número hexadecimal - precedido de um 0 e um X - equivalente a 26 em decimal ?> Se você especifica um inteiro além dos limites de um inteiro, o PHP o interpreta como um ponto flutuante, veja abaixo. <?php $num = 2147483647; var_dump($num); // Saída: int(2147483647) ?> Ou: <?php $num = 2147483648; var_dump($num); // Saída: float(2147483648) ?> É necessário ter em atenção que na saída de uma fracção para um inteiro', os arredondamentos não seguem a regra matemática, sendo assim é necessário o uso da função round(): <?php var_dump(25/7); //float(3.5714285714286) var_dump((int) 25/7); //int(3) var_dump(round(25/7)); //float(4) ?> Evite transformar uma fracção de valor desconhecido para inteiro. Números de ponto flutuante Os números de ponto flutuante (floats e doubles) são números com casas decimais, onde, aqui, a vírgula é substituída por um ponto: <?php $a = 1.234; $b = 1.3e4; $c = 25.4E-10; ?> Aqui também é necessário ter em atenção os arredondamentos. Variáveis 13 Strings Uma string é uma série de caracteres sem limites de comprimento. Ela é delimitada, no PHP, por Aspas, apóstrofo ou pela nova sintaxe heredoc: <?php echo 'string delimitada por apóstrofos!'; echo "string delimitada por Aspas"; echo <<<EOF String delimitada por um heredoc EOF; ?> A inclusão de variáveis funciona aqui de várias maneiras. Vamos ver: <?php $carro = "Mercedes"; echo "Ele comprou um bonito $carro"; // funciona echo "Eles compraram vários {$carro}s"; // funciona echo "Eu faço um ${carro}"; // funciona ?> As saídas serão: •• Ele comprou um bonito Mercedes •• Eles compraram vários Mercedess •• Eu faço um Mercedes Podemos também modificar strings: <?php $str = "Olha que alí há mal"; // Apresenta "Olha que alí há mal" $str{strlen($str)-1} = "r"; // Apresenta "Olha que alí á mar" ?> Ou: <?php $str = "Pegue isto"; // Apresenta "Pegue isto" $str{strlen($str)-10} = "S"; // Apresenta "Segue isto" ?> Cabe à função strlen() essa tarefa. A função strlen(): retorna o tamanho de uma String. Arrays Um array é um mapa ordenado, com chaves e valores. Exemplo: <?php $arr = array(1 => "um", 2 => "dois", 3 => TRUE); echo $arr[1]; // Imprime "um" echo $arr[3]; // Imprime "TRUE" Variáveis 14 ?> Aqui nos é apresentado 3 chaves (1, 2 e 3) e 3 valores ("um", "dois" e TRUE). Então podemos pegar uma chave de um array para imprimirmos o valor correspondente. Podemos também definir um array como vários array: <?php $arr = array("versão" => array ("beta" => "0.5x", "alpha" => "0.1x", "release" => "0.8x", "final" => "1.x" ), "nome" => "PHP software", "SO" => array("win" => "Windows", "lin" => "Linux", "mac" => "MacOS" ) ); // Vamos agora remover um elemento do array, visto que o nosso software já passou a fase alpha unset($arr["versão"]["alpha"]); // Também podemos apagar o array inteiro. Já não vamos disponibilizar o nosso software unset($arr); ?> Podemos especificar apenas valores num array, sendo que o interpretador irá tornar cada um dos valores com uma chave a partir do zero. <?php $arr = array(1,45,23,68); echo $arr[1]; // imprime 45 // Vamos agora apagar um valor e reindexar o nosso array: unset($arr[1]); $arr =array_values($arr); // Não podemos imprimir o nosso array através de echo. Temos que fazer isso com print_r(): print_r($arr); ?> Variáveis 15 Manipulação de Tipos No PHP não é necessário definir o tipo que queremos usar, ou seja, este é determinado pelo contexto em que é usado. Por exemplo, $var = "string" é uma string, já $var = 12, é um inteiro. Para alternarmos entre os tipos usamos uma sintaxe de moldagens: <?php $foo = 5; // $foo é um inteiro $bar = (boolean) $foo; // $bar é um boleano ?> Moldagens permitidas: • int ou integer: moldar para inteiro. • bool ou boolean: moldar para booleano. • float, double ou real: moldar para número de ponto flutuante. • string: moldar para string. • array: moldar para array. • object: moldar para objecto. Exemplos de moldes: <?php $str = "Eu sou string"; $int = 12; $num = 25/85; $a = (boolean) $str; $b = (string) $int; $c = (int) $num; echo $a . $b . $c; ?> Variáveis As variáveis são no PHP representadas por um $ seguido do nome a ela atribuído. É necessário ter em conta alguns cuidados quando criamos variáveis: <?php $var = "Bom "; $Var = "dia!"; echo $var . $Var; // Exibe "Bom dia!" $25arrobas = "Ainda por cumprir!"; // INVÁLIDO - Nenhum nome de variável pode começar por uma expressão numérica $_25arrobas = "Quase na linha!"; // VÁLIDO - Nome começa por _ ?> É possível escrever-se qualquer um dos 8 tipo primitivos numa variável. As variáveis são usadas para se atribuir um valor e guardá-lo na memória do computador para execução posterior: Variáveis 16 <?php $var = "Ganhou um prémio!"; $count = 3; if ($count < 5){ echo $var; } ?> O script acima exibirá "Ganhou um prémio!" se o valor da variável $count for menor que 5. Variáveis predefinidas O PHP oferece variáveis predefinidas de informações vindas do servidor e do navegador, que podem ser usadas pelo programador. são as chamadas superglobais. $GLOBALS Contém referências para todas as variáveis que estão disponíveis dentro do script. <?php print_r($GLOBALS); ?> É possível fazer a referencia de um dos itens da variável GLOBALS: <?php echo $GLOBALS["_SERVER"]["HTTP_HOST"]; ?> $_SERVER Variáveis criadas pelo servidor web e relacionadas com o ambiente de execução. Pode-se acessar os valores de _SERVER diretamente: <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> $_GET Variáveis enviadas por script para o servidor via método HTTP GET. O que é enviado pelo formulário é mostrado na barra de endereço. $_POST Variáveis enviadas por script para o servidor via método HTTP POST. O que é enviado pelo formulário não é mostrado na barra de endereço do navegador. $_COOKIE Variáveis enviadas por script para o servidor via cookies HTTP. Variáveis 17 $_FILES Variáveis enviadas para o script com todas as informações relativas aos arquivos enviados via HTTP. $_ENV Variáveis disponíveis no script do ambiente em execução. Em Web é igual ao $_SERVER. $_REQUEST Possui todas as variáveis englobadas em $_GET, $_POST e $_COOKIE. Em desuso devido à demora na realização do script! $_SESSION Variáveis que estão diretamente relacionadas no registro da sessão no script. Strings Uma string é uma cadeia de caracteres. Geralmente são frases, textos ou linhas de comando. Algo importante que deve ser considerado é o seguinte: todas as strings devem ser declaradas entre aspas simples (') ou aspas duplas ("). Aspas simples e Aspas duplas Existe uma diferença básica entre aspas simples e aspas duplas. Com aspas simples, você têm uma string realmente como ela foi declarada, independente de qualquer caractere especial (com exceção do caractere de escape - \). Se você deseja inserir uma aspa simples dentro de uma string declarada com a mesma, deve, então, "escapa-la". <?php print 'Preciso beber um copo d\'água'; // Imprime: Preciso beber um copo d'água ?> Aspas duplas são exatamente iguais as aspas simples, exceto no quesito da interpretação e da velocidade. As aspas duplas interpretam qualquer variável, matriz (quando estiver entre {}) e comandos de texto (\n (quebra de linha), \t (tabulação), \r (retorno de carro). Como o interpretador tem que percorrer toda a string em busca de variáveis, matriz e comandos de texto, a impressão de uma string declarada com aspas duplas pode ser um pouco mais demorada que a de aspas simples. <?php $variavel = 'uma frase'; print "Esta é $variavel bem simples"; // Imprime: Esta é uma frase bem simples Strings 18 ?> Concatenando strings A concatenação nada mais é do que a junção de duas ou mais strings. Isso pode se dar também com variáveis, matrizes, constantes e qualquer outro parâmetro que não puder ser passado (ou que talvez você não queira passar) dentro de uma string. O operador de concatenação é o ponto (.). <?php print 'Estou concatenando '.'duas strings'; // Imprime: Estou concatenando duas strings ?> Podemos também concatenar com variáveis. <?php $variavel = 'mar'; print 'O '.$variavel.' é azul'; // Imprime: O mar é azul ?> Operadores 19 Operadores Existem vários operadores usados no PHP. Operadores aritméticos Nome Exemplo Significado Adição $a + $b Soma de $a e $b Subtração $a - $b Diferença entre $a e $b Multiplicação $a * $b Produto de $a e $b Divisão $a / $b Quociente de $a por $b (divisão de ponto flutuante) Módulo $a % $b Resto da divisão de $a por $b Exemplo: <?php $a = 2; $b = 15.5; echo $a + $b; ?> Operadores Bit-a-Bit Os operadores Bit-a-Bit permitem a manipulação de bits específicos dentro das expressões. Nome Exemplo Significado AND $a & $b Os bits que estão ativos tanto em $a quanto em $b são ativados. OR $b Os bits que estão ativos em $a ou em $b são ativados. XOR $a ^ $b Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados. NOT ~$a Os bits que estão ativos em $a não são ativados, e vice-versa. Deslocamento à esquerda $a << $b Desloca os bits de $a $b passos para a esquerda (cada passo significa "multiplica por dois") Deslocamento à direita $a >> $b Desloca os bits de $a $b passos para a direita (cada passo significa "divide por dois") Exemplo: <?php echo 12 ^ 9; echo "12" ^ "9"; echo "hallo" ^ "hello"; ?> Operadores 20 Operadores de Comparação Os Operadores de comparação permitem a comparação de dois valores. Nome Exemplo Significado Igual $a == $b Verdadeiro se $a é igual a $b Idêntico $a === $b Verdadeiro se $a igual a $b e do mesmo tipo Diferente $a != $b Verdadeiro se $a diferente de $b Diferente $a <> $b Verdadeiro se $a diferente de $b Não idêntico $a !== $b Verdadeiro se $a diferente de $b, ou não são do mesmo tipo Menor que $a < $b Verdadeiro se $a menor que $b Maior que $a > $b Verdadeiro se $a maior que $b Menor ou igual $a <= $b Verdadeiro se $a menor ou igual a $b Maior ou igual $a >= $b Verdadeiro se $a maior ou igual a $b Exemplo: <?php $a = 5; $b = 4; if ($a > $b) { echo "$a é maior que $b"; } ?> Funções 21 Funções Funções no PHP ajudam muito no desenvolvimento de codigos, reaproveitar codigos é excencial para a produtividade em um sistema, mostro abaixo um exemplo simples para uma função de conectar ao banco de dados indiferente do banco do usuario e senha que for usar. <?php function conectar($usuario, $senha, $banco){ $con = mysql_connect("localhost", $usuario, $senha) or die (mysql_error()); mysql_select_db($banco, $con)or die (mysql_error()); } ?> para se chamar a função no mesmo arquivo apenas fazemos isso <?php // função //.... // conectar("root", "******", "banco_dados"); ?> Para se chamar de outra classe utilizando Orientação Objetos utilizamos dessa forma <?php class Config{ publicfunction conectar($usuario, $senha, $banco){ $con = mysql_connect("localhost", $usuario, $senha) or die (mysql_error()); mysql_select_db($banco, $con)or die (mysql_error()); } } ?> Chamada para a classe externa <?php include = 'Config.php'; $con = new Config(); $con->conectar("root", "******", "banco_dados"); ?> Prontinho, esse é um exemplo simples de como usuar funcoes em PHP. Coloca em extenso valores monetários. function extenso($valor=0, $maiusculas=false) { $singular = array("centavo", "real", "mil", "milhão", "bilhão", "trilhão", "quatrilhão"); $plural = array("centavos", "reais", "mil", "milhões", "bilhões", Funções 22 "trilhões", "quatrilhões"); $c = array("", "cem", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos"); $d = array("", "dez", "vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", "oitenta", "noventa"); $d10 = array("dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezesete", "dezoito", "dezenove"); $u = array("", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove"); $z=0; $valor = number_format($valor, 2, ".", "."); $inteiro = explode(".", $valor); for($i=0;$i<count($inteiro);$i++) for($ii=strlen($inteiro[$i]);$ii<3;$ii++) $inteiro[$i] = "0".$inteiro[$i]; $fim = count($inteiro) - ($inteiro[count($inteiro)-1] > 0 ? 1 : 2); for ($i=0;$i<count($inteiro);$i++) { $valor = $inteiro[$i]; $rc = (($valor > 100) && ($valor < 200)) ? "cento" : $c[$valor[0]]; $rd = ($valor[1] < 2) ? "" : $d[$valor[1]]; $ru = ($valor > 0) ? (($valor[1] == 1) ? $d10[$valor[2]] : $u[$valor[2]]) : ""; $r = $rc.(($rc && ($rd || $ru)) ? " e " : "").$rd.(($rd && $ru) ? " e " : "").$ru; $t = count($inteiro)-1-$i; $r .= $r ? " ".($valor > 1 ? $plural[$t] : $singular[$t]) : ""; if ($valor == "000")$z++; elseif ($z > 0) $z--; if (($t==1) && ($z>0) && ($inteiro[0] > 0)) $r .= (($z>1) ? " de " : "").$plural[$t]; if ($r) $rt = $rt . ((($i > 0) && ($i <= $fim) && ($inteiro[0] > 0) && ($z < 1)) ? ( ($i < $fim) ? ", " : " e ") : " ") . $r; } if(!$maiusculas){ return($rt ? $rt : "zero"); } else { return (ucwords($rt) ? ucwords($rt) : "Zero"); } } Exemplo de Uso: echo extenso(12.62); // Exibirá: "Doze reais e sessenta e dois centavos. Funções 23 Publicada originalmente no Viva o Linux. Autor: Wanderson <p1rat4@yahoo.com.br> Data: 24/09/2007 Comentários: Esta é uma função para ajudar a fazer a paginação em páginas PHP; ela reconhe alguns dados e cria um array contendo o total de páginas e um texto HTML com a paginação própriamente dita, que pode por exemplo ser colocada no topo e rodapé. A sintaxe é array paginar(PáginaAtual, TotalASerExibido, ExibiçõesPorPágina, URLParaOsLinks, FormatoDoTexto [<<, nada ou 'primeira' por exemplo], LimiteDeEspaçamento, ClasseCSSParaLinks, ClasseCSSParaInativos); O indice 0 é o HTML e 1 é o total de páginas. <? function paginar($atual, $total, $nopg, $url, $textos, $diferenca, $cssL, $cssN) { $limite = ceil($total / $nopg); $res[1] = $limite; # Primeira página if($atual == 1) { if($textos == 1) { $res[0] = " <span class="".$cssN."">primeira</span> \n <span class="".$cssN."">anterior</span> "; } else if($textos == 2) { $res[0] = " <span class="".$cssN.""><<</span> \n <span class="".$cssN.""><</span> "; } } else { if($textos == 1) { $res[0] = " <span class="".$cssL.""><a href="".$url."1">primeira</a> \n <a class="".$cssL."" href="".$url.($atual - 1)."">anterior</a></span> "; } else if($textos == 2) { $res[0] = " <span class="".$cssL.""><a href="".$url."1"><<</a> \n <a class="".$cssL."" href="".$url.($atual - 1).""><</a></span> "; } } # Paginação $minimo = ($atual - $diferenca); if($minimo < 1) { $minimo = 1; } $maximo = ($atual + $diferenca); if($maximo > $limite) { $maximo = $limite; } #Pões reticências if($minimo > 1) { $res[0] .= "\n <span class="".$cssN."">...</span> "; } Funções 24 for($i = $minimo; $i <= $maximo; $i++) { if($i == $atual) { $res[0] .= "\n <span class="".$cssN."">".$i."</span> "; continue; } $res[0] .= "\n <span class="".$cssL.""><a href="".$url.$i."">".$i."</a></span> "; } #Põe reticências if($maximo < $limite) { $res[0] .= "\n <span class="".$cssN."">...</span> "; } # Última página if($atual == $limite) { if($textos == 1) { $res[0] .= "\n <span class="".$cssN."">próxima</span> \n <span class="".$cssN."">última</span> "; } else if($textos == 2) { $res[0] .= "\n <span class="".$cssN."">></span> \n <span class="".$cssN."">>></span> "; } } else { if($textos == 1) { $res[0] .= "\n <span class="".$cssL.""><a href="".$url.($atual + 1)."">próxima</a> \n <a class="".$cssL."" href="".$url.$limite."">última</a></span> "; } else if($textos == 2) { $res[0] .= "\n <span class="".$cssL.""><a href="".$url.($atual + 1)."">></a> \n <a class="".$cssL."" href="".$url.$limite."">>></a></span> "; } } return $res; unset($atual,$total,$nopg,$url,$textos,$cssL,$cssN,$limite,$res); } ?> Ligações externas • http:/ / www. vivaolinux. com. br/ scripts/ verFonte. php?codigo=2992 . 25 Orientação a Objetos Classes Classes são tipos predeterminados que contém atributos e métodos. Objetos O objeto é o resultado da união entre uma estrutura de dados e todas as operações associadas a ela. Inicialização de objetos Para inicializar um objeto, você usa a instrução new, criando uma instancia do objeto em variável. Conforme a figura abaixo: Sintaxe de como utilizar objetos em PHP: <?php class Primeira { function mostrar() { echo "mostrando na tela"; } } $frase = new Primeira(); $frase->mostrar(); ?> 26 Anexos Exercícios Exercício 1: Analise de código <html> <head><title>Exercício</title> </head> <body> <?php $str = array("morango" => "vermelho" , "banana" => "amarela"); echo "O morango é ".$str{"morango"}."<br>"; $first = $str["banana"]; echo "A banana é ".$first."<br>"; // um exemplo de como isto vai ficar echo "O Morango é".$str{"morango"}."<br>"; $first = $str["banana"]; $first(strlen($first)-1) = "a"; echo "A banana é ".$first."<br>"; /*Uma saída print_r($str); var_dump($str); ?> </body> </html> 1. Tente descobrir onde está o erro neste script. 2.2. Os comentários existentes estão bem integrados (têm a sintaxe correcta)? Exercício 2: Perguntas de Verdadeiro e Falso <quiz display=simple> {O PHP pode escrever scripts que rodem do lado do cliente? |type="()"} - Verdadeiro. + Falso. {Para correr PHP preciso de um servidor Web? |type="()"} - Verdadeiro. + Falso. {O uso de short-tags, tais como <? e ?> é mais benéfico do que as outras tags porque assim perco menos tempo a escrever o código. |type="()"} - Verdadeiro. + Falso. {O PHP é mantido por uma comunidade de programadores pela internet e está acessível a toda a gente. |type="()"} + Verdadeiro. - Falso. {O PHP é uma linguagem de programação compilada? |type="()"} - Verdadeiro. + Falso. </quiz> Exercícios 27 Exercício 3: Aplicação de conhecimentos 1.1. Escreva um código que exiba a mensagem"Olá Mundo!" no navegador. 2.2. Que instrução preciso de usar para exibir essa mensagem? Exercício 4: Perguntas 1. O php sempre reconhece os campos name do HTML como variáveis? 2. O que faz este script? <?php phpinfo(); ?> Funções de compressão Funções PHP de compressão, são funções para PHP utilizadas para a manipulação de certos tipos de arquivos compactados. Bzip2 São funções PHP utilizadas para a manipulação de arquivos compactados do tipo Bzip2. • bzclose — Fecha um ponteiro de arquivo bzip2. • bzcompress — Comprime uma string em dados no formato bzip2. • bzdecompress — Descomprime dados no formato bzip2. • bzerrno — Retorna um número de erro do bzip2. • bzerror — Retorna o número e string de erro do bzip2 em um array. • bzerrstr — Retorna a string de erro do bzip2. • bzflush — Força a escrita de todos os dados que estão no buffer. • bzopen — Abre um arquivo comprimido com bzip2. • bzread — Leitura binary-safe de um arquivo bzip2. • bzwrite — Escrita binary-safe em um arquivo bzip2. ZIP São funções PHP utilizadas para a manipulação de arquivos compactados do tipo ZIP. • zip_close — Fecha um arquivo ZIP. • zip_entry_close — Fecha o arquivo que está aberto. • zip_entry_compressedsize — Recupera o tamanho compactado do arquivo que está dentro do arquivo ZIP. • zip_entry_compressionmethod — Recupera qual o método de compressão foi utilizado no arquivo. • zip_entry_filesize — Retorna o tamanho de um diretório de entrada. • zip_entry_name — Retorna o nome do arquivo. • zip_entry_open — Abre um arquivo do arquivo ZIP. • zip_entry_read — Lê de um arquivo aberto. • zip_open — Abre um arquivo ZIPado. • zip_read — Lê a próxima entrada em um arquivo ZIPado. • ZipArchive::addEmptyDir — Add a new directory. • ZipArchive::addFile — Adds a file to a ZIP archive from the given path. • ZipArchive::addFromString — Add a file to a ZIP archive using its contents. Funções de compressão 28 • ZipArchive::close — Close the active archive (opened or newly created). • ZipArchive::deleteIndex — delete an entry in the archive using its index. • ZipArchive::deleteName — delete an entry in the archive using its name. • ZipArchive::extractTo — Extract the archive contents. • ZipArchive::getArchiveComment — Returns the Zip archive comment. • ZipArchive::getCommentIndex — Returns the comment of an entry using the entry index. • ZipArchive::getCommentName — Returns the comment of an entry using the entry name. • ZipArchive::getFromIndex — Returns the entry contents using its index.. • ZipArchive::getFromName — Returns the entry contents using its name.. • ZipArchive::getNameIndex — Returns the name of an entry using its index. • ZipArchive::getStream — Get a file handler to the entry defined by its name (read only).. • ZipArchive::locateName — Returns the index of the entry in the archive. • ZipArchive::open — Open a ZIP file archive. • ZipArchive::renameIndex — Renames an entry defined by its index. • ZipArchive::renameName — Renames an entry defined by its name. • ZipArchive::setArchiveComment — Set the comment of a ZIP archive. • ZipArchive::setCommentIndex — Set the comment of an entry defined by its index. • ZipArchive::setCommentName — Set the comment of an entry defined by its name. • ZipArchive::statIndex — Get the details of an entry defined by its index.. • ZipArchive::statName — Get the details of an entry defined by its name.. • ZipArchive::unchangeAll — Undo all changes done in the archive.. • ZipArchive::unchangeArchive — Revert all global changes done in the archive.. • ZipArchive::unchangeIndex — Revert all changes done to an entry at the given index.. • ZipArchive::unchangeName — Revert all changes done to an entry with the given name.. RAR São funções PHP utilizadas para a manipulação de arquivos compactados do tipo RAR. • rar_close — Close Rar archive and free all resources. • rar_entry_get — Get entry object from the Rar archive. • rar_list — Get entries list from the Rar archive. • rar_open — Open Rar archive. • Rar::extract — Extract entry from the archive. • Rar::getAttr — Get attributes of the entry. • Rar::getCrc — Get CRC of the entry. • Rar::getFileTime — Get entry last modification time. • Rar::getHostOs — Get entry host OS. • Rar::getMethod — Get pack method of the entry. • Rar::getName — Get name of the entry. • Rar::getPackedSize — Get packed size of the entry. • Rar::getUnpackedSize — Get unpacked size of the entry. • Rar::getVersion — Get version of the archiver used to add the entry. Funções de compressão 29 Fontes • PHP: Bzip2 - Manual [1]. • PHP: Zip - Manual [2]. • PHP: RAR - Manual [3]. Referências [1] http:/ / br. php. net/ manual/ pt_BR/ book. bzip2. php [2] http:/ / br. php. net/ manual/ pt_BR/ book. zip. php [3] http:/ / br. php. net/ manual/ pt_BR/ book. rar. php Funções de Calendário Funções de Calendário são funções utilizadas para simplificar a conversão de diferentes formatos de calendários. O padrão é baseado no formato Julian Day Count [1]. A contagem de dias nesse calendário começa em 1º de Janeiro de 4713 B.C. Para converter um calendário para algum formato, você deve primeiro convertê-lo para esse formato e então converter para o calendário que deseja. O formato de calendário Julian Day Count é muito diferente do Julian Calendar! [2]. Veja a referência para saber mais. • cal_days_in_month — Retorna o número de dias em um mês de um calendário e ano requisitado. • cal_from_jd — Converte à partir do Julian Day Count para um outro calendário suportado. • cal_info — Retorna informações sobre um calendário em particular. • cal_to_jd — Converte um calendário (suportado) para o calendário Julian Day Count. • easter_date — Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado. Se nenhum ano tiver sido especificado, será assumido o ano atual. • easter_days — Obtém o número de dias entre 21 de Março e o dia da Páscoa em determinado ano. • FrenchToJD — Converte uma data do calendário Republicano da França para o calendário Julian Day Count. • GregorianToJD — Converte uma data gregoriana para o Julian Day Count. • JDDayOfWeek — Retorna o dia da semana. • JDMonthName — Retorna o nome de um mês. • JDToFrench — Converte do calendário Julian Day Count para o calendário Republicano Francês. • JDToGregorian — Converte uma data no formato Julian Day Count para o formato Gregoriano. • jdtojewish — Convete uma data do calendário Julian Day Count para o calendário Judaico. • JDToJulian — Converte uma data do calendário Julian Day Count para o calendário "Julian". • jdtounix — Converte do formato de dada Juliana para Unix timestamp. • JewishToJD — Converte uma data do calendário Judaico para o calendário Julian Day Count. • JulianToJD — Converte datas no formato "Julian" para o formato Julian Day Count. • unixtojd — Converte datas do sistema Unix para data Juliana. Funções de Calendário 30 Ligações externas 1.1. Em astronomia, com aplicações na cronologia de acontecimentos históricos, a data juliana ou dia juliano é um método de contar os dias sequencialmente, começando em uma data arbitrária no passado. Ele foi proposto por Joseph Justus Scaliger. 2. Para mais informações sobre o calendário Julian Day Count, visite » http:/ / www. hermetic. ch/ cal_stud/ jdn. htm. Para mais informações sobre sistemas de calendários, visite: » http:/ / www. fourmilab. ch/ documents/ calendar/ . "Excerpts from this page are included in these instructions, and are in quotes" - fonte: lhttp://br.php.net/manual/pt_BR/intro.calendar.php [1] 3. lhttp://br.php.net/manual/pt_BR/intro.calendar.php [1] 4. Iniciativa: WeB sHp [2] Referências [1] http:/ / br. php. net/ manual/ pt_BR/ intro. calendar. php [2] http:/ / www. webshp. net Extensões do PHP Abaixo listo uma série de extensões do PHP, as quais serão mencionadas nesta coleção: • Funções de compressão de bzip2, rar e zip •• Funçõesde Calendário •• Funções de manipulação de PDF •• Funções de crack •• Família de funções ctype •• Biblioteca de rotinas de cliente URL - CURL •• Funções de pagamento Cybercash •• Funções DBM •• Camada de funções de abstração de banco de dados DBA •• Funções de dBase •• Funções dbx •• Funções DOM XML •• Funções EXIF •• Funções FrontBase •• Funções de formato de dados de formulários (Forms Data Format) FDF. •• Funções de filePro •• Funções de FTP •• Funções da biblioteca de imagens GD •• Funções de Gettext •• Funções de HyperWave •• Conversão de tabela de caracteres ICONV •• Funções de Informix •• Funções de manuseio de IIS •• Funções de IMAP POP3 e NNTP •• Funções de Ingres II •• Funções de InterBase •• Funções de Java •• Funções de LDAP Extensões do PHP 31 •• Funções de Multi-Byte String •• Funções de Mcrypt Encryption •• Funções de Mhash •• Funções de Mimetype •• Funções de Ming para Flash •• Funções de mSQL •• Funções de MSSQL •• Funções de MySQL •• Funções de MySQLi •• Funções de Oracle 8 •• Funções de OpenSSL •• Funções de Oracle •• Funções de sobrecarga de objetos •• Funções de PDF •• Funções de PostgreSQL •• Funções de impressora •• Funções de memória Compartilhada •• Funções de get and walk de SNMP •• Funções de SOAP •• Funções de socket •• Funções de Sybase •• Funções de Tidy •• Funções de Tokenizer •• Funções de W32api •• Funções de XML-RPC •• Funções de XSLT •• Funções do YAZ •• Funções para Arquivos Zip •• Funções de compressão de ZLib Ligações externas • http:/ / pt. wikipedia. org/ wiki/ PHP [1] • http:/ / br. php. net/ manual/ pt_BR [2] • Iniciativa: webshp.net [2] Referências [1] http:/ / pt. wikipedia. org/ wiki/ PHP [2] http:/ / br. php. net/ manual/ pt_BR Segurança 32 Segurança PHP ainda é uma linguagem com muitas deficiências no que diz respeito a segurança, diariamente notificações de atos de vandalismo provocado pelos "defacers" são expostas na mídia, e na maioria das vezes as brechas encontradas por esses criminosos para ter acesso restrito a determinada página se encontra no PHP. Esta página é somente um esboço. Ampliando-a você ajudará a melhorar o Wikilivros. 33 Outras informações Bibliografia Ligações externas • http:/ / www. revistaphp. com. br/ print. php?id=164 • http:/ / www. vivaolinux. com. br/ dicas/ verDica. php?codigo=9255 • http:/ / br. php. net/ manual/ pt_BR • http:/ / pt. wikipedia. org/ wiki/ PHP • http:/ / www. webshp. net • http:/ / www. vivaolinux. com. br/ scripts/ verFonte. php?codigo=2992 • http:/ / dev. mysql. com/ downloads/ • http:/ / en. wikibooks. org/ wiki/ PHP_Programming/ Setup_and_Installation#Linux • http:/ / httpd. apache. org/ download. cgi • http:/ / localhost/ phpinfo. php • http:/ / pt. wikipedia. org/ wiki/ CGI • http:/ / tacosw. com/ main. php • http:/ / www. easyeclipse. org/ site/ distributions/ php. html • http:/ / www. kate-editor. org/ • http:/ / www. lampware. org/ • http:/ / www. mysql-apache-php. com/ • http:/ / www. php. net • http:/ / www. php. net/ downloads. php • http:/ / www. php. net/ manual/ pt_BR/ security. registerglobals. php • http:/ / www. phpbrasil. com • http:/ / www. phpeditor. kit. net • http:/ / www. vim. org/ • http:/ / www. wampserver. com • http:/ / br. php. net/ manual/ pt_BR/ intro. calendar. php • http:/ / www. fourmilab. ch/ documents/ calendar/ • http:/ / www. hermetic. ch/ cal_stud/ jdn. htm • http:/ / br. php. net/ manual/ pt_BR/ book. bzip2. php • http:/ / br. php. net/ manual/ pt_BR/ book. rar. php • http:/ / br. php. net/ manual/ pt_BR/ book. zip. php • http:/ / br. php. net/ manual/ pt_BR/ refs. compression. php Autores 34 Autores Os usuários citados abaixo contribuiram para o desenvolvimento deste trabalho. Estes dados foram obtidos em 29/11/2013. •• 150.163.97.200 •• 152.92.2.63 •• 177.1.172.128 •• 177.12.208.10 •• 177.124.57.35 •• 177.135.170.210 •• 177.182.217.185 •• 177.69.16.21 •• 180.44.101.75 •• 186.207.233.79 •• 186.214.186.184 •• 186.220.201.33 •• 186.241.191.143 •• 187.12.96.34 •• 187.13.22.201 •• 187.15.123.109 •• 187.17.227.90 •• 187.23.14.250 •• 187.34.227.48 •• 187.38.17.57 •• 187.4.0.29 •• 187.41.96.206 •• 187.43.39.113 •• 187.53.139.50 •• 187.56.87.200 •• 187.59.121.44 •• 187.69.75.147 •• 189.104.157.57 •• 189.110.128.203 •• 189.111.160.10 •• 189.115.238.235 •• 189.124.27.10 •• 189.2.226.2 •• 189.21.199.67 •• 189.21.201.3 •• 189.23.26.158 •• 189.25.61.156 •• 189.27.209.186 •• 189.29.160.201 •• 189.56.127.130 •• 189.59.177.123 •• 189.7.130.241 Autores 35 •• 189.72.30.81 •• 189.8.114.170 •• 189.84.255.127 •• 193.136.104.23 •• 193.136.21.161 •• 200.103.169.99 •• 200.140.66.229 •• 200.152.225.182 •• 200.152.225.183 •• 200.158.110.225 •• 200.158.7.136 •• 200.176.201.133 •• 200.193.67.167 •• 200.198.216.103 •• 200.198.55.146 •• 200.202.193.1 •• 200.205.72.131 •• 200.206.210.80 •• 200.213.185.130 •• 200.232.149.140 •• 201.19.201.151 •• 201.22.234.97 •• 201.26.19.169 •• 201.3.239.53 •• 201.3.49.195 •• 201.35.185.207 •• 201.51.50.79 •• 201.68.88.112 •• 201.73.5.6 •• 201.8.248.211 •• 201.9.243.53 •• 201.9.79.221 •• 201.92.71.39 •• 41.221.197.159 •• 62.28.55.161 •• 72.2.112.16 •• 77.54.38.34 •• 81.84.248.57 •• 84.90.153.236 •• 85.139.106.236 •• 85.240.163.93 •• 87.103.108.147 •• 95.92.17.65 •• Abacaxi •• Albmont •• Alguém •• AmiltonMartins Autores 36 •• Atoj •• Brunoy Anastasiya Seryozhenko •• Bysheep •• Cristovaopb •• Daniel Souza •• Dante Cardoso Pinto de Almeida •• David0811 •• Edudobay •• FlavioBenYaakov •• Fmagrao •• Gilsonilunardi •• Guiwp •• Helder.wiki •• Helder.wiki.bot •• Iltonbarbosa •• JackPotte •• Jonas AGX •• Jorge Morais •• Julio Soares •• LeonardoG •• LeonardoRob0t •• Lightningspirit •• Marcos Antônio Nunes de Moura •• Master •• MewRS •• MGFE Júnior •• OsvaldoGago •• PatiBot •• Raylton P. Sousa •• Renatwo •• Ribafs •• SallesNeto BR •• Tabatinga •• Voz da Verdade Fontes e Editores da Página 37 Fontes e Editores da Página Capa Fonte: http://pt.wikibooks.org/w/index.php?oldid=126853 Contribuidores: AmiltonMartins, Atoj, Jorge Morais, LeonardoRob0t, Lightningspirit, MewRS, SallesNeto BR, 4 edições anónimas Prefácio Fonte: http://pt.wikibooks.org/w/index.php?oldid=262885 Contribuidores: Guiwp Introdução Fonte: http://pt.wikibooks.org/w/index.php?oldid=249099 Contribuidores: Abacaxi, Edudobay, Iltonbarbosa, Jorge Morais, Lightningspirit, Master, Tabatinga, 2 edições anónimas O PHP Fonte: http://pt.wikibooks.org/w/index.php?oldid=263314 Contribuidores: Abacaxi, Edudobay, Guiwp, Jorge Morais, Lightningspirit, Master, SallesNeto BR, Voz da Verdade, 2 edições anónimas Instalação Fonte: http://pt.wikibooks.org/w/index.php?oldid=263313 Contribuidores: Abacaxi, Albmont, Edudobay, Guiwp, JackPotte, Jorge Morais, Lightningspirit, Marcos Antônio Nunes de Moura, Master, 13 edições anónimas Sintaxe básica Fonte: http://pt.wikibooks.org/w/index.php?oldid=262452 Contribuidores: Abacaxi, Bysheep, Guiwp, Jorge Morais, Lightningspirit, Master, Voz da Verdade, 4 edições anónimas Comentários Fonte: http://pt.wikibooks.org/w/index.php?oldid=262555 Contribuidores: Abacaxi, Fmagrao, Guiwp, Master Echo Fonte: http://pt.wikibooks.org/w/index.php?oldid=262554 Contribuidores: Albmont, Edudobay, Guiwp, Helder.wiki, Jorge Morais, Julio Soares, LeonardoG, Marcos Antônio Nunes de Moura, Master, OsvaldoGago, 6 edições anónimas Include Fonte: http://pt.wikibooks.org/w/index.php?oldid=262557 Contribuidores: Edudobay, Guiwp,Jorge Morais, LeonardoG, Master, OsvaldoGago, Ribafs If...Else Fonte: http://pt.wikibooks.org/w/index.php?oldid=262560 Contribuidores: Guiwp, Jorge Morais, LeonardoG, Marcos Antônio Nunes de Moura, Master, Ribafs, 3 edições anónimas Variáveis Fonte: http://pt.wikibooks.org/w/index.php?oldid=263319 Contribuidores: Abacaxi, Guiwp, Jorge Morais, LeonardoG, Master, OsvaldoGago, Ribafs, 5 edições anónimas Strings Fonte: http://pt.wikibooks.org/w/index.php?oldid=262566 Contribuidores: Abacaxi, Atoj, Guiwp, Jorge Morais, Master, MewRS, Raylton P. Sousa, 1 edições anónimas Operadores Fonte: http://pt.wikibooks.org/w/index.php?oldid=262567 Contribuidores: Abacaxi, Edudobay, Guiwp, Jorge Morais, Lightningspirit, Raylton P. Sousa, Voz da Verdade, 11 edições anónimas Funções Fonte: http://pt.wikibooks.org/w/index.php?oldid=262568 Contribuidores: Abacaxi, Gilsonilunardi, Guiwp, 5 edições anónimas Classes Fonte: http://pt.wikibooks.org/w/index.php?oldid=263315 Contribuidores: Abacaxi, Albmont, Guiwp, Jorge Morais, Master, SallesNeto BR, 5 edições anónimas Exercícios Fonte: http://pt.wikibooks.org/w/index.php?oldid=262887 Contribuidores: Abacaxi, Albmont, Cristovaopb, Daniel Souza, Dante Cardoso Pinto de Almeida, David0811, FlavioBenYaakov, Guiwp, Helder.wiki, Jorge Morais, Lightningspirit, MGFE Júnior, Marcos Antônio Nunes de Moura, Voz da Verdade, 62 edições anónimas Funções de compressão Fonte: http://pt.wikibooks.org/w/index.php?oldid=263316 Contribuidores: Abacaxi, Daniel Souza, Guiwp, Raylton P. Sousa Funções de Calendário Fonte: http://pt.wikibooks.org/w/index.php?oldid=262574 Contribuidores: Abacaxi, Guiwp, Master, Raylton P. Sousa, Renatwo Extensões do PHP Fonte: http://pt.wikibooks.org/w/index.php?oldid=262576 Contribuidores: Abacaxi, Guiwp, Jorge Morais, Master, Raylton P. Sousa, Renatwo Segurança Fonte: http://pt.wikibooks.org/w/index.php?oldid=262577 Contribuidores: Brunoy Anastasiya Seryozhenko, Guiwp, Jorge Morais, Master, 1 edições anónimas Bibliografia Fonte: http://pt.wikibooks.org/w/index.php?oldid=262578 Contribuidores: Guiwp, Helder.wiki, Jorge Morais, Lightningspirit, Master, 1 edições anónimas Ligações externas Fonte: http://pt.wikibooks.org/w/index.php?oldid=262421 Contribuidores: Guiwp Autores Fonte: http://pt.wikibooks.org/w/index.php?oldid=264900 Contribuidores: Guiwp Fontes, Licenças e Editores da Imagem 38 Fontes, Licenças e Editores da Imagem Imagem:Curso_php_cover.png Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:Curso_php_cover.png Licença: GNU Free Documentation License Contribuidores: Dante Cardoso Pinto de Almeida, Lightningspirit File:Application-x-php.svg Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:Application-x-php.svg Licença: GNU General Public License Contribuidores: Vinicius Depizzol Image:Nuvola apps konsole.png Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:Nuvola_apps_konsole.png Licença: GNU Lesser General Public License Contribuidores: Alno, Alphax Imagem:Rekopis chopin.jpg Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:Rekopis_chopin.jpg Licença: Public Domain Contribuidores: Andreagrossmann, Kevyn, Maire, Man vyi, Niki K, Subitosera, Tsca Licença 39 Licença Creative Commons Attribution-Share Alike 3.0 //creativecommons.org/licenses/by-sa/3.0/
Compartilhar