nd~e Geral
._-
I o PDP e a World Wide Web 11.1 Introduo 11.2 Breve apresentao do PHP 11.3 Acesso a documentos na web 21.4 HTML esttico versus HTML dinmico 31.5 PHP, o que ? 41.6 O PHP e o HTML 6
2 Funcionamento do PDP 132.1 Introduo 132.2 Histria do PHP 132.3 Arquitectura e funcionamento 142.4 Caractersticas do PHP 162.5 Potencialidades do PHP 172.6 PHP, CGI, Perl e ASP 18
3 O PDP IZend .......................................................... 233.1 Introduo 233.2 Utilizao do PHP 23.3.3 A arquitectura do PHP 253.4 Optimizao 26
3.4.1 O PHP versus ASP 273.5 Novas Funcionalidades 27
3.5.1 Novo modelo orientado a objectos (0.0.) 283.5.2 Suporte para a linguagem de programao lava 293.5.3 Alteraes gerais no PHP 30
3.6 Consideraes sobre o PHP 31
4 Instalao e configurao do PDP 334.1 Introduo 334.2 Instalao do PHP 33
4.2.1. Plataformas Windows 334.2.2. Plataformas Unix (Linux) 34
4.3 Como obter o software PHP 344.4 Instalao em sistemas Windows 35
FCA - Editora de InformticaXI
9Programa~o com PDP54.4.1 Instalao do PHP 364.4.2 Apache web server 37
4.4.2.1 Apache 1.3x 374.4.2.2 Apache 2.0x 38
4.4.3 Microsoft I1S (4.x e 5) e PWS 4 (Personal Web Server) 384.4.3.1 Windows ePWS 4 384.4.3.2 Windows NT/2000/XP e I1S 4/5/6 39
4.5 Instalao em sistemas LINUX 414.5.1 Apache Web Server 1.3.x 12.0 .41
4.6 A configurao do PHP 434.6.10 ficheiro de configurao PHP.INI .,434.6.2 Directivas gerais de configurao 44
4.6.2.1 auto_append_file texto 444.6.2.2 auto-prepend _file texto 444.6.2.3 display_errors lgico 444.6.2.4 doe root texto 444.6.2.5 error_log texto 444.6.2.6 error_reporting nmero 454.6.2.7 open_basedir texto 454.6.2.8 gpc_order texto 454.6.2.9 ignore_user_abort texto 454.6.2.10 include-path texto 454.6.2.l1 max execution time nmero 46- -4.6.2.12 memory_limit nmero 464.6.2.13 short_open_tag lgico 464.6.2.14 track_errors lgico 464.6.2.15 track_vars lgico 464.6.2.16 upload_tmp_dir texto 464.6.2.17 user dir texto 46
4.6.3 Directivas de configurao do e-mail.. .464.6.3.1 SMTP texto 474.6.3.2 sendmail from texto 474.6.3.3 sendmailpath texto 47
4.6.4 Directivas de configurao em modo seguro .474.6.4.1 safe_mode lgico 474.6.4.2 safe mode exec dir texto .4 7- - -4.6.4.3 register_globals texto 47
4.6.5 Outras directivas de configurao .484.7 Verificar a actual instalao e configurao .48
5 A estrutura e sintaxe do PHP 535.1 Introduo 535.2 Semelhanas com outras linguagens 535.3 Introduzir o cdigo PHP no HTML 53
FCA - Editora de Informtica
xn
ndieeP
5.4 Separao de instrues 555.5 Utilizao de comentrios 555.6 Tipos de dados 56
5.6.1 Valores Lgicos (boolean) 565.6.2 Valores inteiros (integer) 575.6.3 Valores de vrgula flutuante (float) 575.6.4 Cadeias de caracteres (String) 57
5.6.4.1 Converso de strings 585.6.5 Arrays 59
5.6.5.1 Arrays de uma s dimenso 595.6.5.2 Arrays multidimensionais 60
5.6.6 Classes e Objectos (programao orientada por objectos) 625.6.6.1 Inicializao de objectos 62
5.6.7 Recursos (Resources) 625.6.8 NULL 63
5.7 Variveis 635.7.1 Escopo das variveis 645.7.2 Nomes de variveis dinmicas 655.7.3 Variveis Predefinidas 665.7.4 Variveis de ambiente 675.7.5 Variveis externas ao PHP 68
5.7.5.1 Formulrios HTML (atravs de POST e GET) 685.7.6 Variveis atravs de cookies 695.7.7 Variveis de ambiente 69
5.8 Constantes 705.9 Operadores 70
5.9.1 Operadores aritmticos 715.9.2 Operadores de cadeias de caracteres 715.9.3 Operadores de atribuio 715.9.4 Operadores de operaes com bits 715.9.5 Operadores Lgicos 725.9.6 Operadores de comparao 725.9.7 Precedncia dos operadores 73
5.10 Estruturas de Controlo 745.10.1if 745.10.2 else 755.10.3 elseif 765.10.4 while 765.10.5 do while 775.10.6 for 775.10.7 break 785.10.8 continue 795.10.9 switch 795.10.1O require 805.10.11 include 80
FCA - Editora de InformticaXID
9Programao com PBP55.10.12 require_once e include_once 805.10.13 class 81
5.11 Funes 825.11.1 Funes definidas pelo utilizador 835.11.2 Retorno de valores 835.11.3 Argumentos de funes 835.11.4 Passagem de argumentos por referncia 845.11.5 Valor por defeito de argumentos 84
GProgramao Orientada por Objeetos no PHP5 @6.1 Introduo 876.2 Zend Engine 2 886.3 Um novo modelo de objectos 88
6.3.1 Definio de Classes 886.3.2 Visibilidade de Mtodos da Classe 896.3.3 Visibilidade dos Mtodos da Classe 906.3.4 Variveis e mtodos estticos 916.3.5 Constantes de uma Classe 936.3.6 Parent e Self.. 936.3.7 Construtores e Destrutores de Objectos 93
6.3.7.1 Construtores 946.3.7.2 Destrutores 96
6.3.8 lasses e Mtodos Abstractos 976.3.9 Interfaces 996.3.10 Operador instanceof 1016.3.11 Mtodos e Classes Finais 1026.3.12 Excepes 104
7 Funeionalidades Bsieas do PHP................................ 1097.1 Introduo 1097.2 Algumas funcionalidades do PHP 1097.3 Primeiros exemplos 1097.4 Imprimir dados no ecr 113
7.4.1 A funo echoO 1137.4.2 A funo printt) 1137.4.3 A funo printfi) 114
8 O PHP e os formulrios em HTML.............................. 1158.1 Introduo 1158.2 Utilizao do PHP para ler valores de um formulrio 115
8.2.1 Formulrios simples 1158.2.1.1 Impresso do formulrio 1168.2.1.2 O processamento do formulrio 1178.2.1.3 Juntar ambas as partes 118
FCA - Editora de lnformtica
ndieeP
8.2.2 Mais um exemplo simples 1208.2.3 Um formulrio com pginas mltiplas 122
9 O PUP e as bases de dados GV9.1 Introduo 1379.2 Interactividade das aplicaes web 1379.3 MySQL - breve introduo 1389.4 Utilitrios de administrao do MySQL 1399.5 Ligao a bases de dados em PHP 147
9.5.1 Principais funes com suporte ao MySQL 1479.5.2 Funes PHP de ligao a bases de dados MySQL. 148
9.6 Aplicao de gesto de contactos 1539.6.1 Seleco e visualizao de registos 1539.6.2 Adio de registos 1559.6.3 Edio/alterao de um registo 1579.6.4 Eliminao de registo 1609.6.5 Definio da condio de seleco 163
9.6.5.1 Navegao entre pginas contendo registos 1709.6.6 Envio de e-mails e realizao de uploads de ficheiros 174
9.6.6.1 Envio de e-mail 1759.6.6.2 Upload de ficheiros e armazenamento em bases de dados 178
9.6.7 Redireccionamento de pginas 1839.7 Autenticao de utilizadores 1859.8 Ligao a bases de dados em PHP via ODBC 192
9.8.1 Funes PHP para ligao a bases de dados via ODBC 1939.8.2 Exemplo de aplicao das funes PHP-ODBC 194
9.9 Interfaces de ligao a bases de dados 1989.9.1 Biblioteca ADOdb 2019.9.2 PDO 204
10 PUP e o SQLite 20910.1 Introduo 20910.2 SQLite - O que ? 209
10.2.10 SQLite e o SQL 21010.2.2 SQLite Manager 211
10.3 PHP e SQLite 21210.4 PHP e SQLite - Modo 00 214
10.4.1 Criar ou abrir uma BD SQLite 21610.4.2 Criar tabelas em base de dados SQLite 21610.4.3 Listar todos registos de uma tabela 21710.4.4 Apagar/alterar registos numa tabela 21910.4.5 Alterar registos numa tabela 220
FCA - Editora de Informticaxv
9Programao com PHPSII O PHP e o eorreio eleetrnieo 22311.1 Introduo 22311.2 Alguns detalhes sobre o correio electrnico 22311.3 Envio de correio electrnico 225
11.3.1 Programa para enviar correio electrnico 22511.3.2 Classe para enviar correio electrnico simples 22811.3.3 Classe para enviar correio electrnico composto 23211.3.4 Outra forma de enviar correio electrnico no PHP 240
11.4 Validao de endereos de correio electrnico 241 .11.4.1 Validao simples 24111.4.2 Validao complexa 242
12 Autentieao de utilizadores eom PHP ~~12.1 Introduo 24712.2 Autenticao HTTP 24712.3 Autenticao com PHP 248
12.3.1 Validao com ficheiro texto 25112.3.2 Validao baseada no .htaccess 25212.3.3 Validao com bases de dados 255
12.4 Vantagens da autenticao com PHP 256
13 Datas e horas em PHP 25713.1 Introduo _ 25713.2 Principais funes Data/Hora em PHP 25713.3 Alguns exemplos teis de utilizao 261
13.3.1 Tempo decorrido 26113.3.2 Datas em portugus 268
14 O PHP e os eookies............................................... 2Th14.1 Introduo 271
15 Criao de grfieos utilizando o PHP 27515.1 Introduo 27515.2 Criao dinmica de grficos 275
15.2.1 Grficos simples - quadrados e rectngulos 27615.2.2 Grficos simples - crculos 27915.2.3 Utilizao de texto em grficos 28115.2.4 Biblioteca de grficos de barras 283
15.2.4.1 Dados de classe 28315.2.4.2 Funes da classe 284
15.2.5 Criao de imagens a partir de outras 28715.3 Formatos de imagem 290
FCA - Editora de Informtica
ndieeP
16 Sesses em PHP ~ /'
16.1 Introduo 29316.2 A utilidade das sesses 29316.3 Informao complementar. 29416.4 A configurao das sesses 29416.5 Propagao de identificadores de sesso 29516.6 Funes para gesto de sesses em PHP 296
16.6.1 Inicializao de sesses 29616.6.2 Destruio de sesses 29616.6.3 Nome de sesses 29716.6.4 Informao acerca do path de sesses 29716.6.5 Identificao de sesses 29716.6.6 Associao de dados a uma sesso 29716.6.7 Desassociao de dados a uma sesso 29716.6.8 Verificao de informao de sesso 29816.6.9 Codificao de informao de sesses 29816.6.10 Descodificao de informao de sesses 298
16.7 Exemplos da utilizao da gesto de sesses 29816.7.1 Registo de variveis 29816.7.2 Contador de acessos 29916.7.3 Cores persistentes 30016.7.4 Login e sesses , 304
17 O PHP e o sistema de ficheiros 311
17.1 Introduo 31117.2 Utilizao de ficheiros no PHP 31117.3 Testes sobre os ficheiros 31317.4 Navegao nos ficheiros 31417.5 A funojileO 32017.6 A funo fpassthrut) 32117.7 Copiar, apagar e renomear ficheiros 32317.8 Trabalhar com directrios 32517.9 Upload de ficheiros 32717.10 Validao de ficheiros de upload 330
18 O PHP e a execuo de programas externos ~3)
18.1 Introduo 33318.2 Funes PHP de execuo de programas externos 333
18.2.1 exec 33318.2.2 system 334
18.3 Exemplos de utilizao 334
FCA - Editora de Informtica
9Programao com PHP.19.7 Integrao do interpretador XML Expat 34419.8 Funes do PHP para XML 344
19.8.1 xml--Parser_create 3:519.8.2 xml set object.. 3 619.8.3 xml- set- element handler 34619.8.4 xml-set-characte-;: data handler 347
- - - - 34819.8.5 xrnl jiarse .19.8.6 xml get error code 348
- - - 34919.8.7 xml error string .- - 34919.8.8 xml_get_current_line_number. .
19.8.9 xmtparserfree 34919.9 PHP e XML em funcionamento 34919.10 Anlise ao XML 35619.11 SimpleXML 356
19.11.1 Criar um objecto SimpleXML 35719.11.2 Navegao nos objectos SimpleXML 35719.11.3 Armazenar objectos SimpleXML 359
20 PBP e o PDF 36920.1 Introduo 36920.2 FPDF - O que ? 36920.3 Instalao 37020.4 Criao de um documento PDF 37020.5 Cabealhos, rodaps e imagens 37420.6 Gerao de documentos PDF a partir de bases de dados 37820.7 Converso de HTML para PDF 386
21 Desenvolvimento de aplicaes WAP com o PBP 38721.1 Introduo 38721.2 Arquitectura PHP- WML 38721.3 A linguagem WML 388
21.3.1 Exemplo de uma aplicao WML 38921.4 PHP nos documentos de WML 391
21.4.1 Enviar correio electrnico atravs do dispositivos WAP 39421.4.2 Listar dados de uma base de dados via WAP 395
22 Desenvolvimento de Web-Services em PBP 3'9322.1 Introduo 39322.2 Web-Services 393
22.2.1 SOAP 39622.2.2 WSDL 39622.2.3 UDDI 396
22.3 A biblioteca NuSOAP 39722.4 Desenvolvimento de WS com PHP 397
22.4.1 Exemplo de WS com o NuSOAP .40622.4.2 Definio e desenvolvimento do WS 409
FCA - Editora de Informtica
ndieeP
22 Desenvolvimento de Web-Serviees em PHP 393
22.1 Introduo 39322.2 Web-Services 393
22.2.1 SOAP 39622.2.2 WSDL 39622.2.3 UDDI 396
22.3 A biblioteca NuSOAP 39722.4 Desenvolvimento de WS com PHP 397
22.4.1 Exemplo de WS com o NuSOAP .40622.4.2 Definio e desenvolvimento do WS .40922.4.3 Desenvolvimento do cliente do WS em PHP 423
22.4.3.1 Menu Principal 42322.4.3.2 Registo de Novos Utilizadores .42422.4.3.3 Ver informao do Ttulo .42722.4.3.4 Ver cotao do Ttulo .43022.4.3.5 Comprar Ttulo 43222.4.3.6 Vender Ttulo 435
22.4.4 Desenvolvimento de um cliente do WS em C# 43722.5 Suporte nativo PHP5 para WS 444
22.5.1 Consumir WS disponveis 44422.5.2 Definir e criar WS com o suporte nativo PHP .453
23 Zend e a teenologia PHP 465)
23.1 Introduo 46523.2 Zend Technologies - Produtos e servios .465
23.2.1 Zend Platform 46623.2.2 Zend Engine 46723.2.3 Zend Guard 468
23.2.3.1 Vantagens: 46923.2.3.2 Requisitos: 469
23.2.4 Zend Studio 47023.2.4.1 Como funciona o Studio .47023.2.4.2 Vantagens: 47123.2.4.3 Requisitos 47123.2.4.4 Concorrentes 472
23.2.5 Zend Consulting services 47323.3 Zend Education 47423.4 Frameworks PHP e Zend .474
24 Reeursos PHP na Internet 477
24.10 PHP na WWW 47724.2 Recursos PHP na WWW 477
24.2.1 Php.net 477
FCA - Editora de Informtica
9Programao com PHP524.2.2 Weberdev.com 47824.2.3 PHPBuilder 47924.2.4 Developer Shed 48024.2.5 PHP Code Exchange 48124.2.6 The PHP Resource Index 48224.2.7 PHP Classes Repository 48224.2.8 Hotscripts 483
24.3 Grupos de discusso e lou canais de IRC .48424.3.1 Canal #php no IRC 48424.3.2 Listas de distribuio 48424.3.3 Grupos de discusso 48524.3.4 Lista de perguntas mais frequentes (FAQ) 48624.3.5Lista de problemas e erros (bugs) .486
25 Desenvolvimento de um site completo na WWW 487
25.1 Introduo 48725.2 O sistema a desenvolver 487
25.2.1 A infraestrutura tcnica do site 48825.2.2 A estrutura do site 48825.2.3 A base de dados 48925.2.4 Concepo da base de dados 49025.2.5 Scripts que geram as pginas do site 495
26 Referncias bibliogrficas 526
27 Indiee reDssivo 529
FCA - Editora de Informtica