Programación en en PHP a través de ej ejemplos
1
Programación en PHP a través de ejemplos Apuntes de la asignatura “Programación para Internet”, Ingeniería Técnica en Informtica de !estión
Manuel Palomo Duarte Departamento de Lenguajes Lenguajes y Sistemas Informáticos Universidad de Cádiz Ildefonso Montero Pérez Departamento de Lenguajes Lenguajes y Sistemas Informáticos Universidad de Sevilla Esta obra está protegida bajo una licencia Creative Commons Creative Commons Reconocimiento-CompartirIgual !" Espa#a $ttp%&&creativecommons!org&licenses&b'-sa&!"&es&
Programación en en PHP a través de ej ejemplos
"
1 Introducción El lenguaje P(P )cu'o nombre es acr*nimo de P(P% (iperte+t Preprocessor, es un lenguaje interpretado con una sinta+is similar a la de C o ./0/! /un1ue el lenguaje se puede usar para realizar cual1uier tipo de programa2 es en la generaci*n dinámica de páginas 3eb donde $a alcanzado su má+ima popularidad! En concreto2 suele incluirse incrustado en páginas (4M5 )o 6(4M5,2 siendo el servidor 3eb el encargado de ejecutarlo! /lgunas de las caracter7sticas de su enorme popularidad son% ●
Es un lenguaje libre! Puede descargarse de $ttp%&&333!p$p!net $ttp%&&333!p$p!net!!
●
Está disponible para muc$os sistemas )89:&5inu+2 ;indo3s2 :9I62 etc,!
●
4iene una e+tensa e+tensa document documentaci aci*n *n oficial oficial en varios varios idiomas idiomas )disponi )disponible ble librement librementee en $ttp%&&333!p$p!net,! $ttp%&&333!p$p!net ,!
●
E+isten multitud de e+tensiones% para conectar con bases de datos2 para manejo de soc
●
/l ejecutarse en el servidor2 los programas P(P lo pueden usar todo tipo de má1uinas con todo tipo de sistemas operativos!
●
En caso de 1ue un cliente falle )por error $ard3are2 virus2 etc, se puede seguir usando el sistema desde otro cual1uiera 1ue tenga un navegador 3eb con cone+i*n al servidor!
Este documento ense#a a manejar P(P a personas con conocimientos básicos de programaci*n! Para realizar programas son necesarios algunas nociones de (4M5 )o 6(4M5,2 pero se puede ir aprendiendo sobre la marc$a con los ejemplos!
Programación en en PHP a través de ej ejemplos
#
2 Inclusión de código PHP en una página HTML Para incluir c*digo P(P basta con precederlo de la eti1ueta >?p$p2 ' cerrarlo con ?@! Ai el servidor 3eb está correctamente configurado2 detectará c*digo P(P '2 en vez de proporcionarle el contenido de la págin páginaa direct directame amente nte al client clientee )lo 1ue signi signific ficar7 ar7aa 1ue recibi recibir7a r7a el c*digo c*digo fuent fuentee del programa,2 programa, 2 ejecuta el programa p rograma ' devuelve su resultado resulta do al navegador! /s7 pues2 el es1uema de una petici*n ser7a como sigue%
Programación en en PHP a través de ej ejemplos
$
3 Configuración del entorno de trabajo 3.1 Configuración del seridor
5os pasos para configurar un servidor 3eb con soporte para P(P en un sistema 89:&5inu+ son los siguientes% ●
Instalar el sistema 89:&5inu+ 89:&5inu+ con soporte de red )aun1ue no tenga tarjeta de red2 se puede usar el loopbac<,! Con el comando ifconfig se se puede comprobar si está activado!
●
Insta Instalar lar el pa1uet pa1uetee Apache con sus dependencias )1ue contiene el servidor 3eb,! Ai el manual está disponible )apache-doc , se recomienda instalarlo también
●
5anza 5anzarr el serv servid idor or )tam )tambi bién én cono conoci cido do como como demo demoni nio, o, $ttp $ttpd2 d2 invo invoca cand ndo o al scri script pt etcinit!dapache" con el parámetro start!
●
Probar 1ue Apache sirve peticiones! /brir un navegador 3eb ' escribir la :R5 localhost )o )o B!!!B,! Deberá de dar una página de bienvenida como respuesta o decir 1ue no la $a'2 pero no dar un error de petici*n rec$azada! rec$az ada!
●
Instalar Instalar el pa1uete pa1uete php )1ue )1ue inclu inclu'e 'e el lengu lenguaj aje, e, ' apache-php )el pa1uete 1ue permite conectar /pac$e con P(P,! 4ambién se recomienda php-manual 2 el manual oficial!
●
Ae puede probar P(P desde l7nea de comando ejecutando echo #$% print&"'"( %)# * php ! El resultado debe ser !
●
Por Fltimo $a' 1ue comprobar 1ue /pac$e ejecuta c*digo P(P! Para ello $a' 1ue ver el directorio donde /pac$e /pac$e busca las páginas 3eb% grep grep Document+oot etcapache", ! En el directorio 1ue nos indi1ue ejecutamos echo #$% print&"'( %)# ) p!php ! G solicitamos a /pac$e la :R5 localhostp!php ! Ai el resultado es "2 todo está correcto!
Ai fuera necesario modificar el comportamiento de P(P2 su fic$ero de configuraci*n es &etc&p$p!ini 5a e+tensi*n 1ue suelen tener los programas en P(P es !p$p o !p$p seguido del nFmero ma'or de la versi*n de P(P 1ue se usa )!p$pH 2 !p$p 2 !p$p", Ai además se desea trabajar con bases de datos M'A5% ●
Insta Instalar lar el pa1uet pa1uetee m's m's1l 1l )en )en algun algunas as distri distribuc bucion iones es se llama llama mys.l - server , con con sus dependencias! Ai el manual está disponible se recomienda instalarlo también
●
5anza 5anzarr el servi servidor dor )tambi )también én conoc conocid ido o como como demoni demonio, o, m's m's1l 1ld2 d2 invoc invocand ando o al scrip scriptt con el parámetro start! etcinit!dmys.l con
●
Probar 1ue mys.l sirve sirve peticiones! /brir una consola ' escribir mys.lsho/! 5a respuesta 1ue tiene 1ue dar es el listado de bases de datos del sistema!
4ambién se recomienda la instalaci*n de algFn entorno para facilitar el trabajo con la base de datos2
Programación en en PHP a través de ej ejemplos
%
como puede ser p$pM'/dmin )1ue está disponible libremente,! Este programa se puede instalar como pa1uete de la distribuci*n o bien bajar el c*digo fuente ' colocarlo en un directorio directorio de donde Apache ejecute páginas 3ebs! 3.2 Trabajo re!oto
4ambién si se desea2 se puede trabajar con una má1uina remota! Para ello lo más comFn es tener una cuenta a la 1ue se suban las páginas )por =4P2 =4P2 scp2 etc, ' solicitar la :R5 correspondiente correspondiente a la má1uina destino! 3.3 "ntorno de trabajo
Ae recomienda usar el editor uanta Plus2 1ue es el editor 3eb del pro'ecto JDE )forma parte del pa1uete 0de/e1dev ! E+isten otras alternativas interesantes% Kluefis$2 Eclipse2 etc! Es importante 1ue el entorno permite funciones como coloreado de sinta+is P(P2 entorno gráfico2 gesti*n de pro'ectos2 previsualizaci*n p revisualizaci*n de resultado2 sincronizaci*n sin cronizaci*n con deirectorios deirectori os remotos2 etc
Programación en PHP a través de ejemplos
&
# Pri!eros progra!as en PHP El objetivo del resto del documento es ense#ar P(P a través de ejemplos! 5as e+plicaciones de sinta+is serán m7nimas2 pues )salvo 1ue se indi1ue lo contrario, la sinta+is es idéntica a la de C! 5os nombres de variables en P(P comienzan por un carácter ' van seguidos de nFmeros ' caracteres sin espacios! Para $acer referencia a una variable debemos anteponer a su nombre el s7mbolo del d*lar )L,! 5os tipos básicos son% ●
Entero% nFmero entero con signo
●
=lotante% nFmero decimal con signo
●
Kooleano% vale true o false
●
Cadena de caracteres% cadena de caracteres delimitada por comillas! 5as comillas simples interpretan el te+to literalmente2 mientras 1ue las dobles sustitu'en las variables!
9o es necesario declarar las variables2 simplemente el intérprete averiguará el tipo de dato 1ue almacenará ' se declarará automáticamente! Ai es necesaria una conversi*n de tipos2 al igual 1ue en C2 se puede anteponer el tipo al 1ue se desea promocionar entre paréntesis! 5os comentarios pueden ser de dos tipos% Para comentarios de unas s*lo l7nea )o parte de ella, se pueden usar indistintamente && o 2 1ue comentan todo lo 1ue se encuentre a continuaci*n de ellos $asta el fin de la l7nea! Ai se desean comentario de varias l7neas2 se abren con &N ' se cierran con N& Para imprimir en pantalla se puede usar la orden ec$o o print% 5a orden ec$o es mu' similar a la de s$ell Kas$! Recibe como primer ' Fnico parámetro una cadena! Esa cadena2 si está entre comillas simples2 se imprimirá literalmente! Ai por el contrario deseamos 1ue se sustitu'an las variables 1ue contenga por sus valores $a' 1ue usar comillas dobles! Por ejemplo2 2cant345 echo 6Son 2cant euros65 dará como resultado Son 2cant euros! Pero 2cant345 echo #Son 2cant euros#5 imprimirá Son 4 euros ! Como se observa2 las *rdenes P(P van terminadas por el carácter O Por el contrario2 la orden print recibe sus parámetros entre paréntesis! Es una orden 1ue admite muc$os más parámetros ' opciones! :na de sus principales diferencias es 1ue evalua su parámetro ' después lo imprime! Por ejemplo echo #do1le&4(# da doble),2 pero print&do1le&4(( da BQ!
"jercicio #.1% Concatena dos cadenas con el operador punto )!, e imprimir su resultado!
Programación en PHP a través de ejemplos
'
"jercicio #.2% (acer un programa 1ue sume dos variables 1ue almacenan dos nFmeros distintos!
"jercicio #.3% $acer un programa 1ue muestre en pantalla informaci*n de P(P con la funci*n p$pinfo),! Muestre la informaci*n centrada $orizontalmente en la pantalla!
"jercicio #.#% Mostrar en pantalla una tabla de B por B con los nFmeros del B al B