Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 2 Introduccion A PHP PDF
Tema 2 Introduccion A PHP PDF
TEMA 2
Introduccin a PHP
Objetivos del Tema:
y servidor Web
Explicar la instalacin y
configuracin de un Servidor Web
Pginas estticas
Diremos que una pgina es esttica cuando sus contenidos no
pueden ser modificados ni desde el servidor que la aloja
(ordenador remoto) ni desde el cliente (navegador)
mediante ninguna intervencin del usuario ni tampoco a travs
de ningn programa.
PGINA 2
PGINA 3
PGINA 4
Por ejemplo:
<script language="PHP">
......
...... instrucciones ..
......
</script>
indicara que las instrucciones estn escritas con la sintaxis de PHP. Por el contrario, en
este otro supuesto:
<script language="JavaScript">
......
...... instrucciones ..
......
</script>
estaramos sealando que en las instrucciones contenidas en el script se ha utilizado
sintaxis de JavaScript.
Para el caso concreto de PHP, existe una sintaxis alternativa, mucho ms cmoda y que
es la que se usa habitualmente. Es la siguiente:
<?
......
......instrucciones..
......
?>
<? har la misma funcin que <script language="PHP"> y ?> ser equivalente a
</script>.
1.3. Lenguajes
Hay mltiples posibilidades en cuanto a lenguajes de script. Pero antes de hacer
mencin a algunos de ellos es conveniente hacer una clasificacin previa.
Los lenguajes de script pueden clasificarse en dos tipos:
Del lado del cliente
Del lado del servidor
1.3.1. Lenguajes del lado del cliente
Diremos que un lenguaje es del lado del cliente cuando el intrprete que ha de ejecutar
sus scripts es accesible desde ste el cliente sin que sea necesario hacer ninguna
peticin al servidor.
Seguramente te ha ocurrido alguna vez que al intentar acceder a una pgina web ha
aparecido un mensaje diciendo que la correcta visualizacin de la pgina requiere un
plugin determinado, y que, a la vez, se te haya ofrecido la posibilidad de descargarlo
en ese momento.
PGINA 5
PGINA 6
Eso ocurre porque cuando el navegador que en el caso de las pginas web es el
cliente trata de interpretar la pgina, encuentra incrustado en ella algo (un fichero
de sonido, una animacin Flash, etctera) que de forma muy similar a lo que ocurre
con los scripts requiere un intrprete adecuado del que no dispone en ese momento.
Cuando los scripts contenidos en un documento son de este tipo, el servidor lo entrega
al cliente si efectuar ningn tipo de modificacin.
1.3.2. Lenguajes del lado del servidor
Un lenguaje es del lado del servidor cuando la ejecucin de sus scripts se efecta, por
instancia de este el servidor, antes de dar respuesta a la peticin, de manera que el
cliente no recibe el documento original sino el resultante de esa interpretacin previa.
Cuando se usan estos tipos de lenguaje el cliente recibe un documento en el que cada
script contenido en el original habr sido sustituido por los resultados de su ejecucin.
Esto es algo a tener muy en cuenta, porque, en este caso, los usuarios no tendrn la
posibilidad de visualizar el cdigo fuente, mientras que cuando se trata de lenguajes
del lado del cliente siempre es posible visualizar los scripts, bien sea de forma directa
mirando el cdigo fuente de la pgina recibida o leyendo el contenido de ficheros
externos vinculados a ella que son bastante fciles de encontrar en la cach del
navegador.
La utilizacin de este tipo de scripts requiere que el intrprete del lenguaje sea
accesible est del lado desde el propio servidor.
1.3.3. Cmo resuelve sus dudas el servidor?
Dado que en unos casos el servidor debe entregar el documento original pginas
estticas o pginas dinmicas en las que se usan lenguajes del lado del cliente
mientras que en otros casos pginas dinmicas usando lenguajes del lado del
servidor tiene que devolver el resultado de la ejecucin de los scripts, es razonable
que te preguntes: cmo sabe el servidor lo que debe hacer en cada caso?
La respuesta es simple. Eso hay que decrselo. Y se le dice de una forma bastante
simple. Se indica al poner la extensin al documento. Si en la peticin se alude a un
documento con extensin .htm o .html el servidor entender que esa pgina no
requiere la intervencin previa de ningn intrprete de su lado y entregar la pgina
tal cual.
Si en esa peticin se aludiera a una extensin distinta .php, por ejemplo el servidor
entendera que antes de servir la pgina debe leerla y requerir al intrprete de PHP
que ejecute los scripts desarrollados en ese lenguaje (en caso de que los contuviera) y
devolvera al cliente el documento que resultara de las eventuales ejecuciones de
tales scripts.
1.3.4. Algunos lenguajes con nombre y apellidos
Sin pretender hacer una enumeracin exhaustiva, los lenguajes de script ms populares
son los siguientes:
PHP
ASP
Perl
JSP
PGINA 7
PGINA 8
Videos
Introduccin a PHP
http://www.youtube.com/wat
ch?v=juFSPI_YzsM&feature=rela
ted
PGINA 9
PGINA 10
PGINA 11
3. LNEAS DE COMENTARIOS
3.1. Por qu usar lneas de comentario?
A primera vista pueden parecer intiles. Para qu recargar las pginas con
contenidos que no se van a ver ni ejecutar? Las lneas de comentario sirven para poder
recordar en un futuro qu es lo que hemos hecho al escribir un script y por qu razn lo
hemos hecho as.
A medida que vayamos avanzando vers que en muchos casos tendremos que aplicar
estrategias individuales para resolver cada problema concreto. Cuando necesites
hacer una correccin o una modificacin al cabo de un tiempo vers que confiar en la
memoria no es una buena opcin. Es mucho mejor utilizar una lnea de comentario que
confiar en la memoria. Palabra!
3.2. Comentarios
Para insertar comentarios en los scripts de PHP podemos optar entre varios mtodos y
varias posibilidades:
Una sola lnea: Basta colocar los smbolos // al comienzo de la lnea o detrs
del punto y coma que seala el final de una instruccin. Tambin se puede usar
el smbolo # en cualquiera de las dos posiciones.
Varias lneas: Si un comentario va a ocupar ms de una lnea podremos
escribir /* al comienzo de la primera de ellas y */ al final de la ltima. Las
lneas intermedias no requieren de ningn tipo de marca. Los comentarios para
los que usemos la forma /* ... */ no pueden anidarse. Si, por error, lo
hiciramos, PHP nos dar un mensaje de error.
3.3. Ensayando lneas de comentario
En este ejemplo hemos incluido marcados en rojo algunos ejemplos de insercin de
lneas de comentario.
<HTML>
<HEAD> <TITLE>Ejemplo </TITLE></HEAD>
<BODY>
<?
// Este comentario no se ver en la pgina
echo "Esto se leer <BR> "; // Esto no se leer
/* Este es un comentario de mltiples lneas
y no se acabar hasta que no cerremos as.... */
echo "Este es el segundo comentario que se leer<BR>";
# Este es un comentario tipo shell que tampoco se leer
echo ("Aqu el tercer texto visible"); #comentario invisible
/* Cuidado con anidar
/* comentarios
multilinea con estos*/
al PHP no le gustan */
?>
</BODY>
</HTML>
Colegio CLARET 2 Curso Administracin de Sistemas Informticos en Red
PGINA 12
3.4. Ejercicio n 3
Escribe un script en el que se utilicen las funciones print, print() y echo aadiendo con
los diferentes formatos lneas de comentario que expliquen la sintaxis de cada una
de las funciones. Gurdalo como ejercicio3.php en el directorio practicas y
comprueba su funcionamiento.
PGINA 13
4. CONSTANTES
4.1. Qu es una constante?
Una constante es un valor un nmero o una cadena que no va a ser modificado a
lo largo del proceso de ejecucin de los scripts que contiene un documento.
Para mayor comodidad, a cada uno de esos valores se le asigna un nombre, de modo
que cuando vaya a ser utilizado baste con escribir su nombre.
Cuando ponemos nombre a una constante se dice que definimos esa constante.
4.2. Cmo definir constantes?
En PHP las constantes se definen mediante la siguiente instruccin:
define("Nombre","Valor")
Los valores asignados a las constantes se mantienen en todo el documento, incluso
cuando son invocadas desde una funcin. No es necesario escribir entre comillas los
valores de las constantes cuando se trata de constantes numricas.
Si se realizan operaciones aritmticas con constantes tipo cadena, y su valor
comienza por una letra, PHP les asigna valor cero.
Si una cadena empieza por uno o varios caracteres numricos, al tratar de operarla
aritmticamente PHP considerar nicamente el valor de los dgitos anteriores a la
primera letra o carcter no numrico.
El punto entre caracteres numricos es considerado como separador de parte decimal.
Tal como puedes ver en el cdigo fuente del ejemplo, es posible definir constantes a
las que se asigne como valor el resultado de una operacin aritmtica.
4.3. Ampliando echo
Mediante una sola instruccin echo se pueden presentar (en la ventana del navegador
del cliente) de forma simultnea varias cadenas de caracteres y/o constantes y
variables. Basta con ponerlas una a continuacin de otra utilizando una coma como
separador entre cada una de ellas.
La forma anterior no es la nica ni la ms habitual de enlazar elementos mediante
la instruccin echo. Si en vez de utilizar la coma usramos un punto (el concatenador
de cadenas) conseguiramos el mismo resultado.
Cuando enlacemos elementos distintos cadenas, constantes y/o nmeros hemos de
tener muy en cuenta lo siguiente:
o
o
Cada una de las sucesivas cadenas debe ir encerrada entre sus propias
comillas.
Los nombres de constantes nunca van entre comillas.
PGINA 14
PGINA 15
function prueba(){
echo "Valor de la constante EurPta: ". EurPta . "<BR>";
print "Valor de la constante PtaEur: ". PtaEur. "<BR>";
echo "Valor de la constante Cadena: ", Cadena , "<BR>";
print ("Valor de la constante Cadena x EurPta: " .
Cadena*EurPta . "<br>");
print ("Valor de la constante Cadena2 x EurPta: " .
Cadena2*EurPta . "<br>");
}
# Las funciones solo se ejecutan cuando son invocadas
/* La funcin anterior no se ejecutar hasta que escribamos una lnea como
esta de abajo en la que ponemos nicamente el nombre de la funcin:
prueba() */
?>
<?
prueba();
?>
</BODY>
</HTML>
4.6. Ejercicio n 4
Escribe un script (gurdalo como ejercicio4.php) en el que se definan dos constantes,
una numrica y otra de cadena y en el que mediante la las opciones print y echo
aparezca en la pgina web resultante un comentario sobre el tipo de cada una de
ellas seguido de su valor. Intenta conseguir que los elementos concatenados aparezcan
en la presentacin separados por un espacio. Observa el cdigo fuente!
Cuidado! Presta mucha atencin a la sintaxis. Olvidar los ; o no poner unas comillas
suelen ser la causa de muchos mensajes de error.
PGINA 16
5. VARIABLES
5.1. Qu es una variable?
Podramos decir que es un espacio de la memoria RAM del ordenador que se reserva
a lo largo del tiempo de ejecucin de un script para almacenar un determinado tipo
de datos cuyos valores son susceptibles de ser modificados por medio de las
instrucciones contenidas en el propio programa.
Nombres de variables: En PHP todos los nombres de variable tienen que empezar
por el smbolo $.
Las nombres de las variables han de llevar una letra inmediatamente despus del
sm- bolo $ $pepe1 es un nombre vlido, pero $1pepe no es un nombre vlido.
MUY IMPORTANTE Para PHP las letras maysculas y las minsculas son distintas. La
variable $pepe es distinta de $Pepe.
5.2. Tipos de variables
En PHP no es necesario definir el tipo de variable, por lo tanto, una misma variable
puede contener una cadena de caracteres en un momento del proceso y,
posteriormente, un valor numrico, susceptible de ser operado matemticamente.
PHP no requiere una definicin previa de las variables. Se definen en el momento en
que son necesarias y para ello basta que se les asigne un valor. La sintaxis es esta:
$variable=valor;
El valor puede ser una cadena (texto o texto y nmeros que no requieren ser operados
matemticamente) o slo un nmero. En el primero de los casos habra que escribir el
valor entre comillas.
5.3. mbito de las variables
Los valores de una variable definida en cualquier parte de un script siempre que no
sea dentro de una funcin pueden ser utilizados desde cualquier otra parte de ese
script, excepto desde dentro de las funciones que contuviera el propio script o desde
las que pudieran estar contenidas en un fichero externo.
Si una variable es definida dentro de una funcin slo podr ser utilizada dentro esa
funcin. Si en una funcin aludimos a una variable externa a ella PHP considerar esa
llamada como si la variable tuviera valor cero (en caso de ser tratada como nmero)
o una cadena vaca ("" es una cadena vaca).
Igual ocurrira si desde fuera de una funcin hiciramos alusin a una variable
definida en ella. Si definimos dos variables con el mismo nombre, una dentro de una
funcin y otra fuera, PHP las considerar distintas. La funcin utilizar cuando sea
ejecutada sus propios valores sin que sus resultados modifiquen la variable externa.
PGINA 17
PGINA 18
<HTML>
<HEAD>
</HEAD>
<BODY>
<?
# Definimos la variable $pepe como vaca
$pepe="";
# Definimos las variables $Pepe y $Pepa (ojo con maysculas y minsculas)
$Pepe="Me llamo Pepe y soy serio y formal";
$Pepa="Me llamo Pepa y tambin soy seria y formal";
?>
<!-- esto es HTML, hemos cerrado el script -->
<center><b>Vamos a ver el contenido de las variables</b></center>
<!-- un nuevo script PHP -->
<?
echo "<br> El valor de la variable pepe es: ",$pepe;
echo "<br> No ha puesto nada porque $pepe esta vaca";
echo "<br> El valor de la variable Pepe es: ",$Pepe;
?>
<center><b><br>Invocando la variable desde una funcin</b></center>
<?
/* Escribiremos una function llamada vervariable. Observa la sintaxis. La
palabra function delante y el () al final seguidos de la llave. Hasta que no
cerremos la llave todas las lneas sern consideradas parte de la funcin */
function vervariable(){
echo "<br> Si invoco la variable Pepe desde una funcin";
echo "<br>me aparecer en blanco";
}
/* esta llave de arriba seala el final de la funcin. Los contenidos que hay en
adelante ya no pertenecen a ella */
/* Haremos una llamada a la funcion vervariable. Las funciones no se ejecutan
hasta que no se les ordena y se hace de esta forma que ves aqu debajo:
nombre de la funcion seguido de los famosos parntesis */
vervariable();
?>
<!-- mas HTML puro -->
<center><b><br>Ver la variable desde la funcin
poniendo <i>global</i></b></center>
<?
# una nueva funcion
function ahorasi(){
# aqui definiremos a $Pepe como global
# la funcin leer su valor externo
global $Pepe;
echo "<br><br> Hemos asignado mbito global a la variable";
echo "<br>ahora Pepe aparecer";
echo "<br>El valor de la variable Pepe es: ", $Pepe;
}
# hemos cerrado ya la funcion con la llave.
# Tendremos que invocarla para que se ejecute ahora
ahorasi();
?>
<center><b><br>Un solo nombre y dos <i>variables
distintas</i></b><br>
Dentro de la funcin el valor de la variable es <br></center>
Colegio CLARET 2 Curso Administracin de Sistemas Informticos en Red
PGINA 19
<?
function cambiaPepa(){
$Pepa="Ahora voy a llamarme Luisa por un ratito";
echo "<br>",$Pepa;
}
cambiaPepa();
?>
<center>... pero despus de salir de la funcin
vuelvo al valor original...</center>
<?
echo "<br>",$Pepa;
?>
</BODY>
</HTML>
5.7. Ejercicio n 5
Escribe un script (gurdalo como ejercicio5.php) en el que una misma variable tome
dos valores distintos sin utilizar ninguna funcin. Luego aade al script una funcin que
presente ese mismo nombre de variable con un valor distinto de los anteriores,
comprobando que esta ltima opcin no modific el ltimo valor de aquellos.
PGINA 20
6. TIPOS DE VARIABLES
6.1. Tipos de variables
En PHP no es necesaria una definicin previa del tipo de variables. Segn los valores
que se les vayan asignando, las variables podrn cambiar de tipo de modo
automtico y se irn adaptando a los valores que contengan en cada momento.
Las variables en PHP pueden ser de tres tipos:
Enteras (tipo Integer): Cualquier nmero entero cuyo valor est comprendido
entre 231.
De coma flotante (tipo Double o Decimales): Cualquier valor que sea nmero
decimal o siendo entero desborde el intervalo anterior.
Cadenas (tipo String): Cualquier variable cuyo valor sea una cadena de
caracteres (letras y/o nmeros delimitados por comillas).
En el cuadro siguiente podemos ver los tres tipos de variables que utiliza PHP.
PGINA 21
PGINA 22
7. CONSTANTES PREDEFINIDAS
PHP dispone de algunas constantes predefinidas que no requieren la instruccin:
define("Nombre","Valor")
Algunas de ellas son estas:
__FILE__ Recoge el nombre del fichero que se est ejecutando y la ruta
completa de su ubicacin en el servidor.
__LINE__ Recoge el nmero de lnea (incluidas lneas en blanco) del fichero
PHP cuyos scripts est interpretando. Puede resultar muy til para depurar
programas escritos en PHP.
PHP_OS Recoge informacin sobre el Sistema Operativo que utiliza el servidor
en el que se est interpretando el fichero.
PHP_VERSION Recoge la versin de PHP que est siendo utilizada por el
servidor.
Cuidado! Por si existieran dudas por problemas de visualizacin tanto FILE como
LINE tienen que llevar dos guiones bajos delante y otras dos detrs.
7.1. Un ejemplo con constantes predefinidas
<HTML>
<HEAD>
</HEAD>
<BODY>
<?
# La constante del sistema __FILE__ nos devolver
echo "La ruta completa de este fichero es: ";
echo __FILE__;
# La constante del sistema __LINE__ nos devolver
# el nmero de lnea que se est interpretando
# tambin cuenta las lneas en blanco
# cuenta las lneas y vers que devuelve ... 16
echo "<br>Esta es la lnea: ",__LINE__, "del fichero";
echo "<br>Estamos utilizando la versin: ",PHP_VERSION, " de PHP";
echo "<br>El PHP se est ejecutando desde el sistema operativo: ",PHP_OS;
?>
</BODY>
</HTML>
7.2. Ejercicio n 6
Escribe un script (gurdalo como ejercicio6.php) que construya una pequea pgina
web en la que aparezca el texto "Ests utilizando la versin: 5.2.9-2 de PHP"
(incluidas las comillas y extrayendo el nmero de versin de la constante predefinida
correspondiente). Trata de que todas las etiquetas HTML que utilices estn recogidas
en variables PHP, de manera que no exista ninguna lnea en el cdigo fuente de la
pgina que est fuera de las etiquetas <? ... ?>
Colegio CLARET 2 Curso Administracin de Sistemas Informticos en Red
PGINA 23
8. OPERACIONES
8.1. Operaciones aritmticas
En pginas anteriores hemos podido ver que PHP permite utilizar un tipo de variables
las numricas cuyos valores puedan ser operados de la misma forma que se hace
con los nmeros en la vida cotidiana.
Los resultados de las operaciones pueden utilizarse de forma directa o ser recogidos
en una nueva variable. A continuacin tenemos un ejemplo de ambas opciones.
Si asignamos a una nueva variable el resultado de una operacin el valor contenido
en ella no se modifica, aunque cambien los de las variables que intervinieron su
creacin.
<?
# definamos dos variables numricas asignndoles valores
$a=23; $b=34;
/* hagamos una suma y escribamos directamente los resultados utilizando las
instrucciones print y echo con todas sus posibles opciones de sintaxis */
print("La suma de $a + $b es: " . $a . "+" . $b . "=" . ($a+$b)."<br>");
print "La suma de $a + $b es: " . $a . "+" . $b . "=" . ($a+$b) ."<BR>";
print ("La suma de $a + $b es: " . $a . "+" . $b . "=" . ($a+$b) ."<BR>");
echo "La suma de $a + $b es: " . $a . "+" . $b . "=" . ($a+$b) ."<BR>";
Colegio CLARET 2 Curso Administracin de Sistemas Informticos en Red
PGINA 24
PGINA 25
Aunque para simplificar los ejemplos vamos a utilizar en ellos una sola condicin, este
operador permite incluir como tal cualquier estructura lgica, del tipo que hemos visto
en la pgina anterior, por compleja que esta sea.
Como iremos viendo a lo largo de estas lneas, este operador permite diferentes
formas de sintaxis que podemos utilizar segn nuestra conveniencia. La forma ms
simple es:
if(condicin)
..instruccin... ;
Si se cumple la condicin establecida en el parntesis se ejecutar la primera
instruccin que se incluya a continuacin de ella.
Cualquier otra instruccin que hubiera a continuacin de esa primera no estara
afectada por el condicional y se ejecutara en cualquier circunstancia. Observa que,
aunque hemos puesto if(condicin) en una lnea independiente, no lleva punto y coma
detrs.
if(condicin){
..instruccin 1... ;
..instruccin 2... ;
.... ;
}
Es una ampliacin del caso anterior. Cuando es necesario que en caso de que se
cumpla la condicin o condiciones se ejecute ms de una instruccin, se aade una {
para indicar que habr varias instrucciones, se escriben estas y mediante } se seala
el final.
If ... else
El operador condicional tiene una interesante ampliacin. En conjuncin con else
permite aadir instrucciones que slo seran ejecutadas en caso de no cumplirse la
condicin. Esta nueva opcin se habilita mediante la siguiente sintaxis:
if(condicion){
... instrucciones...
... a ejecutar cuando
se cumple la condicin
} else {
... instrucciones...
... a ejecutar cuando NO
se cumple la condicin
}
permitiendo tambin la sintaxis alternativa :, endif, aunque en este caso hay que
hacer una precisin -puedes verla aqu debajo la llave de cierre que iba delante de
else se elimina y no es sustituida por ningn caracter ni smbolo especial.
PGINA 26
La funcin exit()
PHP dispone de una funcin exit() muy til a los efectos del comentario anterior.
Cuando se ejecuta exit() se interrumpe la ejecucin del script con lo que la respuesta
del servidor a la peticin del cliente incluir nicamente los contenidos generados
antes de su ejecucin.
8.3.2. Ejemplo con IF
<?
$A=3; $B="3";
# en este caso cerraremos entre llaves las lneas
# que deben ejecutarse si se cumple la condicin
if ($A==$B){
print ("A es igual B");
echo "<br>";
echo "Este if tiene varias instrucciones contenidas entre llaves";
}
8.3.3. Ejemplo con IF ELSE
<?
$A=3; $B="4";
if ($A==$B){
#estas instrucciones se ejecutaran si se cumple la condicin
print ("A es igual B");
echo "<br>";
echo "Este if tiene varias instrucciones";
}else{
# estas se ejecutaran en el caso de no cumplirse
# las condiciones especificadas en el fi
print("A no es igual que B");
echo "<br>";
echo ("La estructura de control se ha desviado al else");
}
?>
8.3.4. La funcin switch
PGINA 27
<? $i=3;
switch ($i) {
case 0:
print "La variable i es 0<br>";
break;
case 1:
print "La variable i es 1<br>";
break;
case 2:
print "La variable i es 2<br>";
break;
# al introducir default y dado que $i=3 se ejecutarn
# las instrucciones contenidas aqu ya que la variable
# no coincide con ninguno de los case establecidos
default:
print "La variable i es mayor que dos o menor que cero";
break;
}
?>