Semana 2. Lo básico de programación en PHP [Aug. 27, 2011, 9:50 a.m.]
PHP es un lenguaje de programación de tipo imperativo, es decir recibe una serie de instrucciones de lo que debe hacer y las va ejecutando una a una en orden. Todos los lenguajes imperativos tienen por lo menos las siguientes clases de instrucciones:
- Asignación: para dar un valor a una variables. Una variable es una área de memoria a la que se puede asignar un valor. Cada valor tiene un tipo en PHP, los tipos simples son booleano (verdadero o falso), entero, flotante y cadena.
- Expresiones: que permiten realizar operaciones que se evaluan en un valor de un tipo simple, por ejemplo operaciones aritméticas, operaciones booleanas y concatenación de cadenas.
- Condicionales: que permite realizar una acción sólo en caso de que cierta condición se cumpla.
- Ciclos: para repetir una serie de instrucciones cierto número de veces.
- Funciones: que permiten agrupar bajo un nombre y con unos parámetros una seríe de instrucciones para ejecutarlas desde diversas partes del programa con diferente valor para los parámetros.
<?php $v = 5; echo "El valor es: $v\n"; ?>El resultado sería:
El valor es: 5El ejemplo anterior lo podemos ampliar con una nueva asignación pero con una expresión:
<?php $v = 5; echo "El valor es: $v\n"; $v = $v * 2 + 2; echo "El nuevo valor es: $v\n"; ?>que presentará:
El valor es: 5 El nuevo valor es: 12Agregando un condicional:
<?php
$v = 5;
echo "El valor es: $v\n";
$v = $v * 2 + 2;
echo "El nuevo valor es: $v\n";
if ($v > 10) {
echo "Que es mayor que diez\n";
} else {
echo "Que es menor o igual diez\n";
}
?>
Para experimentar además de ver el resultado como se ve en el ejemplo, repitalo
cambiando la asignación inicial por $v = 2;
Con un cíclo que se repite la cantidad el número de veces que contiene $v quedaría:
<?php
$v = 5;
echo "El valor es: $v\n";
$v = $v * 2 + 2;
$i = 1;
while ($i <= $v) {
echo "Ahora el valor de \$i es: $i\n";
if ($i > 10) {
echo "Que es mayor que diez\n";
} else {
echo "Que es menor o igual a diez\n";
}
$i = $i + 1;
}
?>
Finalmente para ejemplificar la definición y llamado de una función:
<?php
function muestra($v) {
echo " La función muestra recibió el valor: $v\n";
$v = $v * 2 + 2;
$i = 1;
while ($i <= $v) {
echo " Ahora el valor de \$i es: $i\n";
if ($i > 10) {
echo " Que es mayor que diez\n";
} else {
echo " Que es menor o igual a diez\n";
}
$i = $i + 1;
}
return $i;
}
echo "Llamando función muestra con argumento 5 para el parámetro \$v\n";
$r = muestra(5);
echo "El valor retornado fue: $r\n";
echo "Ahora llamandola con argumento 2 para el parámetro \$v\n";
$r = muestra(2);
echo "Ahora el valor retornado fue: $r\n";
?>
Lea hasta la sección 1.4 de ayudadesprog (http://structio.sourceforge.net/guias/ayudadesprog/ayudadesprog.html) en las partes referentes a PHP.
Para producir páginas HTML dinámicas con PHP es necesario que tenga bien
instalados y configurados PHP y Apache. En tales casos puede dejar sus
programas HTML+PHP en archivos con extensión .php, ubicados en un directorio
utilizable por el servidor web. Por ejemplo en adJ puede crear un
directorio /var/www/htdocs/ejemplos y allí crear un primer archivo PHP
/var/www/htdocs/ejemplos/primer.php cuyo contenido sea:
<html> <head> <title>Volvinedo a comenza en HTML</title> </head> <body> <?php $v = 5; echo "El valor es: <em>$v</em><br>"; $v = $v * 2 + 2; echo "El <b>nuevo</b> valor es: <em>$v</em>\n"; ?> </body> </html>podrá ver el resultado consultado con un navegador la dirección http://127.0.0.1/ejemplos/primer.php Alternativamente puede copiar y pegar este ejemplo y otros sencillos de HTML con PHP en http://codepad.viper-7.com Lea también "Un tutorial sencillo" de PHP en http://co.php.net/manual/es/tutorial.php Finalmente lea en la documentación oficial de PHP las funciones para realizar conexiones a bases de datos PostgreSQL: http://co.php.net/manual/es/ref.pgsql.php
2. Ejercicios
Para programar es indispensable practicar mucho.
- Realice el ejercicio 1 de la sección 1.1.7 de ayudadesprog.
- Realica el ejercicio 1 de la sección 1.2.4 y los ejercicios 1, 2 y 3 de la sección 1.2.5 de ayudadesprog (en PHP)
- Ejercicios 1 y 2 de la sección 1.3.5 de ayudadesprog
- Ejercicios 1 y 2 de la sección 1.4.7 y ejercicio 1 de la sección 1.4.8
- Para conectarse a la base de datos que creo en la semana anterior y examinar los datos, puede emplear:
<html> <head> <title>Ejemplo PostgreSQL</title> </head> <body> <?php echo "Conexión "; $con = pg_connect("host=localhost port=5432 dbname=contactos user=contactos pass word=miclave"); if (!$con) { die("No pudo abrise base de datos"); } echo "<em>establecida</em><br>"; echo "Datos: <br>"; $res =pg_query($con, "SELECT nombres, apellidos, sexo FROM persona"); if (!$res) { die("Error al realizar consulta"); } while ($reg = pg_fetch_row($res)) { echo "Nombres: <em>{$reg[0]}</em>, Apellidos: <em>{$reg[1]}</em>, Sexo: <em> {$reg[2]}</em>"; echo "<br />\n"; } pg_close($con); ?> </body> </html>Uselo y después modifiquelo para que presente los datos en una tabla y lo más agradables que pueda usando HTML y CSS. - Opcional: Lea sobre ataques XSS, explique que significa, indique como podría ocurrir uno en el ejemplo que hemos trabajo y como podría evitarse.
Publique dudas y ayudas como comentario a esta tarea.
3. Bibliografía
- Vladimir Támara Patiño. Ayuda para Desarrollo de Programas. 2006. http://structio.sourceforge.net/guias/ayudadesprog/ayudadesprog.html.
- PHP. Un tutorial sencillo. http://co.php.net/manual/es/tutorial.php
- PHP Manual http://co.php.net/manual/es/ref.pgsql.php
4. Términos y Condiciones Especiales
Este escrito se cede al dominio público de acuerdo a la legislación colombiana, agradeciendo se de crédito a Pasos de Jesús. 2011. Ver https://www.pasosdejesus.org/dominio_publico_colombia.html.