Manual de PHP Stig Sæther Bakken Alexander Aulbach Egon Schmid Jim Winstead Lars Torben Wilson Rasmus Lerdorf Andrei Zmievski Jouni Ahto
Transcript
1. Manual de PHP Stig Sther Bakken Alexander Aulbach Egon
Schmid Jim Winstead Lars Torben Wilson Rasmus Lerdorf Andrei
Zmievski Jouni Ahto
2. Editado por Rafael Martnez 24-03-2002 Copyright 1997, 1998,
1999, 2000, 2001, 2002 por por el Grupo de documentacin de PHP
Copyright Este manual es Copyright 1997, 1998, 1999, 2000, 2001,
2002 del Grupo de documentacin de PHP. Los miembros de este grupo
se encuentran listados en la primera pgina de este manual. Este
manual puede ser redistribuido bajo los trminos de la "GNU General
Public License" publicada por la "Free Software Foundation"; tanto
bajo la versin 2 de esta licencia o bajo versiones
posteriores.
3. Manual de PHP por Stig Sther Bakken, Alexander Aulbach, Egon
Schmid, Jim Winstead, Lars Torben Wilson, Rasmus Lerdorf, Andrei
Zmievski, y Jouni Ahto Editado por Rafael Martnez Publicado
24-03-2002 Copyright 1997, 1998, 1999, 2000, 2001, 2002 por por el
Grupo de documentacin de PHP Copyright Este manual es Copyright
1997, 1998, 1999, 2000, 2001, 2002 del Grupo de documentacin de
PHP. Los miembros de este grupo se encuentran listados en la
primera pgina de este manual. Este manual puede ser redistribuido
bajo los trminos de la "GNU General Public License" publicada por
la "Free Software Foundation"; tanto bajo la versin 2 de esta
licencia o bajo versiones posteriores.
4. Tabla de contenidos Prefacio
........................................................................................................................................................i
Sobre este
Manual...............................................................................................................................i
Sobre la
traduccin..............................................................................................................................i
I. Conceptos Bsicos
..................................................................................................................................1
1. Introduccin
...................................................................................................................................1
Qu es
PHP?.............................................................................................................................2
Qu se puede hacer con
PHP?..................................................................................................2
Corta historia de PHP
...............................................................................................................3
2. Instalacin
......................................................................................................................................4
Bajndose la ltima
versin......................................................................................................5
Instalacin en sistemas UNIX
..................................................................................................5
Instrucciones Rpidas de Instalacin (Versin Mdulo de Apache)
..............................5
Conguracin..................................................................................................................6
Mdulo del
Apache.........................................................................................................6
Mdulo fhttpd
.................................................................................................................6
CGI
version.....................................................................................................................6
Opciones de soporte para Base de
Datos........................................................................7
Adabas
D...............................................................................................................7
dBase
.....................................................................................................................7
lePro
....................................................................................................................7
mSQL
....................................................................................................................7
MySQL..................................................................................................................8
iODBC...................................................................................................................8
OpenLink
ODBC...................................................................................................8
Oracle
....................................................................................................................8
PostgreSQL
...........................................................................................................8
Solid
......................................................................................................................9
Sybase....................................................................................................................9
Sybase-CT
.............................................................................................................9
Velocis
...................................................................................................................9
Una librera a medida de ODBC
.........................................................................10
ODBC
Unicado.................................................................................................10
LDAP...................................................................................................................10
Otras opciones de
conguracin...................................................................................10
--with-mcrypt=DIR.............................................................................................11
--enable-sysvsem.................................................................................................11
--enable-sysvshm.................................................................................................11
--with-xml............................................................................................................11
--enable-maintainer-mode
...................................................................................11
--with-system-regex.............................................................................................11
--with-cong-le-path
.........................................................................................12
--with-exec-dir.....................................................................................................12
--enable-debug.....................................................................................................12
--enable-safe-mode..............................................................................................12
--enable-track-vars...............................................................................................12
iv
5.
--enable-magic-quotes.........................................................................................13
--enable-debugger................................................................................................13
--enable-discard-path...........................................................................................13
--enable-bcmath...................................................................................................13
--enable-force-cgi-redirect
..................................................................................13
--disable-short-tags..............................................................................................14
--enable-url-includes
...........................................................................................14
--disable-syntax-hl...............................................................................................14
CPPFLAGS y LDFLAGS
...................................................................................14
Construyendo................................................................................................................15
Probando
.......................................................................................................................15
Comprobando la velocidad
...........................................................................................15
Instalacin en sistemas Windows
95/98/NT...........................................................................15
Pasos Generales de Instalacin
.....................................................................................15
Windows 95/98/NT y PWS/IIS
3..................................................................................16
Windows NT e IIS 4
.....................................................................................................17
Windows 9x/NT y Apache
1.3.x...................................................................................18
Omni HTTPd 2.0b1 para Windows
..............................................................................18
Mdulos del
PHP..........................................................................................................18
Problemas?............................................................................................................................19
Lea las PMF
(FAQ).......................................................................................................19
Informes de
error...........................................................................................................19
Otros
problemas............................................................................................................19
3.
Conguracin...............................................................................................................................21
El archivo de
conguracin....................................................................................................22
Directivas Generales de
Conguracin.........................................................................22
Directivas de Conguracin de
Correo.........................................................................26
Directivas de Conguracin de Modo
Seguro..............................................................27
Directivas de Conguracin del
Debugger...................................................................27
Directivas de Carga de
Extensiones..............................................................................27
Directivas de Conguracin de
MySQL.......................................................................28
Directivas de Conguracin de mSQL
.........................................................................28
Directivas de Conguracin de Postgres
......................................................................28
SESAM Conguration
Directives.................................................................................29
Directivas de Conguracin de Sybase
........................................................................29
Directivas de Conguracin de
Sybase-CT..................................................................30
Directivas de Conguracin de
Informix......................................................................31
Directivas de Conguracin de Matemtica
BC...........................................................32
Directivas de Conguracin de Capacidades de los
Navegadores................................32 Directivas Unicadas
de Conguracin de
ODBC.......................................................32 4.
Seguridad......................................................................................................................................34
Binarios
CGI...........................................................................................................................35
Posibles ataques
............................................................................................................35
Caso 1: solamente se sirven cheros
publicos..............................................................36
Caso 2: usando
--enable-force-cgi-redirect...................................................................36
Caso 3: Usando doc_root or
user_dir............................................................................36
Caso 4: Analizador PHP fuera del arbol web.
..............................................................37
Modulo Apache
......................................................................................................................37
v
6. II. Referencia del
Lenguaje.....................................................................................................................39
5. Sintaxis
bsica..............................................................................................................................39
Saliendo de
HTML.................................................................................................................40
Separacin de instrucciones
...................................................................................................40
Comentarios............................................................................................................................40
6. Types
............................................................................................................................................42
Enteros....................................................................................................................................43
Nmeros en punto
otante......................................................................................................43
Cadenas...................................................................................................................................43
Conversin de
cadenas..................................................................................................45
Arrays
.....................................................................................................................................46
Arrays
unidimensionales...............................................................................................46
Arrays
Multidimensionales...........................................................................................47
Objetos....................................................................................................................................48
Inicializacin de
Objetos...............................................................................................49
Type
juggling..........................................................................................................................49
Forzado de
tipos............................................................................................................50
7.
Variables.......................................................................................................................................52
Conceptos
Bsicos..................................................................................................................53
Variables
predenidas.............................................................................................................54
Variables de
Apache......................................................................................................54
Variables de
entorno......................................................................................................56
Variables de
PHP...........................................................................................................56
Ambito de las variables
..........................................................................................................57
Variables
variables..................................................................................................................59
Variables externas a
PHP........................................................................................................60
Formularios HTML (GET y POST)
.............................................................................60
IMAGE SUBMIT variable
names.......................................................................61
Cookies HTTP
..............................................................................................................61
Variables de
entorno......................................................................................................62
Puntos en los nombres de variables de
entrada.............................................................62
Determinando los tipos de
variables.............................................................................63
8. Constantes
....................................................................................................................................64
9. Expresiones
..................................................................................................................................67
10. Operadores
.................................................................................................................................71
Operadores
Aritmticos..........................................................................................................72
Operadores de
Asignacin......................................................................................................72
Operadores Bit a
bit................................................................................................................72
Operadores de Comparacin
..................................................................................................73
Operador de
ejecucin............................................................................................................74
Operadores de
Incremento/decremento..................................................................................74
Operadores
Lgicos................................................................................................................75
Precedencia de
Operadores.....................................................................................................75
Operadores de Cadenas
..........................................................................................................76
11. Estructuras de
Control................................................................................................................78
if............................................................................................................................................79
else
.......................................................................................................................................79
elseif
...................................................................................................................................80
vi
7. Sintaxis Alternativa de Estructuras de
Control.......................................................................80
while
.....................................................................................................................................81
do..while.............................................................................................................................82
for..........................................................................................................................................83
foreach.................................................................................................................................84
break
.....................................................................................................................................86
continue...............................................................................................................................87
switch
...................................................................................................................................88
require()
..................................................................................................................................90
include()..................................................................................................................................91
require_once().........................................................................................................................94
include_once()
........................................................................................................................96
12. Funciones
...................................................................................................................................98
Funciones denidas por el usuario
.........................................................................................99
Parmetros de las funciones
...................................................................................................99
Pasar parmetros por
referencia....................................................................................99
Parmetros por defecto
...............................................................................................100
Lista de longitud variable de
parmetros....................................................................101
Devolver
valores...................................................................................................................101
old_function
....................................................................................................................102
Funciones
variable................................................................................................................102
13. Clases y
Objetos.......................................................................................................................104
class
...................................................................................................................................105
14. References
Explained...............................................................................................................108
What are
References.............................................................................................................109
What do
References..............................................................................................................109
What arent References
........................................................................................................109
Returning References
...........................................................................................................110
Unsetting
References............................................................................................................110
Spotting the Reference
.........................................................................................................110
global
References.....................................................................................................111
$this..........................................................................................................................111
III.
Caractersticas.................................................................................................................................112
15. Manejando
errores....................................................................................................................112
16. Creando imgenes
GIF.............................................................................................................114
17. Autenticacin HTTP con
PHP...............................................................................................116
18.
Cookies.....................................................................................................................................119
19. El envo de archivos
.................................................................................................................121
Envo de archivos con el mtodo POST
...............................................................................122
Errores comunes
...................................................................................................................122
Envo de ms de un
archivo..................................................................................................123
Soporte del mtodo PUT
......................................................................................................123
20. Usando archivos remotos
.........................................................................................................125
21. Manejando
conexiones.............................................................................................................128
22. Conexiones persistentes a bases de
datos.................................................................................130
23. Safe Mode
................................................................................................................................133
Functions restricted/disabled by safe
mode..........................................................................135
vii
8. IV. Referencia de las Funciones
...........................................................................................................139
I. Funciones especcas de
Apache................................................................................................139
apache_lookup_uri
...............................................................................................................140
apache_note
..........................................................................................................................140
getallheaders.........................................................................................................................140
virtual....................................................................................................................................141
II. Funciones de matrices
...............................................................................................................142
array......................................................................................................................................143
array_count_values...............................................................................................................143
array_ip...............................................................................................................................144
array_keys.............................................................................................................................144
array_merge..........................................................................................................................145
array_pad
..............................................................................................................................145
array_pop..............................................................................................................................146
array_push
............................................................................................................................146
array_reverse
........................................................................................................................147
array_shift.............................................................................................................................147
array_slice.............................................................................................................................148
array_splice...........................................................................................................................149
array_unshift.........................................................................................................................150
array_values..........................................................................................................................150
array_walk
............................................................................................................................151
arsort.....................................................................................................................................152
asort
......................................................................................................................................152
compact.................................................................................................................................153
count
.....................................................................................................................................154
current...................................................................................................................................154
each.......................................................................................................................................155
end
........................................................................................................................................156
extract
...................................................................................................................................156
in_array.................................................................................................................................158
key
........................................................................................................................................158
krsort.....................................................................................................................................158
ksort......................................................................................................................................159
list
.........................................................................................................................................159
next
.......................................................................................................................................160
pos.........................................................................................................................................160
prev.......................................................................................................................................161
rango.....................................................................................................................................161
reset.......................................................................................................................................161
rsort.......................................................................................................................................162
shufe
...................................................................................................................................162
sizeof.....................................................................................................................................163
sort........................................................................................................................................163
uasort
....................................................................................................................................163
uksort....................................................................................................................................163
usort......................................................................................................................................164
III. Funciones Ortogrcas
............................................................................................................166
viii
12.
curl_close..............................................................................................................................226
curl_version
..........................................................................................................................226
XIII. Funciones de pago
electrnico..............................................................................................227
cybercash_encr
.....................................................................................................................228
cybercash_decr
.....................................................................................................................228
cybercash_base64_encode....................................................................................................228
cybercash_base64_decode....................................................................................................228
XIV. Crdit Mutuel CyberMUT functions
....................................................................................229
cybermut_creerformulairecm
...............................................................................................230
cybermut_testmac.................................................................................................................230
cybermut_creerreponsecm....................................................................................................231
XV. Cyrus IMAP administration functions
...................................................................................233
cyrus_connect.......................................................................................................................234
cyrus_authenticate
................................................................................................................234
cyrus_bind
............................................................................................................................234
cyrus_unbind
........................................................................................................................234
cyrus_query
..........................................................................................................................235
cyrus_close
...........................................................................................................................235
XVI. Character type functions
.......................................................................................................236
ctype_alnum
.........................................................................................................................237
ctype_alpha...........................................................................................................................237
ctype_cntrl
............................................................................................................................237
ctype_digit............................................................................................................................237
ctype_lower
..........................................................................................................................237
ctype_graph
..........................................................................................................................238
ctype_print............................................................................................................................238
ctype_punct...........................................................................................................................238
ctype_space...........................................................................................................................238
ctype_upper
..........................................................................................................................239
ctype_xdigit..........................................................................................................................239
XVII. Funciones de la capa de abstraccion de bases de datos
(dbm-style)....................................240 dba_close
..............................................................................................................................242
dba_delete.............................................................................................................................242
dba_exists
.............................................................................................................................242
dba_fetch
..............................................................................................................................242
dba_rstkey
..........................................................................................................................243
dba_insert
.............................................................................................................................243
dba_nextkey..........................................................................................................................243
dba_popen.............................................................................................................................244
dba_open...............................................................................................................................244
dba_optimize
........................................................................................................................245
dba_replace...........................................................................................................................245
dba_sync...............................................................................................................................245
XVIII. Funciones de fecha y
hora..................................................................................................247
checkdate
..............................................................................................................................248
date
.......................................................................................................................................248
getdate...................................................................................................................................249
gettimeofday.........................................................................................................................250
xii