Вы находитесь на странице: 1из 2

Recetario de PHP

GUA RPIDA DE PHP


Por Mauricio Monsalve Moreno
Versin 2 Marzo de 2007
Esta es una gua rpida de programacin en PHP para la web. Contiene lo bsico del lenguaje as como algunos mtodos tradicionales para resolver problemas. En
otras palabras, esta gua est orientada al desarrollo inmediato de aplicaciones en PHP. Nota: la gua est orientada a gente que ha programado antes.

Integrando PHP y HTML Es importante notar que esto sigue siendo vlido para componentes de
arreglos, si es que stos son escalares. Por ejemplo:
Sea el siguiente cdigo HTML: <?
<html><body>Hola Bola!</body></html> $arr = array(automvil,Batimvil);
echo El $arr[0] de Batman es el $arr[1].;
Generar una pgina web con el texto Hola Bola!. Que tal hacer esto mismo ?>
100 veces? La solucin PHP sera:
Lo anterior genera: El automvil de Batman es el Batimvil.
<html><body>
<? for( $i=0 ; $i<100 ; $i++)
echo Hola Bola! <br>; ?> Condiciones control de flujo
</html></body>
La instruccin bsica para el flujo condicional es el if. Su estructura es idntica
En el cdigo anterior, el texto en negritas corresponde al cdigo en PHP. Este a la de Java y C:
cdigo ser ledo por un intrprete y convertido a HTML. if (condicin) {
En general, para incluir cdigo PHP en un documento HTML se hace lo este bloque se ejecuta si la condicin es cierta
} else {
siguiente: este bloque se ejecuta en caso contrario
cdigo html }
<? //o bien <?php
cdigo PHP Si el bloque else es innecesario, se puede eliminar, quedando:
?> if (condicin) {
cdigo html este bloque se ejecuta si la condicin es cierta
}
Adems, se debe especificar que el archivo debe ser interpretado por PHP. En
general, esto se logra -teniendo ya instalado PHP en el servidor- colocando la Por ejemplo, calculemos el mximo entre dos valores numricos ($n1 y $n2) y
extensin .php a estas pginas dinmicas. dejemos el valor en $maximo:
Nota: El cliente no ver el cdigo PHP. Slo ver una salida HTML. Todo el $maximo=0;
if ($n1 > $n2) $maximo = $n1;
procesamiento ocurre de lado del servidor. else $maximo = $n2;
En el ejemplo anterior se omitieron los parntesis de llave. Esto se permite
Declaracin de variables en PHP
cuando en el bloque consiste slo de una instruccin.
En PHP no es necesario declarar las variables (menos su tipo). De manera
simple, toda variable tiene un valor nulo asumido por defecto. Bucles o ciclos
Un truco simple para inicializar una variable es haciendo una asignacin Los bucles son un elemento clsico de los lenguajes de programacin. En
explcita: particular, el bucle for es el ms tradicional:
<? for( declaracin ; condicin ; paso )
.... { bloque a ejecutar }
$hola=hola;
?> La sintaxis de for es la misma de Java y C.
Lo que hace el bucle for es declarar una variable segn declaracin (esto es
Tipos de variables omisible), ejecutar la condicin para determinar si continuar el ciclo y, si
Los tipos de variable bsico son escalar, arreglo y arreglo asociativo. contina, ejecutar el bloque y realizar el paso. Ejemplo:
$alfa=a; //es un escalar for( $i=0 ; $i<100 ; $i++)
$beta=10; //otro escalar echo i vale $i <br>;
$arreg[0]=1; //es un arreglo El ejemplo escribe: i vale 0 <br>i vale 1<br>...<br>i vale 99<br>. $i vale 0, 1, 2,
echo $arreg[0]; //escribe 1
$asoc[hola]=2; //es un arreglo asociativo 3... hasta 100. De 0 a 99, la condicin se cumple. Pero cuando $i vale 100, $i<100
echo $asoc[hola]; //escribe 2 es falso, por lo que termina el for.
Tambin es posible declarar arreglos de las siguientes formas: Otra instruccin de uso tradicional es el while. Su estructura es:
//arreglo tradicional: while( condicin ) { bloque a ejecutar }
$arr=array(cero, uno, dos, tres);
//arreglo asociativo: El bloque a ejecutar se ejecutar mientras la condicin sea verdadera. Esto es
$aso=array(cero => zero, uno => one); equivalente a for( ; condicin ; ) { bloque a ejecutar }.
Por ejemplo, $arr[1] vale uno y $aso[uno] vale one.
Nota: Para contar el nmero de elementos de un arreglo, sea o no asociativo, se Bucle recorriendo arreglos foreach
usa count($arreglo). Para recorrer un arreglo tradicional se puede usar:
for($i=0; $i<count($arreglo); $i++) {
Operaciones con escalares //operar con $arreglo[$i]
}
En PHP no hay mayor diferencia entre valores numricos y cadenas de texto
En el caso de un arreglo asociativo, los elementos consisten de una relacin
(strings). El contenido de la variable ser interpretado segn la operacin
binaria: clave => valor. En este caso se usa foreach:
usada: foreach( $asociativo as $clave => $valor ) {
$suma = 1 + 2; //$suma vale 3 //operar con $clave y $valor
$resta = 10 '7'; //$resta vale 3 }
$sumas = un + 2 + 3eq; //$sumas vale 5
En el ejemplo anterior: $asociativo[$clave]==$valor. Adems, foreach revisar
En operaciones aritmticas, PHP busca nmeros en el contenido de las
todos los elementos del arreglo.
variables. Luego, 3eq pasa a ser 3 ante una adicin.
En el caso de la concatenacin, el tema es ms simple. El operador punto (.) es Creacin de funciones o mtodos
usado:
Esto es muy sencillo en PHP. La sintaxis para definir una funcin es:
$alfa = uno . dos; //$alfa vale uno dos;
$beta = $alfa.!; //$beta vale uno dos!; function MiFuncin($param1, $param2, ...) {
$gama = $alfa!; //$gama vale uno dos!; //operaciones
return $resultado; //valor a devolver
Como se pudo ver en el caso de la variable $gama, no es necesario realizar una }
concatenacin explcita (usando punto). Basta incluir la variable dentro de la A modo de aclaracin, no toda funcin devolver un valor. Por ende, la
cadena de texto. instruccin return es opcional.
La funcin es llamada por su nombre y necesita todos los parmetros indicados pgina a aparecer ser pag2.php, la que obtendr los datos del formulario y los
en su definicin. Ejemplo: procesar.
function mitad($valor) { Por ejemplo, implementemos un servicio que calcula el promedio de controles
return $valor/2 ;
}
de un curso (se supondrn tres controles):
echo mitad(10); //escribe el nmero 5 inicio.html
<html><body>
<form action=prom.php method=POST>
Inclusin de archivos .php Control 1: <input name=c1 type=text><br>
Control 2: <input name=c2 type=text><br>
PHP permite la inclusin de archivos .php o .html dentro de otro. La sintaxis Control 3: <input name=c3 type=text><br>
para esto es: <input type=submit>
</form></body></html>
include archivo.php;
Esta instruccin se puede colocar dentro de cualquier bloque. prom.php
<html><body>Su promedio de notas es:
Es importante destacar que se puede incluir un archivo .php o .html y, en el <?
caso de los archivos .php, el cdigo debe estar entre <? y ?>. $suma=$_POST[c1]+$_POST[c2]+$_POST[c3];
echo $suma/3.0; //necesito decimales
Un uso sencillo es la creacin de bibliotecas. Por ejemplo: ?>
funciones.php </body></html>
<?
function sumar($a,$b,$c) { Los valores de los campos c1, c2 y c3 fueron capturados por el arreglo
return $a+$b+$c; asociativo $_POST debido a que el formulario us el mtodo POST. Si hubiese
}
?> usado el mtodo GET, el arreglo asociativo que capturara los campos del
formulario sera $_GET.
salida.php
<html><body>
La suma de 1+2+3 vale: Manejo de sesiones
<?
include funciones.php; //usa funciones.php
Cuando se est guardando informacin (variables) entre pginas de un mismo
echo sumar(1,2,3); servidor, se est haciendo uso de una sesin. Por ejemplo, un correo web
?>
</body></html>
necesita la autenticacin una vez porque recuerda al usuario; el correo web
maneja una sesin.
En el ejemplo anterior, salida.php usa la funcin sumar definida en
Si una pgina inicia un sesin o la contina, antes de usarse las variables de
funciones.php.
sesin es necesario ejecutar la instruccin session_start(). Es recomendable que
Otro uso sencillo es la inclusin de cdigo HTML. Por ejemplo:
sea la primera instruccin PHP en la pgina (salvo en casos especiales, como la
cabecera.php
<html> alteracin del tipo MIME).
<head><title>Chop, el e-Shop</title></head> Para usar las variables de sesin, es altamente recomendable usar el arreglo
<body bgcolor=lightyellow text=black>
asociativo $_SESSION como el contenedor de informacin de sesin. Este
salida.php mtodo resultar exitoso, incluso cuando un servidor web est mal
<? include cabecera.php; ?> //usa cabecera.php
Bienvenido a nuestro e-shop. Por favor salga. configurado.
</body></html> Para destruir la informacin de una sesin, se usa la instruccin
Lo anterior sirve para evitar reescribir la cabecera en varias pginas web, session_destroy(). La informacin de $_SESSION ser destruida (muy til
dejando todo en slo un archivo comn. Y como se puede notar, cabecera.php cuando se desean mantener datos seguros). Opcionalmente, al usar
no tiene nada de php. $_SESSION=array() es posible asegurarse que los datos de sesin han sido
destruidos.
Manejo de archivos Un ejemplo sencillo de sesiones: un sistema que recuerda el nombre del
Para leer un archivo, lo ms cmodo es convertirlo a un arreglo as: usuario.
$lineas=file(archivo.txt); //devuelve un arreglo index.php
echo $lineas[0]; //primera lnea de archivo.txt <html><body> Ingrese su nombre:
<form action=pag1.php method=POST>
Esto facilita mucho su manejo. Por ejemplo, para desplegar un archivo de texto <input type=text name=user>
en pantalla: <input type=submit>
</form></body></html>
$lineas=file(archivo.txt);
for($i=0 ; $i<count($lineas) ; $i++) pag1.php
echo Linea $i: $lineas[$i] <br>; <html><body>Usted es:
Sin embargo, la manera completa de abrir un archivo es con fopen. Su sintaxis <?
session_start();
es: $_SESSION[usuario]=$_POST[user];
$f=fopen(archivo,flags); echo $_SESSION[usuario];
?>
$f es un puntero de archivo. Los flags son w para sobreescribir (borra el <br><a href=pag2.php>Seguir</a>
archivo y escribe desde el principio), r para leer, a para anexar (escribir al </body></html>
final), etc. pag2.php
Para leer o escribir -teniendo $f ya definido por fopen- se usan: <html><body>Usted an es:
<?
fwrite($f, escribo esto!!!\n); //evidente
session_start();
$txt = fread($f,n_bytes); //lee n_bytes de $f
echo $_SESSION[usuario];
Cuando se deja de usar el archivo, se debe cerrar: ?>
<br><a href=salir.php>Salir</a>
fclose($f);
</body></html>
As se asegura que los cambios han sido guardados.
salir.php
<? session_destroy(); ?>
Procesamiento de formularios <html><body>Sesin terminada</body></html>
Esta es una de las funciones ms importantes de PHP. Y es bastante simple. Al ingresar a index.php, se ver un formulario. Al llenarlo, una sesin ser
Primero hay que tener un formulario en una pgina. Por ejemplo: creada en pag1.php (la pgina que procesa el formulario) y ver el nombre
<form action=pag2.php method=POST> //o GET ingresado en el formulario. Al seguir el link a pag2.php, deber seguir viendo el
<input name=campo1 ...>
<input name=campo2 ...> nombre ingresado en el formulario, probando la creacin de la sesin. Al seguir
... el link a salir.php, habr destruido la sesin.
<input type=submit>
</form>
Para ms informacin: http://www.php.net
Cuando el usuario pulse el botn submit (o enviar en espaol), la siguiente