1 O PHP E A WORLD WIDE WEB... 1 1.1 Introdução... 1 1.2 Breve apresentação do PHP... 2 1.3 Acesso a documentos na Web... 2 1.4 HTML estático versus HTML dinâmico... 3 1.5 PHP o que é?... 5 1.6 O PHP e o HTML... 7 2 FUNCIONAMENTO DO PHP... 15 2.1 Introdução... 15 2.2 História do PHP... 15 2.3 Arquitectura e funcionamento... 17 2.4 Características do PHP... 19 2.5 Potencialidades do PHP... 19 2.6 PHP, CGI e ASP... 20 3 A NOVA VERSÃO DO PHP PHP4 / Zend... 23 3.1 A utilização do PHP... 23 3.2 A arquitectura do PHP4... 26 3.3 Optimização... 27 3.4 O PHP versus ASP... 28 3.5 Novas Funcionalidades... 29 3.5.1 Sessões... 29 3.5.2 Suporte de FTP... 30 3.5.3 Perl Compatible Regular Expressions... 32 3.5.4 Java... 32 3.6 Outras considerações sobre o PHP4... 33 4 INSTALAÇÃO E CONFIGURAÇÃO DO PHP... 35 4.1 Instalação do PHP... 35 4.2 Como obter o software PHP... 37 4.3 Instalação em sistemas Windows... 38 4.3.1 Instalação do PHP no seu sistema... 38 4.3.2 Apache web server 1.3.x... 40 4.3.3 OmniHTTPd Pro 2.0... 40 4.3.4 Microsoft IIS 3.x e PWS Personal Web Server... 42 4.3.5 O Windows NT Server e o IIS 4... 46 4.4 Instalação em sistemas Unix... 47 FCA - EDITORA DE INFORMÁTICA I
Programação com PHP 4.4.1 Apache web server 1.3.x... 47 4.5 A configuração do PHP... 48 4.5.1 O ficheiro de configuração PHP3.INI... 48 4.5.2 Directivas gerais de configuração... 54 4.5.2.1 auto_apend_file texto... 54 4.5.2.2 auto_prepend_file texto... 55 4.5.2.3 display_errors lógico... 55 4.5.2.4 doc_root texto... 55 4.5.2.5 error_log texto... 55 4.5.2.6 error_reporting número... 55 4.5.2.7 open_basedir texto... 56 4.5.2.8 gpc_order texto... 56 4.5.2.9 ignore_user_abort texto... 56 4.5.2.10 include_path texto... 56 4.5.2.11 max_execution_time número... 56 4.5.2.12 memory_limit número... 57 4.5.2.13 short_open_tag lógico... 57 4.5.2.14 track_errors lógico... 57 4.5.2.15 track_vars lógico... 57 4.5.2.16 upload_tmp_dir texto... 57 4.5.2.17 user_dir texto... 57 4.5.3 Directivas de configuração do E-mail... 57 4.5.3.1 SMTP texto... 58 4.5.3.2 sendmail_from texto... 58 4.5.3.3 sendmail_path texto... 58 4.5.4 Directivas de configuração em modo seguro... 58 4.5.4.1 safe_mode lógico... 58 4.5.4.2 safe_mode_exec_dir texto... 58 4.5.5 Outras directivas de configuração... 58 4.6 Verificar a actual instalação e configuração... 59 4.7 A Instalação do PHP4... 66 4.7.1 Instalação em sistemas Windows... 66 4.7.2 Instalação em sistemas Unix... 67 5 A ESTRUTURA E SINTAXE DO PHP... 71 5.1 Semelhanças com outras linguagens... 71 5.2 Introduzir o código PHP no HTML... 71 5.3 Separação de instruções... 72 5.4 Utilização de comentários... 73 5.5 Tipos de dados... 74 II FCA - EDITORA DE INFORMÁTICA
Índice 5.5.1 Números inteiros... 74 5.5.2 Números de vírgula flutuante... 74 5.5.3 Cadeias de caracteres (Strings)... 75 5.5.3.1 Conversão de strings... 76 5.5.4 Arrays... 76 5.5.4.1 Arrays de uma só dimensão... 76 5.5.4.2 Arrays multidimensionais... 77 5.5.5 Objectos... 77 5.5.5.1 Inicialização de objectos... 78 5.6 Variáveis... 78 5.6.1 Escopo das variáveis... 78 5.6.2 Nomes de variáveis dinâmicos... 80 5.6.3 Variáveis externas ao PHP... 81 5.6.3.1 Formulários HTML (através de POST e GET)... 81 5.6.4 Variáveis através de Cookies... 82 5.6.5 Variáveis de ambiente... 82 5.7 Constantes... 83 5.8 Operadores... 84 5.8.1 Operadores aritméticos... 84 5.8.2 Operadores de Cadeias de Caracteres... 85 5.8.3 Operadores de atribuição... 85 5.8.4 Operadores de operações com bits... 86 5.8.5 Operadores Lógicos... 86 5.8.6 Operadores de Comparação... 86 5.8.7 Precedência dos operadores... 87 5.9 Estruturas de Controlo... 88 5.9.1 if... 89 5.9.2 else... 89 5.9.3 elseif... 90 5.9.4 while... 91 5.9.5 do while... 92 5.9.6 for... 92 5.9.7 break... 93 5.9.8 continue... 94 5.9.9 switch... 94 5.9.10 require... 95 5.9.11 include... 95 5.9.12 class... 96 5.10 Funções... 98 5.10.1 Funções definidas pelo utilizador... 98 FCA - EDITORA DE INFORMÁTICA III
Programação com PHP 5.10.2 Retorno de valores... 98 5.10.3 Argumentos de funções... 99 5.10.4 Passagem de argumentos por referência... 99 5.10.5 Valor por defeito de argumentos... 100 6 FUNCIONALIDADES BÁSICAS DO PHP... 103 6.1 Algumas funcionalidades do PHP... 103 6.2 Alguns primeiros exemplos... 104 6.3 Imprimir dados no ecrã... 110 6.3.1 A função echo()... 110 6.3.2 A função print()... 111 6.3.3 A função printf()... 111 6.4 Conclusão... 113 7 O PHP E OS FORMULÁRIOS EM HTML... 115 7.1 Usar o PHP para ler valores de um formulário... 115 7.1.1 Formulários simples... 116 7.1.1.1 Imprimir o formulário... 117 7.1.1.2 O processamento do formulário... 118 7.1.1.3 Juntar ambas as partes... 119 7.1.2 Mais um exemplo simples... 122 7.1.3 Um formulário com páginas múltiplas... 124 8 O PHP E AS BASES DE DADOS... 138 8.1 Interactividade das aplicações web... 138 8.2 Mysql - breve introdução... 139 8.3 Utilitários de administração do MySQL... 144 8.4 Ligação a bases de dados em PHP... 147 8.4.1 Principais funções com suporte ao MySQL... 147 8.4.2 Utilização de funções PHP de ligação a bases de dados MySQL... 149 8.4.3 Selecção e visualização de registos... 155 8.4.4 Adição de registos... 158 8.4.5 Edição de registo... 161 8.4.6 Eliminação de registo... 164 8.4.7 Definição da condição de selecção... 168 8.4.7.1 Navegação entre páginas contendo registos... 175 8.4.8 Envio de emails e realização de uploads de ficheiros... 180 8.4.8.1 Envio de email... 181 8.4.8.2 Upload de ficheiros e armazenamento em bases de dados... 185 IV FCA - EDITORA DE INFORMÁTICA
Índice 8.4.9 Redireccionamento de páginas... 191 8.5 Autenticação de utilizadores... 194 8.6 Ligação a bases de dados em PHP via ODBC... 201 8.6.1 Funções PHP para ligação a bases de dados via ODBC... 202 8.6.2 Exemplo de aplicação das funções PHP-ODBC... 203 8.7 O phpdb... 208 8.7.1 Objectos do phpdb... 211 9 O PHP E O CORREIO ELECTRÓNICO... 215 9.1 A importância do correio electrónico... 215 9.2 Mais alguns detalhes sobre o correio electrónico... 216 9.3 Envio de Correio Electrónico... 217 9.3.1 Programa para enviar correio electrónico... 218 9.3.2 Classe para enviar correio electrónico simples... 222 9.3.3 Classe para enviar correio electrónico composto... 226 9.3.4 Outra forma de enviar correio electrónico no PHP... 236 9.4 Formas de validação de endereços de correio electrónico... 237 9.4.1 Validação simples... 238 9.4.2 Validação complexa... 238 10 MANIPULAÇÃO DE DATAS E HORAS COM O PHP... 243 10.1 Introdução... 243 10.2 Alguns exemplos úteis de utilização... 248 10.2.1 Tempo decorrido... 248 10.2.2 Datas em português... 254 11 O PHP E OS COOKIES... 257 11.1 Os cookies e a WWW... 257 12 CRIAÇÃO DE GRÁFICOS UTILIZANDO O PHP... 261 12.1 Os gráficos e o PHP... 261 12.2 Criação dinâmica de gráficos... 4 12.2.1 Gráficos simples Quadrados e Rectângulos... 5 12.2.2 Gráficos simples círculos... 9 12.2.3 Utilização de texto em Gráficos... 12 12.2.4 Biblioteca de gráficos de barras... 15 12.2.5 Criação de imagens a partir de outras... 20 FCA - EDITORA DE INFORMÁTICA V
Programação com PHP 13 A GESTÃO DE SESSÕES COM O PHP... 24 13.1 A importância da gestão de sessões... 24 13.2 A utilidade das sessões... 25 13.3 Informação complementar... 26 13.4 A configuração das sessões... 26 13.5 Propagação de identificadores de sessão... 27 13.6 Funções para gestão de sessões em PHP... 28 13.7 Inicialização de sessões... 29 13.8 Destruição de sessões... 29 13.9 Nome de sessões... 29 13.10 Informação àcerca da path de sessões... 30 13.11 Identificação de sessões... 30 13.12 Associação de dados a uma sessão... 30 13.13 Desassociação de dados a uma sessão... 30 13.14 Verificação de informação de sessão... 31 13.15 Codificação de informação de sessões... 31 13.16 Descodificação de informação de sessões... 31 13.17 Exemplos da utilização da gestão de sessões... 31 13.18 Registo de variáveis... 32 13.19 Contador de acessos... 32 13.20 Cores persistentes... 35 14 O PHP E O SISTEMA DE FICHEIROS... 40 14.1 Manipulação do sistema de ficheiros... 40 14.2 Trabalhar com ficheiros... 42 14.3 Testes sobre os ficheiros... 44 14.4 Navegação nos ficheiros... 45 14.5 A função file()... 51 14.6 A função fpassthru()... 52 14.7 Copiar, apagar e renomear ficheiros... 55 14.8 Trabalhar com directorias... 57 14.9 Upload de ficheiros... 60 14.10 Validação de ficheiros de upload... 63 15 O PHP E A EXECUÇÃO DE PROGRAMAS EXTERNOS... 65 15.1 Execução externa de programas... 65 15.2 Funções do PHP para execução de programas externos... 65 15.3 exec... 66 15.4 system... 66 VI FCA - EDITORA DE INFORMÁTICA
Índice 15.5 Exemplos de utilização... 67 16 O PHP E O XML... 71 16.1 O XML e a WWW... 74 16.2 XML... 74 16.3 Documentos XML... 75 16.4 DTDs Document Type Definitions... 77 16.5 Interpretadores de XML... 79 16.6 Tipos de Interpretadores XML... 79 16.7 Integração do Interpretador XML Expat... 79 16.8 Funções do PHP para XML... 80 16.9 xml_parser_create... 81 16.10 xml_set_object... 82 16.11 xml_set_element_handler... 82 16.12 xml_set_character_data_handler... 84 16.13 xml_parse... 85 16.14 xml_get_error_code... 85 16.15 xml_error_string... 86 16.16 xml_get_current_line_number... 86 16.17 xml_parser_free... 86 16.18 PHP e XML em funcionamento... 86 17 RECURSOS PHP NA INTERNET... 94 17.1 Encontrar o PHP na WWW... 96 17.2 Páginas na WWW... 96 17.2.1 Php.net... 96 17.2.2 phpwizard.net... 97 17.2.3 PHP Builder... 99 17.2.4 Developer Shed... 100 17.2.5 PHP Code Exchange... 102 17.2.6 PHP Base Library... 103 17.2.7 PHP Classes Repository... 104 17.2.8 e-ginner... 105 17.3 Grupos de discussão e/ou canais de IRC... 107 17.3.1 Canal #php no IRC... 107 17.3.2 Listas de distribuição... 107 17.3.3 Grupos de discussão... 108 17.3.4 Lista de Perguntas mais Frequentes (FAQ)... 109 17.3.5 Lista de Problemas e Erros (Bugs)... 109 FCA - EDITORA DE INFORMÁTICA VII
Programação com PHP REFERÊNCIAS BIBLIOGRÁFICAS......365 ÍNDICE REMISSIVO..........369 VIII FCA - EDITORA DE INFORMÁTICA