PHP Teoría
PHP Teoría
PHP Teoría
PHP es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo
web y que puede ser incrustado en HTML.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
<?php
echo "¡Hola, soy un script de PHP!";
?>
</body>
</html>
En lugar de usar muchos comando para mostrar HTML(como en C o Perl), las páginas de PHP
contienen HTML con código incrustado que hace “algo” (en este caso, mostrar “Hola, soy un
script”). El código de PHP está encerrado entre las etiquetas especiales de comienzo y final <?
php y ?> que permiten entrar y salir del “modo PHP”.
Lo que distingue a PHP de algo del lado del cliente como Javascript es que el código es
ejecutado en el servidor, generando HTML y enviándolo al cliente. El cliente recibirá el
resultado de ejecutar el script, aunque no se sabrá el código subyacente que era. El servidor
web puede ser configurado incluso para que procese todos los ficheros HTML con PHP por lo
que no hay manera de que los usuarios puedan saber qué tienen debajo de la manga.
Lo mejor de utilizar PHP es su extrema simplicidad para el principiante, pero a su vez ofrece
muchas características avanzadas para los programadores profesionales. No sienta miedo de
leer la lista de características de PHP.
Aunque el desarrollo de PHP esté centrado en la programación de scripts del lado del servidor,
se puede utilizar para muchas otras cosas. Al estar principalmente enfocado en lo ya
mencionado, puede hacer cualquier cosa que pueda hacer otro programa CGI, como recopilar
datos de formularios, generar páginas con contenidos dinámicos, o enviar y recibir cookies.
Scripts del lado del servidor: Son necesarias tres cosas para que funciones—el
analizador de PHP(módulo CGI o servidor), un servidor web y un navegador web. Es
necesario ejecutar el servidor con una instalación de PHP conectada. Se puede acceder
al resultado del programa de PHP con un navegador, viendo la pag de PHP a través del
servidor. Todo esto se puede ejecutar en su máquina si está experimentado con la
programación de PHP.
Scripts desde la línea de comando. Se puede crear un script de PHP y ejecutarlo sin
necesidad de un servidor o navegador. Solamente es necesario el analizador de PHP
para utilizarlo de esta manera. Este tipo de uso es ideal para scripts que se ejecuten
con regularidad empleando cron o el Planificador de tareas.
Escribir aplicaciones de escritorio. Probablemente PHP no sea el lenguaje más
apropiado para crear aplicaciones de escritorio con una interfaz gráfica de usuario,
pero si se conoce bien PHP, y se quisiera utilizar algunas características avanzadas de
PHP en aplicaciones del lado del cliente, se puede utilizar PHP-GTK para escribir dios
programas.
PHP puede emplearse en todos los sistemas operativos principales, incluyendo Linux,
Microsoft Windows. PHP admite la mayoría. PHP funciona tanto como módulo como
procesador de CGI.
De modo que con PHP, se tiene la libertad de elegir el sistema operativo y el servidor web.
Además, se tiene la posibilidad de utilizar programación por procedimientos o
programación orientada a objetos (POO), o una mezcla de ambas.
Con PHP no se está limitado a generar HTML. Entre las capacidades de PHP se incluyen la
creación de imágenes, ficheros PDF e incluso películas Flash (usando libswf y Ming)
generadas sobre la marcha. También se puede generar fácilmente cualquier tipo de texto,
como XHTML y cualquier otro tipo de fichero XML. PHP puede autogenerar estos ficheros y
guardarlos en el sistema de ficheros en vez de imprimirlos en pantalla creando una caché
en el lado del servidor para contenido dinámico.
Una de las características más potentes y destacables de PHP es su soporte para un amplio
abanico de base de datos. Escribir una página web con acceso a una base de datos es
increíblemente simple utilizando una de las expresiones específicas de bases de datos, o
utilizar una capa de abstracción como PDO, o conectarse a cualquier base de datos que
admite¡a el estándar de Conexión Abierta a Bases de Datos por medio de la extensión
ODBC. Otras bases de datos podrían utilizar cURL o sockets, como lo hace CouchDB.
PHP también cuenta con soporte para comunicarse con otros servicios usando protocolos
tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM y muchos otros. También se
pueden crear sockets de red puros e interactuar usando cualquier otro protocolo. PHP
tiene soporte para el intercambio de datos complejos de WDDX entre todos los lenguajes
de programación web. Respecto a la interconexión, PHP tiene soporte para la instalación
de objetos JAVA y emplearlo de forma transparente como objetos de PHP.
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<BR><BR>
<?php
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
?>
</body>
</html>
VARIABLES
En PHP todas las variables comienzan con el símbolo del dólar $ y no es necesario definir una
variable antes de usarla. Tampoco tienen tipos, es decir que una misma variable puede
contener un número y luego puede contener caracteres.
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 1;
$b = 3.34;
$c = "Hola Mundo";
echo $a,"<br>",$b,"<br>",$c;
?>
</body>
</html>
En este ejemplo hemos definido tres variables $a, $b y $c y con la instrucción echo hemos
impreso el valor que contenían, insertando un salto de línea entre ellas.
Existen 2 tipos de variables, las variables locales que solo pueden ser usadas dentro de
funciones y las variables globales que tienen su ámbito de uso fuera de las funciones, podemos
acceder a una variable global desde una función con la instrucción global nombre_variable;
ARITMETICOS
Los operadores de PHP son muy parecidos a los de C y JavaScript, si usted conoce estos
lenguajes le resultaran familiares y fáciles de reconocer.
Estos son los operadores que se pueden aplicar a las variables y constantes numéricas.
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
echo $a + $b,"<br>";
echo $a - $b,"<br>";
echo $a * $b,"<br>";
echo $a / $b,"<br>";
$a++;
echo $a,"<br>";
$b--;
echo $b,"<br>";
?>
</body>
</html>
COMPARACION
Los operadores de comparación son usados para comparar valores y así poder tomar
decisiones.
== Igual $a == $b $a es igual $b
!= Distinto $a != $b $a no es el idéntico a $b
!== No Idéntico $a !== $b $a no es idéntico a $b
< Menor que $a > $b $a es menor que $b
> Mayor que $a > $b $a es mayor que $b
<= Menor o igual $a <= $b $a es menor o igual que $b
>= Mayor o igual $a >= $b $a es mayor o igual que $b
CONDICIONALES
Las sentencias condicionales nos permiten ejecutar o no ciertas instrucciones dependiendo del
resultado de evaluar una condición. Las más frecuentes son la instrucción if y la instrucción
switch.
Sentencia if . . . else
<?php
if (condición)
{
Sentencias a ejecutar cuando la
condición es cierta.
}
else
{
Sentencias a ejecutar cuando la
condición es falsa.
}
?>
La sentencia if ejecuta una serie de instrucciones u otras dependiendo de la condición que le
pongamos.
switch($posicion) {
case "arriba": // Bloque 1
echo "La variable contiene";
echo " el valor arriba";
break;
case "abajo": // Bloque 2
echo "La variable contiene";
echo " el valor abajo";
break;
default: // Bloque 3
echo "La variable contiene otro valor";
echo " distinto de arriba y abajo";
}
?>
</body>
</html>
Con la sentencia switch podemos ejecutar unas u otras instrucciones dependiendo del valor de
una variable dependiendo del valor de la variable $posicion se ejecuta el bloque 1 cuando el
valor es “arriba”, el bloque 2 cuando el valor es “abajo” y el bloque 3 si no es ninguno de los
valores anteriores.
Este tipo de condicionales se ocupa muy frecuentemente para distinguir entre navegadores y
luego ejecutar código especial para cada uno, i.e! código para Netscape Communicator y
código para Microsoft Internet Explorer.
BUCLES
Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un
conjunto de instrucciones mientras se cumpla una condición.
Sentencia while
<?php
while (condición)
{
intrucciones a ejecutar.
}
?>
Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están dentro
del while.
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
Final<BR>
</body>
</html>
SALIDA
Hasta ahora hemos usado la instrucción echo para realizar salida a pantalla, esta instrucción es
bastante limitada ya que no nos permite formatear la salida. En esta página veremos la
instrucción printf que nos da mucha más potencia.
<?php
printf(cadena formato, variable1, variable2...);
?>
La cadena de formateo indica cómo se cómo se han de representar los valores que
posteriormente le indicaremos. La principal ventaja es que además de poder formatear los
valores de salida, nos permite intercalar texto entre ellos.
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
printf("El numero dos con diferentes formatos: %d %f %.2f",2,2,2);
?>
</body>
</html>
La cadena de formato puede incluir una serie de caracteres especiales que indican como
formatear las variables que se incluyen en la instrucción.
Elemento Tipo de variable
%s Cadena de carácteres.
%d Número sin decimales.
%f Número con decimales.
%c Carácter ASCII.
Aunque existen otros tipos, estos son los más importantes.
Las siguientes sentencias son todas válidas:
echo "Hola mundo";
echo ("Hola Mundo");
print "Hola mundo";
print ("Hola mundo");
print (3.1415926);
MANEJO DE CADENAS
Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes
funciones para el manejo de cadenas.
Strlen(cadena). Nos devuelve el número de caracteres de una cadena.
Split(separador, cadena). Divide una cadena en varias usando un carácter separador.
Sprintf(cadena de formato, var1, var2…). Formatea una cadena de texto al igual que
printf pero el resultado es devuelto como una cadena.
Substr(cadena, inicio, longitud). Devuelve una subcadena de otra , empezando por
inicio y de longitud longitud.
Chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena.
Strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la
posición en la que se encuentra.
Str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el
texto. Reemplaza la cadena1 por la cadena2 en el texto.
ARREGLOS
PHP ofrece la posibilidad de agrupar un conjunto de valores para almacenarlos junto y
referenciarlos por un índice.
<?
print "Mi_array es $mi_array<BR>";
print "Mi_array[5] es $mi_array[5]<BR>";
$mi_array[5] = "Posición 6ta";
print "Mi_array[5] es $mi_array[5]<BR>";
print "Mi_array es $mi_array<BR>";
?>
Concatenar el mismo string:
$cad = ‘A esta cadena ‘;
$cad = $cad . ‘le vamos a añadir más texto.’;
FUNCIONES
El uso de funciones nos da la capacidad de agrupar varias instrucciones bajo un solo nombre y
poder llamarlas a estas varias veces desde diferentes sitios, ahorrándonos la necesidad de
escribirlas de nuevo.
<?php
instrucción1;
instrucción2;
instrucción3;
instrucción4;
return valor_de_retorno;
?>
Opcionalmente podemos pasarle parámetros a las funciones que se trataran como variables
locales y así mismo podemos devolver un resultado con la instrucción return valor; Esto
produce la terminación de la función retornando un valor.
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$media=($a+$b)/2;
return $media;
echo media_aritmetica(4,6),"<br>";
echo media_aritmetica(3242,524543),"<br>";
?>
</body>
</html>
(USOS UTILES)
LIBRERIAS
El uso de librerías nos permite agrupar varias funciones y variables en un mismo fichero, de
manera que luego podemos incluir esta librería en distintas páginas y disponer de esas
funciones fácilmente.
<!-- Manual de PHP -->
<?php
function CabeceraPagina()
{
?>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}
function PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
Autor: John Doe
<?
}
?>
Creando dos páginas que usen la librería definida anteriormente, se intentará conseguir que
las dos compartan lo realizado.
La instrucción para incluir una librería en nuestra página es include(“nombre de libreria”)
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Página 1
<BR><BR><BR><BR><BR>
más cosas...<BR><BR>
fin<BR><BR>
</body>
</html>
function PiePagina()
{
?> <hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
Autor: John Doe
<? }
function Indice()
{
?> <A HREF="ejem06a.phtml">Pagina 1</A><BR>
<A HREF="ejem06a2.phtml">Pagina 2</A><BR>
<? } ?>
Ejem06a.phtml
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php include("libpagina.phtml") ?>
<?php CabeceraPagina(); ?>
<TABLE>
<TR>
<TD><?php Indice() ?></TD>
<TD>
Esta es otra página<BR><BR>
completamente distinta<BR><BR>
pero comparte el pie y la cabecera con la otra.<BR><BR>
</TD>
</TR>
</TABLE>
<?php PiePagina(); ?>
</body>
</html>
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<br>
</FORM>
</body>
</html>
METODO GET Y POST
En la pag anterior hemos comentado que los datos de un formulario se envía mediante el
método indicado en el atributo METHOD de la etiqueta FORM, los dos métodos posibles
son GET y POST.
La diferencia entre estos dos métodos radica en la forma de enviar los datos a la página,
mientras que el método GET envía los datos usando la URL, el método POST los envía por
la entrada estándar STDIO.
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="GET">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
El resultado final es el mismo, solo que con el método GET podemos ver los parámetros
pasados ya que están codificados en la URL.
ENVIO DE EMAILS
PHP nos ofrece la posibilidad de enviar emails de una manera sencilla y fácil, para ello el
lenguaje nos proporciona la instrucción mail()
<?php
mail(destinatario, tema, texto del mensaje);
?>
En el parámetro destinatario pondremos la dirección de email a donde se enviará el mensaje,
en el parámetro tema el tema o subject del mensaje y el parámetro texto del mensaje el
cuerpo del mensaje en formato texto plano.
Existe una sintaxis extendida de la instrucción mail() que nos permite añadir información
adicional a la cabecera del mensaje.
<?php
mail(destinatario, tema, texto del mensaje, información adicional de cabecera);
?>
En la información de cabecera podremos incluir parámetro adicionales al mensaje como Reply-
To:, From:, Content-type:… que nos permite tener un mayor control sobre el mensaje.
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de envio de email</H1>
Introduzca su direccion de email:
<FORM ACTION="email.phtml" METHOD="GET">
<INPUT TYPE="text" NAME="direccion"><BR><BR>
Formato: <BR>
<INPUT TYPE="radio" NAME="tipo" VALUE="plano" CHECKED> Texto plano<BR>
<INPUT TYPE="radio" NAME="tipo" VALUE="html"> HTML<BR><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
Email.phtml
<!-- Manual de PHP -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de envio de email</H1>
<? if ($direccion!=""){
if ($tipo=="plano"){
// Envio en formato texto plano