Logo Studenta

PHP - Manual de PHP

¡Este material tiene más páginas!

Vista previa del material en texto

Manual de PHP
Stig Sæther Bakken
Alexander Aulbach
Egon Schmid
Jim Winstead
Lars Torben Wilson
Rasmus Lerdorf
Zeev Suraski
Andrei Zmievski
Jouni Ahto
Editado por
Rafael Martínez
Manual de PHP
por Stig Sæther Bakken, Alexander Aulbach, Egon Schmid, Jim Winstead, Lars Torben Wilson, Rasmus Lerdorf, Zeev Suraski,
Andrei Zmievski, y Jouni Ahto
Editado por Rafael Martínez
Publicado 15-04-2001
Copyright© 1997, 1998, 1999, 2000, 2001 por por el Grupo de documentación de PHP
Copyright
Este manual es© Copyright 1997, 1998, 1999, 2000, 2001 del Grupo de documentación de PHP. Los miembros de este grupo se
encuentran listados en laprimera página de este manual.
Este manual puede ser redistribuido bajo los términos de la "GNU General Public License"publicada por la "Free Software
Foundation"; tanto bajo la versión 2 de esta licencia o bajo versiones posteriores.
Tabla de contenidos
Prefacio..................................................................................................................................................................................41
Sobre este Manual.........................................................................................................................................................41
Sobre la traducción.......................................................................................................................................................41
I. Conceptos Básicos.............................................................................................................................................................43
1. Introducción..............................................................................................................................................................43
Qué es PHP?........................................................................................................................................................45
Qué se puede hacer con PHP?.............................................................................................................................45
Corta historia de PHP..........................................................................................................................................45
2. Instalación.................................................................................................................................................................47
Bajándose la última versión................................................................................................................................49
Instalación en sistemas UNIX.............................................................................................................................49
Instrucciones Rápidas de Instalación (Versión Módulo de Apache).........................................................49
Configuración............................................................................................................................................49
Módulo del Apache....................................................................................................................................50
Módulo fhttpd............................................................................................................................................50
CGI version................................................................................................................................................50
Opciones de soporte para Base de Datos...................................................................................................50
Adabas D..........................................................................................................................................50
dBase................................................................................................................................................50
filePro...............................................................................................................................................50
mSQL...............................................................................................................................................51
MySQL.............................................................................................................................................51
iODBC .............................................................................................................................................51
OpenLink ODBC.............................................................................................................................51
Oracle...............................................................................................................................................51
PostgreSQL......................................................................................................................................52
Solid.................................................................................................................................................52
Sybase..............................................................................................................................................52
Sybase-CT........................................................................................................................................52
Velocis..............................................................................................................................................52
Una librería a medida de ODBC......................................................................................................52
ODBC Unificado..............................................................................................................................53
LDAP ...............................................................................................................................................53
Otras opciones de configuración................................................................................................................53
–with-mcrypt=DIR ..........................................................................................................................53
–enable-sysvsem..............................................................................................................................53
–enable-sysvshm..............................................................................................................................53
–with-xml.........................................................................................................................................53
–enable-maintainer-mode.................................................................................................................54
–with-system-regex..........................................................................................................................54
–with-config-file-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
CPPFLAGS y LDFLAGS................................................................................................................56
Construyendo.............................................................................................................................................56
Probando....................................................................................................................................................56
Comprobando la velocidad........................................................................................................................56
Instalación en sistemas Windows 95/98/NT.......................................................................................................57
Pasos Generales de Instalación..................................................................................................................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
Módulos del PHP.......................................................................................................................................59
¿Problemas?........................................................................................................................................................60
Lea las PMF (FAQ)....................................................................................................................................60
Informes de error.......................................................................................................................................60
Otros problemas.........................................................................................................................................60
3. Configuración............................................................................................................................................................61
El archivo de configuración.................................................................................................................................63
Directivas Generales de Configuración.....................................................................................................63
Directivas de Configuración de Correo......................................................................................................66
Directivas de Configuración de Modo Seguro...........................................................................................66
Directivas de Configuración del Debugger................................................................................................67
Directivas de Carga de Extensiones...........................................................................................................67
Directivas de Configuración de MySQL....................................................................................................67
Directivas de Configuración de mSQL......................................................................................................67
Directivas de Configuración de Postgres...................................................................................................68
SESAM Configuration Directives.............................................................................................................68
Directivas de Configuración de Sybase.....................................................................................................68
Directivas de Configuración de Sybase-CT...............................................................................................69
Directivas de Configuración de Informix..................................................................................................69
Directivas de Configuración de Matemática BC.......................................................................................70
Directivas de Configuración de Capacidades de los Navegadores............................................................70
Directivas Unificadas de Configuración de ODBC...................................................................................70
4. Seguridad..................................................................................................................................................................73
Binarios CGI.......................................................................................................................................................75
Posibles ataques.........................................................................................................................................75
Caso 1: solamente se sirven ficheros 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 básica...........................................................................................................................................................79
Saliendo de HTML..............................................................................................................................................81
Separación de instrucciones................................................................................................................................81
Comentarios........................................................................................................................................................81
6. Types.........................................................................................................................................................................83
Enteros.................................................................................................................................................................85
Números en punto flotante..................................................................................................................................85Cadenas...............................................................................................................................................................85
Conversión de cadenas...............................................................................................................................87
Arrays..................................................................................................................................................................87
Arrays unidimensionales...........................................................................................................................87
Arrays Multidimensionales........................................................................................................................88
Objetos................................................................................................................................................................89
Inicialización de Objetos...........................................................................................................................89
6
Type juggling.......................................................................................................................................................90
Forzado de tipos.........................................................................................................................................90
7. Variables....................................................................................................................................................................93
Conceptos Básicos...............................................................................................................................................95
Variables predefinidas.........................................................................................................................................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 Aritméticos.....................................................................................................................................113
Operadores de Asignación................................................................................................................................113
Operadores Bit a bit...........................................................................................................................................113
Operadores de Comparación.............................................................................................................................114
Operador de ejecución.......................................................................................................................................114
Operadores de Incremento/decremento.............................................................................................................115
Operadores Lógicos...........................................................................................................................................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()..................................................................................................................................................131include_once()..................................................................................................................................................133
12. Funciones..............................................................................................................................................................135
Funciones definidas por el usuario....................................................................................................................137
Parámetros de las funciones..............................................................................................................................137
Pasar parámetros por referencia...............................................................................................................137
Parámetros por defecto............................................................................................................................138
Lista de longitud variable de parámetros.................................................................................................139
Devolver valores................................................................................................................................................139
old_function .................................................................................................................................................139
Funciones variable.............................................................................................................................................139
13. Clases y Objetos....................................................................................................................................................141
class ................................................................................................................................................................143
7
14. References Explained............................................................................................................................................145
What are References..........................................................................................................................................147
What do References..........................................................................................................................................147
What aren’t References.....................................................................................................................................147
Returning References........................................................................................................................................147
Unsetting References.........................................................................................................................................148
Spotting the Reference......................................................................................................................................148
global References..................................................................................................................................148
$this .......................................................................................................................................................148
III. Características ..............................................................................................................................................................149
15. Manejando errores................................................................................................................................................149
16. Creando imágenes GIF.........................................................................................................................................153
17. Autentificación HTTP con PHP............................................................................................................................157
18. Cookies.................................................................................................................................................................161
19. El envío de archivos..............................................................................................................................................165
Envío de archivos con el método POST............................................................................................................167
Errores comunes................................................................................................................................................167
Envío de más de un archivo...............................................................................................................................167
Soporte del método 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 específicas 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_flip...........................................................................................................................................................189
array_keys.........................................................................................................................................................190
array_merge.......................................................................................................................................................190
array_pad...........................................................................................................................................................191
array_pop...........................................................................................................................................................191
array_push.........................................................................................................................................................192
array_reverse.....................................................................................................................................................192array_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
ksort...................................................................................................................................................................202
list ......................................................................................................................................................................202
next....................................................................................................................................................................203
pos.....................................................................................................................................................................203
prev....................................................................................................................................................................204
rango..................................................................................................................................................................204
reset...................................................................................................................................................................204
rsort....................................................................................................................................................................204
shuffle................................................................................................................................................................205
sizeof.................................................................................................................................................................205
sort.....................................................................................................................................................................205
uasort.................................................................................................................................................................206
uksort.................................................................................................................................................................206
usort...................................................................................................................................................................207
III. Funciones Ortográficas.........................................................................................................................................209
aspell_new.........................................................................................................................................................211
aspell_check......................................................................................................................................................211
aspell_check-raw...............................................................................................................................................211
aspell_suggest....................................................................................................................................................212
IV. Funciones matemáticas de precisión 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...............................................................................................................................................................219bzcompress........................................................................................................................................................219
bzdecompress....................................................................................................................................................219
bzerrno...............................................................................................................................................................220
bzerror...............................................................................................................................................................220
bzerrstr...............................................................................................................................................................220
bzflush...............................................................................................................................................................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
com_load...........................................................................................................................................................235
com_invoke.......................................................................................................................................................235
com_propget......................................................................................................................................................235
com_get.............................................................................................................................................................235
com_propput......................................................................................................................................................235
com_propset......................................................................................................................................................235
com_set..............................................................................................................................................................235
IX. Funciones de Clases/Objectos..............................................................................................................................237
get_class_methods.............................................................................................................................................239
get_class_vars....................................................................................................................................................239
get_object_vars..................................................................................................................................................239
method_exists....................................................................................................................................................239
X. Funciones de ClibPDF...........................................................................................................................................241
cpdf_global_set_document_limits....................................................................................................................245
cpdf_set_creator................................................................................................................................................245
cpdf_set_title.....................................................................................................................................................245
cpdf_set_subject................................................................................................................................................245
cpdf_set_keywords............................................................................................................................................245
cpdf_open..........................................................................................................................................................246
cpdf_close..........................................................................................................................................................246
cpdf_page_init...................................................................................................................................................246
cpdf_finalize_page............................................................................................................................................246
cpdf_finalize......................................................................................................................................................247
cpdf_output_buffer............................................................................................................................................247
cpdf_save_to_file...............................................................................................................................................247cpdf_set_current_page......................................................................................................................................247
cpdf_begin_text.................................................................................................................................................248
cpdf_end_text....................................................................................................................................................248
cpdf_show.........................................................................................................................................................248
cpdf_show_xy...................................................................................................................................................248
cpdf_text............................................................................................................................................................249
cpdf_set_font.....................................................................................................................................................249
cpdf_set_leading................................................................................................................................................249
cpdf_set_text_rendering....................................................................................................................................250
cpdf_set_horiz_scaling......................................................................................................................................250
cpdf_set_text_rise..............................................................................................................................................250
cpdf_set_text_matrix.........................................................................................................................................250
cpdf_set_text_pos..............................................................................................................................................250
cpdf_set_char_spacing......................................................................................................................................251
cpdf_set_word_spacing.....................................................................................................................................251
cpdf_continue_text............................................................................................................................................251
cpdf_stringwidth................................................................................................................................................251
cpdf_save...........................................................................................................................................................251
cpdf_restore.......................................................................................................................................................252
cpdf_translate....................................................................................................................................................252
cpdf_scale..........................................................................................................................................................252
cpdf_rotate.........................................................................................................................................................252
cpdf_setflat........................................................................................................................................................253
cpdf_setlinejoin.................................................................................................................................................253
cpdf_setlinecap..................................................................................................................................................253
cpdf_setmiterlimit.............................................................................................................................................253
cpdf_setlinewidth..............................................................................................................................................253
cpdf_setdash......................................................................................................................................................254
cpdf_moveto......................................................................................................................................................254
cpdf_rmoveto.....................................................................................................................................................254
cpdf_curveto......................................................................................................................................................254
10
cpdf_lineto.........................................................................................................................................................255
cpdf_rlineto.......................................................................................................................................................255
cpdf_circle.........................................................................................................................................................255
cpdf_arc.............................................................................................................................................................255
cpdf_rect............................................................................................................................................................256
cpdf_closepath...................................................................................................................................................256
cpdf_stroke........................................................................................................................................................256
cpdf_closepath_stroke.......................................................................................................................................256
cpdf_fill .............................................................................................................................................................256
cpdf_fill_stroke..................................................................................................................................................257
cpdf_closepath_fill_stroke.................................................................................................................................257
cpdf_clip............................................................................................................................................................257
cpdf_setgray_fill................................................................................................................................................257
cpdf_setgray_stroke...........................................................................................................................................258
cpdf_setgray......................................................................................................................................................258
cpdf_setrgbcolor_fill.........................................................................................................................................258
cpdf_setrgbcolor_stroke....................................................................................................................................258
cpdf_setrgbcolor................................................................................................................................................258cpdf_add_outline...............................................................................................................................................259
cpdf_set_page_animation..................................................................................................................................259
cpdf_import_jpeg..............................................................................................................................................260
cpdf_place_inline_image..................................................................................................................................260
cpdf_add_annotation.........................................................................................................................................260
XI. CURL, Client URL Library Functions.................................................................................................................261
curl_init .............................................................................................................................................................263
curl_setopt.........................................................................................................................................................263
curl_exec...........................................................................................................................................................265
curl_close..........................................................................................................................................................265
curl_version.......................................................................................................................................................265
XII. Funciones de pago electrónico............................................................................................................................267
cybercash_encr..................................................................................................................................................269
cybercash_decr..................................................................................................................................................269
cybercash_base64_encode.................................................................................................................................269
cybercash_base64_decode.................................................................................................................................269
XIII. Character type functions....................................................................................................................................271
ctype_alnum......................................................................................................................................................273
ctype_alpha........................................................................................................................................................273
ctype_cntrl.........................................................................................................................................................273
ctype_digit.........................................................................................................................................................273
ctype_lower.......................................................................................................................................................273
ctype_graph.......................................................................................................................................................273
ctype_print.........................................................................................................................................................273
ctype_punct.......................................................................................................................................................274
ctype_space.......................................................................................................................................................274
ctype_upper.......................................................................................................................................................274
ctype_xdigit.......................................................................................................................................................274
XIV. Funciones de la capa de abstraccion de bases de datos (dbm-style)..................................................................275
dba_close...........................................................................................................................................................277
dba_delete..........................................................................................................................................................277
dba_exists..........................................................................................................................................................277
dba_fetch...........................................................................................................................................................277
dba_firstkey.......................................................................................................................................................278
dba_insert..........................................................................................................................................................278
dba_nextkey.......................................................................................................................................................278
dba_popen.........................................................................................................................................................278
dba_open...........................................................................................................................................................279
11
dba_optimize.....................................................................................................................................................279
dba_replace........................................................................................................................................................279
dba_sync............................................................................................................................................................280
XV. Funciones de fecha y hora...................................................................................................................................281
checkdate...........................................................................................................................................................283
date....................................................................................................................................................................283
getdate...............................................................................................................................................................284
gettimeofday......................................................................................................................................................284
gmdate...............................................................................................................................................................285
gmmktime..........................................................................................................................................................285
gmstrftime.........................................................................................................................................................285microtime..........................................................................................................................................................286
mktime...............................................................................................................................................................286
strftime..............................................................................................................................................................287
time....................................................................................................................................................................288
XVI. Funciones para dBase........................................................................................................................................289
dbase_create......................................................................................................................................................291
dbase_open........................................................................................................................................................291
dbase_close........................................................................................................................................................292
dbase_pack........................................................................................................................................................292
dbase_add_record..............................................................................................................................................292
dbase_replace_record........................................................................................................................................292
dbase_delete_record..........................................................................................................................................292
dbase_get_record...............................................................................................................................................293
dbase_get_record_with_names.........................................................................................................................293
dbase_numfields................................................................................................................................................293
dbase_numrecords.............................................................................................................................................293
XVII. Funciones dbm..................................................................................................................................................295
dbmopen............................................................................................................................................................297
dbmclose............................................................................................................................................................297
dbmexists...........................................................................................................................................................297
dbmfetch............................................................................................................................................................297
dbminsert...........................................................................................................................................................297
dbmreplace........................................................................................................................................................298
dbmdelete..........................................................................................................................................................298
dbmfirstkey........................................................................................................................................................298
dbmnextkey.......................................................................................................................................................298
dblist..................................................................................................................................................................299
XVIII. dbx functions...................................................................................................................................................301
dbx_close...........................................................................................................................................................303
dbx_connect......................................................................................................................................................303
dbx_error...........................................................................................................................................................304
dbx_query..........................................................................................................................................................304
dbx_sort.............................................................................................................................................................306
dbx_cmp_asc.....................................................................................................................................................306
dbx_cmp_desc...................................................................................................................................................307
XIX. Funciones con directorios..................................................................................................................................309
chdir...................................................................................................................................................................311
dir ......................................................................................................................................................................311
closedir..............................................................................................................................................................311
opendir...............................................................................................................................................................311
readdir................................................................................................................................................................311
rewinddir...........................................................................................................................................................312
XX. Funciones de DOM XML...................................................................................................................................313
xmldoc...............................................................................................................................................................315
xmldocfile..........................................................................................................................................................315
12
xmltree...............................................................................................................................................................315
XXI. Error Handling and Logging Functions.............................................................................................................317
error_log............................................................................................................................................................319
error_reporting..................................................................................................................................................320restore_error_handler........................................................................................................................................320
set_error_handler...............................................................................................................................................320
trigger_error......................................................................................................................................................322
user_error..........................................................................................................................................................323
XXII. Funciones filePro..............................................................................................................................................325
filepro ................................................................................................................................................................327
filepro_fieldname...............................................................................................................................................327
filepro_fieldtype................................................................................................................................................327
filepro_fieldwidth..............................................................................................................................................327
filepro_retrieve..................................................................................................................................................327
filepro_fieldcount..............................................................................................................................................327
filepro_rowcount...............................................................................................................................................328
XXIII. Funciones del sistema de ficheros...................................................................................................................329
basename...........................................................................................................................................................331
chgrp..................................................................................................................................................................331
chmod................................................................................................................................................................331
chown................................................................................................................................................................332
clearstatcache....................................................................................................................................................332
copy...................................................................................................................................................................332
delete.................................................................................................................................................................333
dirname..............................................................................................................................................................333
diskfreespace.....................................................................................................................................................333
fclose.................................................................................................................................................................333
feof ....................................................................................................................................................................334
fgetc...................................................................................................................................................................334
fgetcsv...............................................................................................................................................................334
fgets...................................................................................................................................................................335
fgetss..................................................................................................................................................................335
file......................................................................................................................................................................336
file_exists...........................................................................................................................................................336
fileatime.............................................................................................................................................................336
filectime.............................................................................................................................................................336
filegroup.............................................................................................................................................................337
fileinode.............................................................................................................................................................337
filemtime............................................................................................................................................................337
fileowner............................................................................................................................................................337
fileperms............................................................................................................................................................337
filesize................................................................................................................................................................338
filetype...............................................................................................................................................................338
flock...................................................................................................................................................................338
fopen..................................................................................................................................................................339
fpassthru............................................................................................................................................................340
fputs...................................................................................................................................................................340
fread...................................................................................................................................................................340
fseek..................................................................................................................................................................340
ftell ....................................................................................................................................................................341
fwrite .................................................................................................................................................................341
set_file_buffer....................................................................................................................................................341

Continuar navegando

Materiales relacionados