1. Manual de PHP Stig Sther Bakken Alexander Aulbach Egon
Schmid Jim Winstead Lars Torben Wilson Rasmus Lerdorf Zeev Suraski
Andrei Zmievski Jouni Ahto Editado por Rafael Martnez
2. Manual de PHP por Stig Sther Bakken, Alexander Aulbach, Egon
Schmid, Jim Winstead, Lars Torben Wilson, Rasmus Lerdorf, Zeev
Suraski, Andrei Zmievski, y Jouni Ahto Editado por Rafael Martnez
Publicado 15-04-2001 Copyright 1997, 1998, 1999, 2000, 2001 por por
el Grupo de documentacin de PHP Copyright Este manual es Copyright
1997, 1998, 1999, 2000, 2001 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. Tabla de contenidos
Prefacio..................................................................................................................................................................................41
Sobre este
Manual.........................................................................................................................................................41
Sobre la traduccin
.......................................................................................................................................................41
I. Conceptos Bsicos
.............................................................................................................................................................43
1.
Introduccin..............................................................................................................................................................43
Qu es
PHP?........................................................................................................................................................45
Qu se puede hacer con
PHP?.............................................................................................................................45
Corta historia de
PHP..........................................................................................................................................45
2.
Instalacin.................................................................................................................................................................47
Bajndose la ltima versin
................................................................................................................................49
Instalacin en sistemas
UNIX.............................................................................................................................49
Instrucciones Rpidas de Instalacin (Versin Mdulo de Apache)
.........................................................49
Conguracin
............................................................................................................................................49
Mdulo del
Apache....................................................................................................................................50
Mdulo
fhttpd............................................................................................................................................50
CGI
version................................................................................................................................................50
Opciones de soporte para Base de
Datos...................................................................................................50
Adabas
D..........................................................................................................................................50
dBase................................................................................................................................................50
lePro...............................................................................................................................................50
mSQL...............................................................................................................................................51
MySQL.............................................................................................................................................51
iODBC
.............................................................................................................................................51
OpenLink ODBC
.............................................................................................................................51
Oracle...............................................................................................................................................51
PostgreSQL
......................................................................................................................................52
Solid
.................................................................................................................................................52
Sybase
..............................................................................................................................................52
Sybase-CT........................................................................................................................................52
Velocis..............................................................................................................................................52
Una librera a medida de
ODBC......................................................................................................52
ODBC
Unicado..............................................................................................................................53
LDAP
...............................................................................................................................................53
Otras opciones de
conguracin................................................................................................................53
with-mcrypt=DIR
..........................................................................................................................53
enable-sysvsem
..............................................................................................................................53
enable-sysvshm
..............................................................................................................................53
with-xml.........................................................................................................................................53
enable-maintainer-mode.................................................................................................................54
with-system-regex..........................................................................................................................54
with-cong-le-path.......................................................................................................................54
with-exec-dir
..................................................................................................................................54
enable-debug
..................................................................................................................................54
enable-safe-mode
...........................................................................................................................54
enable-track-vars............................................................................................................................55
enable-magic-quotes
......................................................................................................................55
enable-debugger
.............................................................................................................................55
enable-discard-path
........................................................................................................................55
enable-bcmath
................................................................................................................................55
enable-force-cgi-redirect................................................................................................................55
disable-short-tags
...........................................................................................................................56
enable-url-includes.........................................................................................................................56
disable-syntax-hl
............................................................................................................................56
5
4. CPPFLAGS y LDFLAGS
................................................................................................................56
Construyendo.............................................................................................................................................56
Probando....................................................................................................................................................56
Comprobando la
velocidad........................................................................................................................56
Instalacin en sistemas Windows 95/98/NT
.......................................................................................................57
Pasos Generales de
Instalacin..................................................................................................................57
Windows 95/98/NT y PWS/IIS 3
..............................................................................................................57
Windows NT e IIS 4
..................................................................................................................................58
Windows 9x/NT y Apache
1.3.x................................................................................................................59
Omni HTTPd 2.0b1 para Windows
...........................................................................................................59
Mdulos del
PHP.......................................................................................................................................59
Problemas?
........................................................................................................................................................60
Lea las PMF
(FAQ)....................................................................................................................................60
Informes de error
.......................................................................................................................................60
Otros
problemas.........................................................................................................................................60
3.
Conguracin............................................................................................................................................................61
El archivo de
conguracin.................................................................................................................................63
Directivas Generales de Conguracin
.....................................................................................................63
Directivas de Conguracin de
Correo......................................................................................................66
Directivas de Conguracin de Modo
Seguro...........................................................................................66
Directivas de Conguracin del
Debugger................................................................................................67
Directivas de Carga de
Extensiones...........................................................................................................67
Directivas de Conguracin de
MySQL....................................................................................................67
Directivas de Conguracin de
mSQL......................................................................................................67
Directivas de Conguracin de
Postgres...................................................................................................68
SESAM Conguration Directives
.............................................................................................................68
Directivas de Conguracin de Sybase
.....................................................................................................68
Directivas de Conguracin de
Sybase-CT...............................................................................................69
Directivas de Conguracin de Informix
..................................................................................................69
Directivas de Conguracin de Matemtica BC
.......................................................................................70
Directivas de Conguracin de Capacidades de los Navegadores
............................................................70
Directivas Unicadas de Conguracin de ODBC
...................................................................................70
4. Seguridad
..................................................................................................................................................................73
Binarios CGI
.......................................................................................................................................................75
Posibles
ataques.........................................................................................................................................75
Caso 1: solamente se sirven cheros
publicos...........................................................................................75
Caso 2: usando
enable-force-cgi-redirect................................................................................................76
Caso 3: Usando doc_root or user_dir
........................................................................................................76
Caso 4: Analizador PHP fuera del arbol web.
...........................................................................................76
Modulo
Apache...................................................................................................................................................77
II. Referencia del
Lenguaje..................................................................................................................................................79
5. Sintaxis
bsica...........................................................................................................................................................79
Saliendo de
HTML..............................................................................................................................................81
Separacin de instrucciones
................................................................................................................................81
Comentarios
........................................................................................................................................................81
6.
Types.........................................................................................................................................................................83
Enteros.................................................................................................................................................................85
Nmeros en punto otante
..................................................................................................................................85
Cadenas
...............................................................................................................................................................85
Conversin de
cadenas...............................................................................................................................87
Arrays..................................................................................................................................................................87
Arrays unidimensionales
...........................................................................................................................87
Arrays
Multidimensionales........................................................................................................................88
Objetos
................................................................................................................................................................89
Inicializacin de Objetos
...........................................................................................................................89
6
5. Type
juggling.......................................................................................................................................................90
Forzado de
tipos.........................................................................................................................................90
7.
Variables....................................................................................................................................................................93
Conceptos
Bsicos...............................................................................................................................................95
Variables predenidas
.........................................................................................................................................95
Variables de Apache
..................................................................................................................................96
Variables de entorno
..................................................................................................................................97
Variables de PHP
.......................................................................................................................................97
Ambito de las variables
.......................................................................................................................................98
Variables
variables.............................................................................................................................................100
Variables externas a
PHP...................................................................................................................................100
Formularios HTML (GET y POST)
........................................................................................................100
IMAGE SUBMIT variable
names..................................................................................................101
Cookies HTTP
.........................................................................................................................................101
Variables de entorno
................................................................................................................................102
Puntos en los nombres de variables de
entrada........................................................................................102
Determinando los tipos de
variables........................................................................................................102
8.
Constantes...............................................................................................................................................................103
9.
Expresiones.............................................................................................................................................................107
10.
Operadores............................................................................................................................................................111
Operadores
Aritmticos.....................................................................................................................................113
Operadores de Asignacin
................................................................................................................................113
Operadores Bit a
bit...........................................................................................................................................113
Operadores de Comparacin
.............................................................................................................................114
Operador de
ejecucin.......................................................................................................................................114
Operadores de
Incremento/decremento.............................................................................................................115
Operadores
Lgicos...........................................................................................................................................115
Precedencia de Operadores
...............................................................................................................................115
Operadores de Cadenas
.....................................................................................................................................116
11. Estructuras de
Control...........................................................................................................................................117
if.......................................................................................................................................................................119
else
..................................................................................................................................................................119
elseif..............................................................................................................................................................119
Sintaxis Alternativa de Estructuras de Control
.................................................................................................120
while
................................................................................................................................................................120
do..while
.......................................................................................................................................................121
for
....................................................................................................................................................................122
foreach............................................................................................................................................................123
break
................................................................................................................................................................124
continue..........................................................................................................................................................125
switch..............................................................................................................................................................125
require()............................................................................................................................................................127
include()............................................................................................................................................................128
require_once()..................................................................................................................................................131
include_once()..................................................................................................................................................133
12.
Funciones..............................................................................................................................................................135
Funciones denidas por el
usuario....................................................................................................................137
Parmetros de las funciones
..............................................................................................................................137
Pasar parmetros por
referencia...............................................................................................................137
Parmetros por defecto
............................................................................................................................138
Lista de longitud variable de
parmetros.................................................................................................139
Devolver
valores................................................................................................................................................139
old_function.................................................................................................................................................139
Funciones
variable.............................................................................................................................................139
13. Clases y
Objetos....................................................................................................................................................141
class
................................................................................................................................................................143
7
6. 14. References
Explained............................................................................................................................................145
What are
References..........................................................................................................................................147
What do References
..........................................................................................................................................147
What arent References
.....................................................................................................................................147
Returning References
........................................................................................................................................147
Unsetting
References.........................................................................................................................................148
Spotting the Reference
......................................................................................................................................148
global
References..................................................................................................................................148
$this.......................................................................................................................................................148
III.
Caractersticas..............................................................................................................................................................149
15. Manejando errores
................................................................................................................................................149
16. Creando imgenes GIF
.........................................................................................................................................153
17. Autenticacin HTTP con
PHP............................................................................................................................157
18. Cookies
.................................................................................................................................................................161
19. El envo de
archivos..............................................................................................................................................165
Envo de archivos con el mtodo
POST............................................................................................................167
Errores
comunes................................................................................................................................................167
Envo de ms de un
archivo...............................................................................................................................167
Soporte del mtodo
PUT...................................................................................................................................168
20. Usando archivos
remotos......................................................................................................................................171
21. Manejando
conexiones..........................................................................................................................................175
22. Conexiones persistentes a bases de datos
.............................................................................................................179
IV. Referencia de las Funciones
........................................................................................................................................183
I. Funciones especcas de Apache
............................................................................................................................183
apache_lookup_uri
............................................................................................................................................185
apache_note.......................................................................................................................................................185
getallheaders......................................................................................................................................................185
virtual
................................................................................................................................................................186
II. Funciones de
matrices............................................................................................................................................187
array...................................................................................................................................................................189
array_count_values............................................................................................................................................189
array_ip
...........................................................................................................................................................189
array_keys
.........................................................................................................................................................190
array_merge.......................................................................................................................................................190
array_pad...........................................................................................................................................................191
array_pop...........................................................................................................................................................191
array_push
.........................................................................................................................................................192
array_reverse
.....................................................................................................................................................192
array_shift..........................................................................................................................................................193
array_slice
.........................................................................................................................................................193
array_splice
.......................................................................................................................................................194
array_unshift......................................................................................................................................................195
array_values.......................................................................................................................................................195
array_walk.........................................................................................................................................................196
arsort..................................................................................................................................................................196
asort
...................................................................................................................................................................197
compact
.............................................................................................................................................................197
count..................................................................................................................................................................198
current................................................................................................................................................................198
each....................................................................................................................................................................199
end
.....................................................................................................................................................................200
extract................................................................................................................................................................200
in_array..............................................................................................................................................................201
key
.....................................................................................................................................................................201
krsort..................................................................................................................................................................202
8
7.
ksort...................................................................................................................................................................202
list......................................................................................................................................................................202
next....................................................................................................................................................................203
pos
.....................................................................................................................................................................203
prev....................................................................................................................................................................204
rango..................................................................................................................................................................204
reset
...................................................................................................................................................................204
rsort....................................................................................................................................................................204
shufe
................................................................................................................................................................205
sizeof
.................................................................................................................................................................205
sort.....................................................................................................................................................................205
uasort
.................................................................................................................................................................206
uksort.................................................................................................................................................................206
usort...................................................................................................................................................................207
III. Funciones Ortogrcas
.........................................................................................................................................209
aspell_new.........................................................................................................................................................211
aspell_check
......................................................................................................................................................211
aspell_check-raw...............................................................................................................................................211
aspell_suggest....................................................................................................................................................212
IV. Funciones matemticas de precisin
arbitraria.....................................................................................................213
bcadd
.................................................................................................................................................................215
bccomp
..............................................................................................................................................................215
bcdiv
..................................................................................................................................................................215
bcmod................................................................................................................................................................215
bcmul.................................................................................................................................................................215
bcpow
................................................................................................................................................................216
bcscale
...............................................................................................................................................................216
bcsqrt
.................................................................................................................................................................216
bcsub..................................................................................................................................................................216
V. Bzip2 Compression Functions
...............................................................................................................................217
bzclose...............................................................................................................................................................219
bzcompress........................................................................................................................................................219
bzdecompress
....................................................................................................................................................219
bzerrno...............................................................................................................................................................220
bzerror
...............................................................................................................................................................220
bzerrstr...............................................................................................................................................................220
bzush
...............................................................................................................................................................221
bzopen
...............................................................................................................................................................221
bzread
................................................................................................................................................................221
bzwrite...............................................................................................................................................................222
VI. Funciones de calendario
.......................................................................................................................................223
JDToGregorian
..................................................................................................................................................225
GregorianToJD
..................................................................................................................................................225
JDToJulian.........................................................................................................................................................225
JulianToJD.........................................................................................................................................................225
JDToJewish........................................................................................................................................................226
JewishToJD........................................................................................................................................................226
JDToFrench
.......................................................................................................................................................226
FrenchToJD
.......................................................................................................................................................226
JDMonthName
..................................................................................................................................................226
JDDayOfWeek...................................................................................................................................................227
easter_date.........................................................................................................................................................227
easter_days
........................................................................................................................................................228
VII. CCVS API Functions
..........................................................................................................................................229
231 VIII. soporte de las funciones COM para
Windows...................................................................................................233
9