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.