PHP Desde Cero

165
Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº4 del Tutorial básico “PHP desde cero”. Autor: Enrique González Gutiérrez APRENDERAPROGRAMAR.COM ¿QUÉ ES PHP? ¿PARA QUÉ SIRVE PHP? UN POTENTE LENGUAJE DE PROGRAMACIÓN PARA CREAR PÁGINAS WEB (CU00803B)

Transcript of PHP Desde Cero

Page 1: PHP Desde Cero

¿Qué es PHP? ¿Para qué sirve PHP? Potente lenguaje de programación 

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº4 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

¿QUÉ ES PHP? ¿PARA QUÉ SIRVE PHP? UN POTENTE LENGUAJE DE PROGRAMACIÓN PARA CREAR PÁGINAS WEB (CU00803B)

Page 2: PHP Desde Cero

¿Qué es PHP? ¿Para qué sirve PHP? Potente lenguaje de programación 

© aprenderaprogramar.com, 2006-2012

¿QUÉ ES PHP? ¿PARA QUÉ SIRVE PHP? 

 

PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser incrustado en HTML. Es popular porque un gran número de páginas y portales web están creadas con PHP. Código abierto significa que es de uso libre y gratuito para todos los programadores que quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas.

PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc. ¿Cómo trabaja PHP? El lenguaje PHP se procesa en servidores, que son potentes ordenadores con un software y hardware especial. Cuando se escribe una dirección tipo http://www.aprenderaprogramar.com/index.php en un navegador web como Internet Explorer, Firefox o Chrome, ¿qué ocurre? Se envían los datos de la solicitud al servidor que los procesa, reúne los datos (por eso decimos que es un proceso dinámico) y el servidor lo que devuelve es una página HTML como si fuera estática. El esquema es: Petición de página web al servidor --> El servidor recibe la petición, reúne la información necesaria consultando a bases de datos o a otras páginas webs, otros servidores, etc --> El servidor responde enviando una página web “normal” (estática) pero cuya creación ha sido dinámica (realizando procesos de modo que la página web devuelta no siempre es igual). En resumen: Páginas estáticas: Petición --> Respuesta Páginas dinámicas: Petición --> Procesado y preparación --> Respuesta En un sitio dinámico, la información generalmente está contenida en una base de datos. Cada vez que mostramos la página, como por ejemplo una página de noticas, buscamos en la base de datos las últimas noticias que tenemos ingresadas para mostrar en el navegador del visitante. Ahora bien, ¿cómo se consigue que la página vaya mostrando noticias nuevas? Simplemente cargando las mismas en la base de datos, por ejemplo, a través de un formulario que rellena una persona y que una vez relleno cuando pulsa “Enviar” implica que lo que haya escrito se guarde en nuestra base de datos. De esta manera, cuando solicitamos la página web y el servidor consulte la base de datos, encontrará esta nueva información y mostrará nuestra página de forma distinta a como se veía anteriormente.

Page 3: PHP Desde Cero

¿Qué es PHP? ¿Para qué sirve PHP? Potente lenguaje de programación 

© aprenderaprogramar.com, 2006-2012

Por regla general este tipo de lenguaje suele ser utilizado para crear contenido dinámico y poder interactuar con el usuario. Veamos un ejemplo del contenido de una página web php, que habremos de almacenar en un archivo que termina con la extensión .php y que contiene texto:  

 

 

 

 

 

 

 

 

 

 

Como podrás comprobar el contenido del archivo incluye código HTML y en un momento dado aparece una etiqueta <?php que significa que ahí empieza el código PHP. Por eso decimos que el código PHP está embebido (incluido) en código HTML. Por tanto las páginas PHP contienen HTML con código PHP incluido en ellas para hacer "algo" (en este caso, mostrar Bienvenidos a aprenderaprogramar.com. El código PHP está comprendido entre etiquetas de comienzo y final especiales: <?php y ?> Estas etiquetas especiales nos permitirán entrar y salir del "modo PHP". Le sirven al servidor web para saber que tiene que interpretar el código incluido entre esas etiquetas como PHP. Lo que distingue a PHP de JavaScript es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente como si fuera una página web estática. El cliente recibirá los resultados que el servidor devuelve después de interpretar el código PHP, sin ninguna posibilidad de determinar qué código ha producido el resultado recibido. Es decir, a través de nuestro navegador podríamos ver el código HTML, pero nunca el código PHP que dio lugar al resultado HTML. El servidor web puede ser incluso configurado para que los usuarios no puedan saber si estás o no utilizando PHP. Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas características avanzadas para los programadores profesionales y más avanzados. Con PHP puedes procesar la información de formularios, generar páginas con contenidos dinámicos, o enviar y recibir cookies, entre muchas más cosas. PHP lo utilizan desde pequeñas páginas web hasta grandes empresas. Muchas aplicaciones web están construidas usando PHP. Podemos citar Joomla y Drupal (gestores de contenido de páginas web), osCommerce (tiendas on-line para comercio electrónico), phpBB y SMF (sistemas de foros para páginas web), Moodle (plataforma educativa para educación on-line), etc.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Ejemplo</title> </head> <body> <?php echo "Bienvenidos a aprenderaprogramar.com"; ?> </body> </html>

Page 4: PHP Desde Cero

¿Qué es PHP? ¿Para qué sirve PHP? Potente lenguaje de programación 

© aprenderaprogramar.com, 2006-2012

Entre las habilidades de PHP se incluye la creación de imágenes a partir de datos. Por ejemplo, supongamos que tenemos una academia con 20 alumnos matriculados en un curso de informática, 50 alumnos matriculados en un curso de matemáticas y 30 alumnos matriculados en un curso de química. Con PHP podemos generar automáticamente imágenes similares a esta:

PHP también puede utilizar y presentar resultados en otros estándares de datos o lenguajes propios de los desarrollos web, como XHTML y cualquier otro tipo de ficheros XML. PHP puede autogenerar éstos archivos y almacenarlos en el sistema de archivos en vez de presentarlos en la pantalla, utilizando estos ficheros para generar contenido dinámico. Es decir, el contenido dinámico puede surgir de otros sitios además de desde bases de datos. También se puede interactuar con otros servidores usando cualquier protocolo. Por último, PHP puede enlazarse con otros lenguajes muy potentes como Java.

 

 

 

 

 

 

 

 

Próxima entrega: CU00804B

Page 5: PHP Desde Cero

Comunicación entre el cliente y el servidor sin PHP y con PHP

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº4 del Tutorial básico del programador web: PHP desde cero.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

Page 6: PHP Desde Cero

Comunicación entre el cliente y el servidor sin PHP y con PHP

© aprenderaprogramar.com, 2006-2012

COMUNICACIÓN ENTRE EL CLIENTE Y EL SERVIDOR SIN PHP Y CON PHP

Intentaremos explicar ahora cuales son las diferencias entre una petición a un servidor sin PHP y con

PHP. Esto nos permitirá ver cuales son las principales diferencias entre una página web estática en

HTML y una página web dinámica en PHP.

Empezaremos recordando a qué llamamos servidor y a qué llamamos cliente, de forma muy

simplificada. Llamamos servidores a ordenadores generalmente potentes, con un software y hardware

especial, y que se encargan de resolver peticiones que le hacen decenas, cientos o miles de

ordenadores. Hablamos de cliente en general para referirnos a ordenadores tipo ordenador personal de

los que habitualmente tenemos en nuestra casa o en nuestra oficina de trabajo. Un cliente

normalmente trabaja combinando lo que es su entorno local (por ejemplo nuestro sistema de archivos

y programas instalados en nuestro ordenador) con peticiones a un servidor: por ejemplo cuando nos

conectamos a internet y tecleamos una dirección web (URL), lo que hacemos es realizar una petición a

un servidor. En este caso sería un servidor web, pero hay distintos tipos de servidores (de bases de

datos, xml, etc.). El servidor le responde al cliente entregándole lo que ha solicitado si es posible o, en

algunos casos, indicando que no tiene permisos para obtener lo solicitado, que lo que ha solicitado no

existe, etc.

Estas definiciones son definiciones simplificadas y muy someras, pero para los objetivos de este curso

nos resultarán suficientes.

COMUNICACIÓN ENTRE EL CLIENTE Y EL SERVIDOR SIN PHP

En primer lugar, lo que hacemos es escribir en la barra de direcciones del navegador, la url de la página

web que queremos ver. Después el navegador envía el mensaje a través de internet al ordenador

remoto (servidor), de acuerdo con un protocolo estandarizado, solicitando la página en cuestión

(ejemplo: www.aprenderaprogramar.com/index.html). El servidor comprueba que la petición es válida

y lee el archivo solicitado desde su disco duro. Todo ello es posible gracias al software instalado en el

servidor. Acto seguido, el servidor web envía el archivo solicitado por el navegador tal cual está en el

disco duro. Y, por último, el navegador muestra en pantalla el archivo que envió el servidor web.

Este proceso siempre es el mismo cuando hablamos de páginas estáticas (coloquialmente, “páginas que

no cambian”). Cualquiera que sea el cliente que solicita la página, el contenido devuelto siempre será el

mismo. La única forma de que el contenido del archivo cambie es que el administrador de ese sitio web

edite el contenido del archivo index.html y haga modificaciones.

Page 7: PHP Desde Cero

Comunicación entre el cliente y el servidor sin PHP y con PHP

© aprenderaprogramar.com, 2006-2012

COMUNICACIÓN ENTRE EL CLIENTE Y EL SERVIDOR CON PHP. INTÉRPRETE PHP Y GESTORES DE BASES

DE DATOS.

Empezamos escribiendo en la barra de direcciones del navegador la url de la página web que queremos

ver. En segundo lugar, el navegador envía el mensaje a través de internet al ordenador remoto

(servidor), de acuerdo con un protocolo estandarizado, solicitando la página (archivo) index.php.

(ejemplo: www.aprenderaprogramar.com/index.php).

El servidor web recibe el mensaje, comprueba que se trata de una petición válida, y al ver que la

extension es "php" solicita al intérprete de PHP (que es otro programa que se ejecuta en el servidor

web) que le envíe el archivo.

En este caso la situación ha variado: no se trata de una simple extracción de un archivo desde el disco

duro, sino que está actuando un agente intermediario: el intérprete PHP. El intérprete PHP lee desde el

disco duro del servidor el archivo index.php y empieza a procesar las instrucciones (código de

programación) que contenga dicho archivo. Decimos que el intérprete PHP “ejecuta” los comandos

contenidos en el archivo y, eventualmente, se comunica con un gestor de base de datos (ejemplos de

ellos pueden ser MySql, Oracle, SQL Server, etc.). La comunicación con base de datos no siempre se

produce, pero es algo muy frecuente cuando trabajamos con PHP. Tenemos pues otra diferencia con las

webs estáticas: interviene otro agente más, el gestor de base de datos, que es capaz de devolver la

información contenida en lugares determinados de una base de datos. Y una base de datos podemos

verla simplemente como un gran almacén de información organizada en tablas.

Una vez el intérprete PHP termina de ejecutar el código contenido en el archivo y ha recibido toda la

información necesaria del gestor de base de datos, envía los resultados al servidor web. El servidor web

envía la página al cliente que la había solicitado y el navegador muestra en pantalla la información que

le envía el servidor web.

En lenguajes de programación como C o Java estamos acostumbrados a que cuando ejecutamos un

código, observamos unos resultados en la pantalla de nuestro ordenador. Sin embargo, en PHP el

resultado que se obtiene después de ejecutar código es código HTML que es el que interpretará el

navegador para mostrar la página web.

Una cuestión interesante, y curiosa, es preguntarnos sobre cuál es la diferencia entre el código HTML

que le llega al cliente cuando solicita una página estática y el código HTML que le llega cuando solicita

una página dinámica. La respuesta es que no hay diferencia: ambos son código HTML. ¿Cómo

podríamos saber si un código HTML proviene de un archivo html, estático, o si proviene de una

respuesta de un intérprete PHP? Pues digamos que si simplemente nos dan el código no podríamos

saber de dónde viene.

Y otra cuestión que se puede plantear: si tanto con PHP como sin PHP lo que obtenemos es código

HTML, ¿para qué nos sirve el PHP? Bien, PHP es un lenguaje de programación, mientras que HTML no lo

es. Con HTML podemos enviar cierta información siempre igual, pero no podemos hacer cálculos, no

podemos tomar decisiones, no podemos repetir procesos cierto número de veces. En definitiva, PHP

aporta toda la potencia que supone la programación de ordenadores al mundo de las páginas web.

Page 8: PHP Desde Cero

Comunicación entre el cliente y el servidor sin PHP y con PHP

© aprenderaprogramar.com, 2006-2012

Pongamos un ejemplo muy sencillo: queremos que en una página web se produzca un proceso de venta

a través de una tarjeta de crédito. Una vez el cliente elige el producto, número de unidades que quiere

y lugar de envío necesitaremos realizar unos cálculos: esto lo podemos hacer con PHP (también con

otros lenguajes, pero vamos a centrarnos en el objeto de este curso). Una vez realizados los cálculos, le

mostraremos al cliente el importe total y los datos de su compra y le pediremos que introduzca el

número de su tarjeta de crédito y su clave personal. Ahora hay que tomar una decisión: para esto no

nos sirve el HTML. Sin embargo, usando PHP podemos consultar a una base de datos donde estén

almacenados los números de tarjetas de crédito válidas del banco y sus claves. Una vez hecha esta

consulta, usando PHP podemos mostrar al usuario un resultado distinto según la situación que se haya

producido, por ejemplo:

- Los datos no son válidos. La compra no ha podido realizarse.

- Los datos son válidos. Se ha realizado satisfactoriamente la compra. Recibirá su pedido en su

domicilio en un plazo de 10 días. Gracias por confiar en nosotros.

Php es un lenguaje de programación y HTML no lo es, esta es una gran diferencia. ¿Si PHP es mucho

más potente, por qué no prescindir de HTML? Digamos que cada lenguaje cumple su función: HTML es

un lenguaje muy ordenado que permite enviar información de forma rápida para que se muestre algo

en un ordenador. En este sentido, es más rápido enviar la información en formato HTML que de otra

manera (por ejemplo un archivo ejecutable que se tuviera que ejecutar en el cliente). Por eso HTML

sigue siendo relevante dentro del mundo de internet: es un formato muy usado para el envío de

información. Cómo se haya generado esa información es otra cuestión.

En el siguiente esquema podemos ver el proceso completo.

Próxima entrega: CU00805B

Page 9: PHP Desde Cero

Diferencia entre páginas web estáticas y páginas web dinámicas con PHP.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº5 del Tutorial básico del programador web: PHP desde cero.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

DIFERENCIAS, VENTAJAS E INCONVENIENTES DE PÁGINAS WEB ESTÁTICAS Y DINÁMICAS CON PHP. BUSCADORES Y URLs AMIGABLES. (CU00805B)

Page 10: PHP Desde Cero

Diferencia entre páginas web estáticas y páginas web dinámicas con PHP.

© aprenderaprogramar.com, 2006-2012

DIFERENCIA ENTRE PÁGINAS WEB ESTÁTICAS Y PÁGINAS WEB DINÁMICAS CON PHP

Vamos a repasar algunos conceptos que ya hemos mencionado y que es importante que queden claros.

Las páginas web estáticas o “planas” son aquellas en las que la información se presenta en forma

predefinida y sin cambios. No hay manera de que pueda cambiar el contenido de la página. En caso de

que se quiera actualizar una pagina estática, se tendrá que acceder directamente al servidor en el que

se encuentra alojada para hacer la edición del archivo correspondiente.

A la información contenida en una página estática se le puede dar un determinado formato de

presentación, así como incluirle imágenes, enlaces a otras páginas, animaciones, videos, sonidos, etc.

En general, todo se hace a través de etiquetas HTML y esto es lo único que puede ofrecerse a través de

este tipo de páginas.

En los inicios de Internet predominaban las páginas estáticas, pero con el paso del tiempo y ante la

necesidad de agilizar el manejo de la información, surge un nuevo concepto de páginas web que hoy

sobresale y es el más utilizado. Estas son denominadas páginas dinámicas: dentro de la programación

dinámica para páginas web hay distintos lenguajes (entre los que cabe destacar PHP, ASP y JSP), siendo

php uno de los más usados.

Normalmente, las páginas estáticas están compuestas por código HTML. Cuando la página (archivo) es

solicitada por el navegador, el servidor la envía y no realiza ninguna operación más. Todos los visitantes

verán el mismo contenido.

Las páginas web dinámicas son aquellas en que la información que presentan se genera a partir de

alguna acción o petición del usuario en la página o mediante consultas al contenido de bases de datos

que normalmente cambian con frecuencia. Contrariamente a las páginas estáticas, en las que su

contenido se encuentra predeterminado, en las dinámicas la información aparece inmediatamente

después de una solicitud echa por el usuario o de una consulta a bases de datos. Una página dinámica

permite visualizar la información contenida en una base de datos, así como almacenar y hacer

actualizaciones de cierta información en bases de datos a través de formularios donde el usuario

introduce contenidos. Piensa por ejemplo en una red social como FaceBook: cuando se escribe en una

casilla de texto y se pulsa enter, la información introducida se almacena en una base de datos. Ahora

cuando otro usuario entra en FaceBook, esa información introducida por un usuario se le muestra a

otro usuario gracias a que se está rescatando de una base de datos. La programación dinámica tiene

múltiples aplicaciones, entre las que podemos citar los sistemas de foros (los mensajes, imágenes, etc.

se almacenan en bases de datos). Otra aplicación consiste en que el usuario tiene la posibilidad de

cambiar a su gusto el diseño y el contenido de una página, por ejemplo la página de inicio personalizada

de Google, gracias a que sus opciones se almacenan en una base de datos.

Page 11: PHP Desde Cero

Diferencia entre páginas web estáticas y páginas web dinámicas con PHP.

© aprenderaprogramar.com, 2006-2012

Queda claro entonces que para la creación de este tipo de páginas dinámicas, además de etiquetas

HTML es necesaria la utilización de algún lenguaje de programación que se ejecute del lado del servidor

(es decir, que el servidor realice un proceso antes de enviar la información al usuario de modo que a

cada usuario le puede enviar distintas informaciones como resultado de ese proceso), así como la

existencia de una o varias bases de datos.

Si creamos un sitio web que usa páginas webs dinámicas, estas páginas son procesadas por el servidor

antes de ser enviadas al navegador.

Una página .php contiene código PHP que al ser ejecutado generará código HTML. En ese proceso de

ejecución de código, pueden hacerse consultas a bases de datos u otros archivos. Además, pueden

realizarse cálculos o tomarse decisiones gracias a la potencia de la programación.

El resultado final es que se envía al navegador código HTML, que es generado para cada visitante en

particular dependiendo por ejemplo del contenido de la base de datos en ese momento o de las

opciones de configuración o solicitudes específicas del usuario. Otras personas podrán obtener

diferentes resultados si acceden en un momento en que la base de datos haya cambiado, o si tienen

opciones de configuración o realizan una solicitud distinta. Ten en cuenta que aunque la URL nos

muestre una extensión .php, lo que recibe el usuario es código HTML. Por ejemplo la URL siguiente:

http://www.aprenderaprogramar.com/index.php

Siempre devuelve código HTML. Pero no siempre devuelve el mismo código HTML porque para generar

ese código existen procesos en el servidor que hacen que los resultados puedan variar.

¿Cómo reconocer si una web que visitamos es dinámica o estática? En general, es dinámica aquella que

puede interactuar con el visitante y/o administrador web, pudiéndose modificar el contenido de la

página según el momento u opciones escogidas. Ejemplos de esto son: cuando el usuario puede escribir

un comentario, escoger los productos y ponerlos en un carrito de compras, subir archivos o fotografías,

etc. En este caso SI se utilizan bases de datos y se requiere programación web dinámica.

Las páginas web dinámicas ofrecen muchas ventajas en comparación con las páginas web estáticas,

como una mayor interactividad con el usuario y facilidad para el cambio y actualización de contenidos.

A las personas que administran las páginas web (webmasters, programadores, gestores de contenidos),

la programación dinámica les permite una reducción en tiempo y costos, así como una mayor facilidad

en el mantenimiento de un sitio web.

RESULTADOS EN BUSCADORES USANDO PÁGINAS WEB DINÁMICAS

Ante todas las ventajas de este tipo de páginas cabe citar una desventaja “histórica” en cuanto a los

resultados obtenidos en buscadores como Bing, Google o Yahoo. Hasta hace unos años, los buscadores

consideraban que una web dinámica era no indexable (no registrables sus contenidos de cara a

búsquedas) debido a que no se podía ofrecer como resultado de un buscador algo que cambiaba con

Page 12: PHP Desde Cero

Diferencia entre páginas web estáticas y páginas web dinámicas con PHP.

© aprenderaprogramar.com, 2006-2012

frecuencia. Es frecuente oir el término “URL amigable” en referencia a una dirección web que es

sencilla y recuerda un texto simple, por ejemplo:

http://www.aprenderaprogramar.com/cursos/cursophp/paginas-dinamicas-y-estaticas.htm

Por el contrario, muchas veces se dice que cuando las páginas contienen .php y numerosos parámetros

con caracteres como "?", "&" y "=" la URL no es amigable. Por ejemplo:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=8

Esta situación en la actualidad puede considerarse superada: los buscadores se han sofisticado y son

capaces de indexar URL´s dinámicas sin problemas. Algunas aplicaciones de software libre como Joomla

siguen manteniendo sistemas que permiten convertir las URL´s dinámicas en URL´s amigables, pero en

general podemos decir que esto es cada vez menos necesario. Desde nuestro punto de vista, es más

importante tener una página web con un buen diseño, bien estructurada en cuanto a menús y

contenidos, que se actualice con frecuencia y que ofrezca contenidos de calidad, más que tener o no

tener URL´s amigables.

Próxima entrega: CU00806B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 13: PHP Desde Cero

¿Es PHP un buen lenguaje de programación? Versiones. Historia.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº6 del Tutorial básico del programador web: PHP desde cero.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

¿ES PHP UN BUEN LENGUAJE DE PROGRAMACIÓN? ¿CUÁLES SON LAS VERSIONES DE PHP? UN POCO DE HISTORIA. (CU00806B)

Page 14: PHP Desde Cero

¿Es PHP un buen lenguaje de programación? Versiones. Historia.

© aprenderaprogramar.com, 2006-2012

¿ES PHP UN BUEN LENGUAJE DE PROGRAMACIÓN?

Los orígenes de PHP están fechados en torno al año 1995. Sin embargo, fue a partir del año 1999 con la

publicación de PHP 4 cuando este lenguaje de programación tomó un verdadero auge. En sus primeros

estadios de desarrollo, PHP se denominaba también “Zend Engine”, nombre que provenía del nombre

de sus creadores: Zeev Suraski y Andi Gutmans.

En el año 2004 fue lanzada la versión 5 de PHP basada en el nuevo motor Zend Engine 2.0. Esta nueva

versión ofrecía mejoras para aplicaciones en servidores dedicados como por ejemplo un mejor soporte

para la programación orientada a objetos y una extensión completamente nueva para el uso de MySQL,

una de las bases de datos más usadas en servidores.

La versión 6 de PHP está previsto que aparezca en breve con nuevas mejoras en relación a la

programación orientada a objetos, soporte para Unicode, etc.

Algunas estadísticas indican que alrededor del 60% de los sitios Web en Internet utilizan PHP. Este dato

realmente no es comprobable a ciencia cierta, lo que sí es cierto es que PHP es un lenguaje de

programación que goza de gran popularidad y difusión. A esta circunstancia hay que añadir el hecho de

que páginas web de mucha importancia como Wikipedia o Yahoo se apoyan en este lenguaje, lo cual

demuestra que es un lenguaje muy potente que puede servir desde para pequeñas páginas web hasta

para grandes portales.

Muchas de las aplicaciones que se generan en comunidades de programadores y usuarios de software

libre usan PHP porque está disponible gratuitamente y es potente. Gracias a eso, grandes proyectos

como Wordpress, Joomla o Drupal han basado su desarrollo en el lenguaje de programación PHP.

¿Es PHP un buen lenguaje de programación? En lo referente a si PHP es un “buen” lenguaje de

programación hay que tener en cuenta muchos factores ya que el resultado final de un desarrollo web

o de una aplicación web no sólo depende de la herramienta sino de quién la maneja y cómo la maneja.

Podemos afirmar que PHP utilizado correctamente es un muy buen lenguaje de programación.

Lo que está claro es que, aunque tiene ventajas e inconvenientes, es uno de los lenguajes de

programación más difundidos en Internet y se encuentra disponible en prácticamente la totalidad de

los servidores dedicados. Cuando algo tiene éxito y amplia difusión, “por algo será”.

Page 15: PHP Desde Cero

¿Es PHP un buen lenguaje de programación? Versiones. Historia.

© aprenderaprogramar.com, 2006-2012

LA EVOLUCIÓN DE PHP EN EL TIEMPO. LAS VERSIONES.

PHP 3

PHP 3.0, liberada en 1998, era la primera versión que se parecía fielmente al PHP tal y como lo

conocemos hoy en día.

Una de las mejores características de PHP 3.0 era su gran extensibilidad. Cuando hablamos de

extensibilidad nos referimos a la existencia de un núcleo o core al que se le pueden ir añadiendo

fragmentos de código que permiten hacer más cosas. Se trataría de algo parecido a tener una base

sobre la que podemos ir añadiendo piezas. Veamos una imagen:

En esta imagen, correspondiente a los juegos de niños armables “Lego”, vemos cómo existe una base

verde. Esa base sería el core o núcleo de PHP. Luego, aprovechando que esa base tiene preparados los

anclajes para seguir poniendo piezas, vemos que se le han añadido extensiones. Por ejemplo, la primera

extensión que tiene una base azul podría ser una extensión que permita la gestión de correos

electrónicos. La segunda extensión, que tiene una base verde, podría ser una extensión para gestionar

imágenes, y así sucesivamente…

Además de facilitar el trabajo con muchas bases de datos, protocolos y sistemas informáticos, las

características de extensibilidad de PHP 3.0 atrajeron a muchos programadores a unirse al proyecto y

enviar nuevos módulos de extensión. Esta fue la clave del enorme éxito de PHP 3.0: que fue un

proyecto abierto al que se unieron muchos programadores formando una comunidad.

Todo el nuevo lenguaje fue liberado con el nombre de 'PHP', con el significado de ser un acrónimo

juego de las letras iniciales de “Hypertext Preprocessor”.

Page 16: PHP Desde Cero

¿Es PHP un buen lenguaje de programación? Versiones. Historia.

© aprenderaprogramar.com, 2006-2012

A partir de su lanzamiento, PHP creció pasando a ser usado por miles de programadores y cientos de

miles de sitios Web. Se estima que PHP 3.0 conquistó una fracción del total de servidores mundiales de

en torno al 10 %, lo cual fue un éxito rotundo.

PHP 4

La principal novedad de PHP 4 está en el intérprete del lenguaje PHP. Con la nueva versión se lograron

aumentos de entre 5 y 10 veces en la velocidad de ejecución de páginas PHP respecto a la versión

anterior, lo cual fue un salto muy importante.

Además del aumento en rendimiento, se introdujeron novedades relacionadas con el soporte de

objetos en PHP. La programación orientada a objetos es una forma avanzada de programación y gracias

a estas características PHP se encuentra entre los lenguajes de vanguardia.

Otra nueva característica de PHP 4 fue que podía soportar hilos cosa que en PHP 3 no era posible. Un

hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea. La principal ventaja

que podemos obtener de esta funcionalidad es que se pueden estar haciendo varias cosas al mismo

tiempo sin tener que esperar a que se termine una tarea para empezar otra.

Para los programadores, PHP 4 incluía un depurador. Un depurador viene siendo un asistente que nos

ayuda a detectar dónde se encuentran los errores en los programas o código de desarrollo. Esto ayuda

mucho al programador y le evita quebraderos de cabeza por no poder localizar errores. Gracias al

depurador, se podían seguir con mayor profundidad esos errores “misteriosos” que hacían perder

mucho tiempo.

PHP 5

La principal característica de PHP 5 con respecto a PHP 4 es la mejora en la programación orientada a

objetos (POO). Aunque este tipo de programación ya se había introducido en el lenguaje desde PHP 3,

las versiones anteriores a PHP 5 tenían bastantes limitaciones para el uso de este tipo de programación.

La orientación a objetos es una manera de programar que es muy usada hoy en día. No entraremos en

detalles sobre ella de momento, porque es algo avanzado dentro de la programación y en este curso

trataremos de avanzar poco a poco desde lo más básico hasta lo más complejo.

Page 17: PHP Desde Cero

¿Es PHP un buen lenguaje de programación? Versiones. Historia.

© aprenderaprogramar.com, 2006-2012

El principal objetivo de PHP 5 ha sido mejorar los mecanismos de programación orientada a objetos

para solucionar las carencias de las anteriores versiones. El resultado ha sido un lenguaje más potente,

que cada vez es más popular y que cada vez se usa más, tanto a nivel profesional en empresas como a

nivel de usuarios que quieren construir pequeñas páginas o portales web.

Algunas personas dicen que PHP se parece cada vez más a Java, que es quizás el lenguaje de

programación más usado en el mundo, y que también es un lenguaje de programación orientado a

objetos.

¿QUÉ VERSIÓN DE PHP USAR?

La versión de PHP a usar depende en gran medida de qué desarrollo queramos hacer. Por ejemplo, si

vamos a usar PHP para el gestor de contenidos Joomla 1.0, no es lo mismo que si vamos a usarlo para

Joomla 1.5 porque cada uno tiene sus propias necesidades en cuanto a la versión de PHP a usar. Es

decir, cada aplicación debe ir con su versión de PHP adecuada al igual que a un vehículo a motor

debemos echarle el tipo de combustible adecuado. Si a un coche diesel le echamos gasolina, no

funcionará bien. Si una aplicación que fue concebida para PHP 4 la intentamos ejecutar usando PHP 5,

probablemente ocurra lo mismo: no funcionará bien.

También debemos tener en cuenta que usar siempre la última versión de algo tiene sus riesgos. Por

ejemplo las últimas versiones no suelen estar tan testeadas como las anteriores y se pueden producir

‘agujeros de seguridad’ que tendremos que tapar con algún parche.

En nuestra opinión la versión de PHP que debemos usar es la que mejor se adapte a nuestras

necesidades y, dentro de ésta, la que sea más estable. Para este curso recomendaremos usar PHP 5.x

(al escribir 5.x nos referimos a cualquier versión de PHP 5). También es posible seguirlo usando PHP 4.x

No te preocupes ahora por la versión pues de cara al aprendizaje básico no es importante. En cambio, sí

deberás prestar atención a la versión si tratas de instalar aplicaciones como Joomla, Drupal o

WordPress en un servidor, pues hay que asegurarse de que la versión de la aplicación sea compatible

con la versión de PHP en el servidor.

Próxima entrega: CU00807B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 18: PHP Desde Cero

¿Qué necesito para escribir código PHP y crear páginas web dinámicas?

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº7 del Tutorial básico del programador web: PHP desde cero.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

¿QUÉ NECESITO PARA ESCRIBIR CÓDIGO PHP Y CREAR WEBS DINÁMICAS? TRABAJAR EN REMOTO O EN LOCAL CON WAMP, XAMPP, MAMP O LAMP (CU00807B)

Page 19: PHP Desde Cero

¿Qué necesito para escribir código PHP y crear páginas web dinámicas?

© aprenderaprogramar.com, 2006-2012

¿QUÉ NECESITO PARA ESCRIBIR CÓDIGO PHP Y CREAR PÁGINAS WEB DINÁMICAS?

Los requisitos indispensables para poder escribir y crear páginas PHP son los siguientes:

• Disponer de un editor de textos con el que escribir el código de la página PHP. Por ejemplo el

Notepad++ es más que suficiente (el “Bloc de notas” de Windows también valdría pero es

mucho más limitado).

En vez de un editor de textos podríamos usar un programa más avanzado (entorno de desarrollo), pero

en este curso vamos a centrarnos en el manejo básico de PHP, por lo que utilizaremos un editor de

textos.

• Un servidor dónde nuestras páginas PHP sean interpretadas y devueltas después de dicha

interpretación.

• Una base de datos donde guardaremos, recuperaremos y consultaremos nuestros datos.

• Un navegador web, como por ejemplo Google Chrome. Puede valer cualquier otro como

Mozilla Firefox, Internet Explorer, Safari, etc.

Podemos destacar dos opciones:

OPCIÓN 1 OPCIÓN 2

La primera opción sería la de trabajar en

local. Para ello podemos hacer uso de un

paquete personal como WAMP SERVER que

nos ahorrará tiempo y quebraderos de

cabeza.

Este paquete instalará un servidor Apache, un

servidor de base de datos MySQL, con el

gestor phpMyAdmin y , por supuesto, PHP. Es

decir, instalando un programa en nuestro

ordenador podemos simular un servidor

dentro de él.

Otra posible opción sería la de utilizar un

servidor remoto. Alguno gratuito podría valer sin

más problemas. Para ello, nos registraríamos en

cualquier servicio hosting que ofrezca

alojamiento gratuito y a partir de hay con un

cliente ftp, como FileZilla, crearíamos nuestras

páginas webs dinámicas.

Page 20: PHP Desde Cero

¿Qué necesito para escribir código PHP y crear páginas web dinámicas?

© aprenderaprogramar.com, 2006-2012

TIPOS DE PAQUETES DE SERVIDOR PARA INSTALACIÓN EN NUESTRO ORDENADOR.

Entre los paquetes más populares, podemos destacar y nombrar.

Nombre Descripción Logo

WAMP SERVER

Wamp Server utiliza las siguientes

herramientas: Windows como Sistema

Operativo, Apache, como servidor

web, MySQL, como gestor de bases de

datos y PHP como intérprete del

lenguaje de programación PHP.

LAMP SERVER

Lamp Server es un sistema análogo

pero que funciona bajo el Sistema

Operativo Linux.

MAMP SERVER

Mamp Server es un sistema análogo

pero que funciona bajo el Sistema

Operativo Macintosh.

XAMPP SERVER

Este paquete tiene la característica

principal que se puede instalar para

cualquiera de los diferentes sistemas

opera-tivos, es decir, existen versiones

tanto para Windows como para Linux,

Macinstosh. Siendo, también, un

sistema análogo al Wamp Server.

¿Cuál de estos paquetes es mejor? Esta pregunta es de difícil respuesta. Si usamos Linux o Macintosh y

queremos instalar un paquete de este tipo, hemos de usar el propio de nuestro sistema operativo. Si

usamos Windows, nosotros recomendamos Wamp, pero Xampp puede ser igualmente válido.

Más importante que elegir entre uno de estos paquetes, es elegir si trabajar en local o en remoto.

Nosotros vamos a recomendar trabajar en remoto. Los motivos para ello y cómo hacerlo se expondrán

en próximas entregas. Por ahora, debemos conocer simplemente las alternativas.

Próxima entrega: CU00808B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 21: PHP Desde Cero

Preparando el entorno de desarrollo. Descargar e instalar Notepad++

© aprenderaprogramar.com, 2006-2012

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2012

Resumen: Entrega nº8 del Tutorial básico del programador web: PHP

desde cero.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

PREPARANDO EL

ENTORNO DE

DESARROLLO PARA

PROGRAMAR EN PHP.

DESCARGAR E INSTALAR

NOTEPAD++ (CU00808B)

Page 22: PHP Desde Cero

Preparando el entorno de desarrollo. Descargar e instalar Notepad++

© aprenderaprogramar.com, 2006-2012

PREPARANDO EL ENTORNO DE DESARROLLO. DESCARGAR E INSTALAR NOTEPAD++.

Vamos a comenzar a preparar el entorno con el que vamos a trabajar para poder crear páginas web

durante este curso. Lo primero que debemos hacer es descargar el editor de texto Notepad++ e

instalarlo. Para ello nos vamos a ir a la dirección siguiente: http://notepad-plus-plus.org

Cuando la página haya terminado de cargar, hacemos click en la sección download del menú izquierdo,

tal y como se muestra en la siguiente imagen.

En la página web que nos aparecerá, descargamos la versión “Installer” actual, por ejemplo Notepad++

v6.9.6.2 Installer.

Page 23: PHP Desde Cero

Preparando el entorno de desarrollo. Descargar e instalar Notepad++

© aprenderaprogramar.com, 2006-2012

Una vez descargado el archivo, lo ejecutamos para instalarlo en nuestro ordenador haciendo doble click

sobre él. El proceso de instalación es muy simple y no entraremos a explicarlo con más detalle.

Cuando tengamos instalado el programa, ya dispondremos del editor de texto Notepad++, con el que

podremos abrir y editar cualquier fichero HTML. Podremos acceder al programa desde Inicio -- >

Programas -- > Notepad++ ó desde el icono de acceso directo en el escritorio si se ha creado.

EJEMPLO: COMENZAR A USAR NOTEPAD++

Desde el explorador de archivos de Windows, creamos una carpeta llamada curso_php_apr2 en la

unidad C.

Una vez creada la carpeta, abrimos el Notepadd++, pulsamos en Archivo -- > Guardar como -- >

CU00808B.php (este nombre de archivo es solo un ejemplo, puedes ponerle el que tú quieras). Ahora

cierra Notepad++. Paso seguido, para editar este archivo (o cualquier otro) con el programa Notepad++,

hacemos lo siguiente:

• Clickamos sobre el archivo, pulsamos el botón derecho del ratón y se mostrará un menú similar

a éste.

En el menú desplegado seleccionamos “Edit with Notepad++”. Se abrirá el archivo php con dicho editor.

Page 24: PHP Desde Cero

Preparando el entorno de desarrollo. Descargar e instalar Notepad++

© aprenderaprogramar.com, 2006-2012

• Ahora escribimos el siguiente código HTML y guardamos el archivo.

<?php

echo “Curso básico de PHP.”;

?>

Una vez realizados los pasos anteriores debemos seguir preparando el entorno de desarrollo antes de

poder visualizar la página PHP creada porque todavía no disponemos de un servidor PHP que interprete

nuestro código PHP. Es decir, no podrás ver la página web simplemente haciendo doble click sobre el

archivo.

Ten cuidado porque si copias el código en vez de escribirlo es posible que tengas problemas: hay

muchos tipos de comillas: “curvadas”, “sin curvar”, etc. En el código las comillas son simples, si tú las

has copiado de otro sitio es posible que el formato de las comillas no sea el correcto. Esto puede pasar

también con otros caracteres. Esto no significa que no puedas cortar y copiar código de otro sitio, sino

que debes tener presente que se te pueden presentar problemas con el juego de caracteres (ten

cuidado especialmente si pretendes copiar algo desde Microsoft Word porque es habitual que haya

problemas con los caracteres).

Si has seguido paso a paso todo lo que hemos expuesto y has llegado a visualizar en pantalla el texto, es

que has completado correctamente la instalación de Notepad++, que es el editor que vamos a usar

durante el curso. Si no has podido instalarlo, revisa las instrucciones y comprueba que las hayas seguido

correctamente, consulta la ayuda de Notepad++ ó consulta en los foros de aprenderaprogramar.com

para obtener ayuda.

Próxima entrega: CU00809B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 25: PHP Desde Cero

Configuración básica de Notepad++ para crear páginas PHP 

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº9 del Tutorial básico del programador web: PHP desde cero.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CONFIGURACIÓN BÁSICA DE NOTEPAD++ PARA CREAR PÁGINAS PHP. ALGUNAS VENTAJAS DE ESTE EDITOR COMO SUS EXTENSIONES O PLUGINS. (CU00809B)

Page 26: PHP Desde Cero

Configuración básica de Notepad++ para crear páginas PHP 

© aprenderaprogramar.com, 2006-2012

CONFIGURACIÓN BÁSICA DE NOTEPAD++ PARA CREAR PÁGINAS PHP 

 

Antes de poder comenzar a crear páginas PHP, necesitaremos realizar una configuración básica de nuestro entorno de desarrollo. En nuestro caso, la configuración será bastante simple y consistirá en elegir la codificación con la que guardaremos nuestros ficheros PHP y seleccionar el lenguaje con el que vamos a trabajar.

Lo primero que vamos a hacer es abrir el programa Notepad++. Para esto, nos vamos a Inicio -- > Programas -- > Notepad++ -- > Notepad++. Se nos abrirá el programa, mostrando una pantalla similar a la siguiente.

Para seleccionar la codificación con la que trabajaremos durante todo el curso, en la pestaña Formato, hacemos click sobre “Codificar en UTF-8 sin BOM”, tal y como se indica en la imagen siguiente.

Ahora tendremos que indicar que vamos a utilizar el lenguaje de etiquetas PHP. Para ello, en la pestaña lenguaje abrimos P y seleccionamos PHP de entre todas las opciones posibles. Sería algo similar a lo que se muestra en la imagen siguiente.

Page 27: PHP Desde Cero

Configuración básica de Notepad++ para crear páginas PHP 

© aprenderaprogramar.com, 2006-2012

Ya tenemos todo listo para poder empezar a crear nuestras páginas PHP.  

 

 

AUTOCOMPLETAR. UNA VENTAJA DE NOTEPAD++ 

 

Para facilitar la escritura de código Notepad++ cuenta con una opción de autocompletar, la cual se activa en la pestaña Configurar --> Preferencias. En la ventana que nos aparecerá, dentro de la pestaña Copia de seguridad/Autocompletar debemos activar la casilla “Habilitar autocompletar en cada entrada” y “Pistas para los parámetros de la función”.  

  

 

 

Page 28: PHP Desde Cero

Configuración básica de Notepad++ para crear páginas PHP 

© aprenderaprogramar.com, 2006-2012

AUTOCERRADO DE ETIQUETAS. OTRA VENTAJA DE NOTEPAD++ 

 

Para activar el autocerrado inteligente de etiquetas HTML, en menú superior seleccionamos TextFX --> TextFX Settigns --> Autoclose XHTML/XML tag. También es de interés activar TextFX --> TextFX Settigns --> Autoclose {([.

 Estas opciones nos permiten en general una escritura más rápida, aunque si en algún momento nos resultan molestas las podemos desactivar.  

 

OTRAS VENTAJAS DE NOTEPAD++ 

 

 Quizás te preguntes por qué hemos elegido Notepad++ para este curso. La respuesta es que tiene diversas ventajas, por ejemplo:

- Consume pocos recursos del sistema. No sobrecargarás tu ordenador porque el programa es al mismo tiempo que potente, ligero.

- Dispone de la función autocompletar que ya hemos citado, que nos facilita ayuda mientras estamos escribiendo el código.

Page 29: PHP Desde Cero

Configuración básica de Notepad++ para crear páginas PHP 

© aprenderaprogramar.com, 2006-2012

- Permite abrir múltiples archivos simultáneamente, y reemplazar un texto en todos los archivos abiertos a la vez si así lo deseamos.

- Permite abrir dos archivos y realizar una comparación línea a línea entre ellos, indicándonos en qué líneas existen diferencias entre un archivo y otro.

- El código se nos muestra con un conjunto de colores que permite ver con claridad las etiquetas de apertura y cierre y otros elementos especiales de la codificación.

- Permite ampliar sus posibilidades mediante la instalación de plugins gratuitos disponibles en internet.

- Tiene muchísimas más posibilidades, pero no podemos citarlas todas. En conjunto, es un buen editor útil para programadores a nivel profesional y para principiantes.

- Es software libre que podemos descargar gratuitamente desde internet.

Como verás Notepad++ nos parece un buen editor de código para programación. Esto no quiere decir que no haya otras editores igual de buenos y potentes. De hecho, si ya eres usuario de algún otro editor puedes seguir este curso usándolo.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Próxima entrega: CU00810B  

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 30: PHP Desde Cero

Conceptos básicos de PHP. Estructura básica de una página PHP.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº15 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CONCEPTOS BÁSICOS DE PHP. ESTRUCTURA BÁSICA DE UNA PÁGINA PHP. ETIQUETAS DE APERTURA Y CIERRE. EMBEBER PHP EN HTML (CU00815B)

Page 31: PHP Desde Cero

Conceptos básicos de PHP. Estructura básica de una página PHP.

© aprenderaprogramar.com, 2006-2012

CONCEPTOS BÁSICOS DE PHP

Una página PHP normalmente suele contener HTML y trozos de código PHP. Por ello antes de estudiar

PHP es necesario haber estudiado HTML. A veces, se dice que PHP es un lenguaje “embedido” en HTML,

es decir, incrustado en código HTML. Todos los fragmentos de código PHP deben comenzar con la

siguiente cadena de caracteres: <?php ,y finalizar con ?>

Los símbolos <?php y ?> se dice que son los delimitadores del código PHP. Normalmente, una página

PHP básica sería algo así:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> Ejemplo de una web con PHP - aprenderaprogramar.com </title>

</head>

<body>

<?php

/* Aquí vendría el código PHP */

/* Este código PHP puede ser una consulta a base de datos */

/* Y además mostrar esos datos */

?>

</body>

</html>

En este código podemos identificar los siguientes elementos:

- La primera línea es una etiqueta relativa a la versión/variante de HTML que declaramos usar.

Esta primera etiqueta no es estrictamente necesaria. Sirve únicamente para indicar qué

estándar de HTML es el que declaramos usar.

- Las etiquetas de apertura y cierre de html que delimitan el código HTML.

- Las etiquetas de apertura y cierre head que delimitan la cabecera del código HTML.

- Las etiquetas body que delimitan el cuerpo del código HTML y que es donde suele ir el

contenido central de un documento HTML (texto, imágenes, formularios, etc.).

- Dentro de las etiquetas body, además de código HTML, podemos tener código PHP embebido.

En este caso hemos incluido únicamente un fragmento de código PHP, pero en el cuerpo del

documento HTML podríamos incluir fragmentos de código HTML mezclados con fragmentos de

código PHP. Cada fragmento de código PHP tiene que ir escrito con sus delimitadores.

Esta estructura no se repite siempre. De hecho, más adelante veremos que el código PHP puede ir en

más lugares además de dentro de las etiquetas body. Por otro lado, decir que es habitual que el código

PHP vaya embebido dentro de código HTML en un archivo con extensión .php, pero como ya hemos

visto, un archivo con extensión .php podría contener exclusivamente código PHP.

Page 32: PHP Desde Cero

Conceptos básicos de PHP. Estructura básica de una página PHP.

© aprenderaprogramar.com, 2006-2012

Escribe el código que mostramos a continuación en el editor Notepad++ y guárdalo con el nombre

prueba1.php.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> Ejemplo de una web con PHP - aprenderaprogramar.com </title>

</head>

<body>

<?php

echo "Mi primera página con PHP embedido en HTML -

aprenderaprogramar.com";

?>

</body>

</html>

A continuación súbelo al servidor como ya explicamos en una entrega anterior, y ahora escribe en tu

navegador la dirección web http://apr2.byethost7.com/prueba1.php. Debes de visualizar algo parecido

a esto.

Próxima entrega: CU00816B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 33: PHP Desde Cero

Tipos de variables en PHP. Declaración y asignación. Instrucción echo.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº16 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA MOSTRAR TEXTO POR PANTALLA. (CU00816B)

Page 34: PHP Desde Cero

Tipos de variables en PHP. Declaración y asignación. Instrucción echo.

© aprenderaprogramar.com, 2006-2012

VARIABLES EN PHP Las variables en PHP son representadas con un signo de dólar ($) seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas. Es decir, las siguientes declaraciones de variables son distintas entre ellas:

$variable, $Variable, $variAble, $VariAble, etc. representan a distintas variables. Recordar que una variable es un espacio de la memoria del ordenador (en este caso del servidor) a la que asignamos un contenido que a grandes rasgos puede ser un valor numérico (sólo números, con su valor de cálculo) o alfanumérico (sólo texto o texto con números). Para declarar un nombre de variable válido, éste tiene que empezar con una letra (o si no empieza con una letra, tendrá que hacerlo con un carácter de subrayado), seguido de cualquier número de letras, números y caracteres de subrayado. Veamos algunos ejemplos:

Posible nombre de variable Validez

$4variable Nombre de variable inválido.

$_4variable Nombre de variable válido.

$variable4 Nombre de variable válido.

$otra Nombre de variable válido.

$1_otra Nombre de variable inválido.

$variable_de_nombre_muy_largo Nombre de variable válido.

$ABC Nombre de variable válido.

$ A B C Nombre de variable inválido.

$A_y_B_x_C Nombre de variable válido.

Cuando el intérprete PHP detecta un error en la sintaxis al declarar una variable, cuando tratamos de accecer a la página php nos aparecerá un mensaje de error. Por ejemplo si en un archivo php incluimos una línea como $ A B C = 5; donde el nombre de variable es inválido ya que tiene espacios intermedios, nos aparecerá un mensaje de error:

Page 35: PHP Desde Cero

Tipos de variables en PHP. Declaración y asignación. Instrucción echo.

© aprenderaprogramar.com, 2006-2012

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /home/miraiz/domains/midominio.com/public_html/prueba.php on line 3. Este mensaje nos informa de que hay un problema en el archivo php y nos indica la línea donde el intérprete considera que está el problema. DIFERENCIAS ENTRE LOS OPERADORES DE ASIGNACIÓN E IGUALDAD Asignación (=) El operador de asignación es "=". Se podría pensar que es como un "igual a". No lo es. El operador igual en programación no tiene el mismo sentido que en matemáticas. En programación, significa que el valor de la expresión de la derecha se establece en el operando de la izquierda. Veamos un ejemplo donde todo quedará mucho más claro. Ejemplo

<?php $a = 3; // asignamos el valor 3 a la variable $a $b = "cadena"; // asignamos el valor "cadena" a la variable $b

?>

Igualdad (==) El comparador de igualdad es ==. Como su propio nombre indica, sirve para comparar dos valores o variables y no para asignar valores. Este operador devuelve el resultado de la operación lógica de 'igual a' tal y como podemos apreciar en el siguiente ejemplo. Ejemplo

<?php $a = 3; $b = 3; $a == $b; // El resultado de la comparación es TRUE porque $a es igual a $b $a = 3; $b = 4; $a == $b; // El resultado de la comparación es FALSE porque $a no es igual a $b

?>

TIPOS DE DATOS En PHP no es necesario indicar el tipo de datos al que pertenece una variable, sino que son asumidos directamente por el intérprete PHP, que es el encargado de interpretar el código. Ahora veremos en una tabla los distintos tipos de datos que se pueden usar en PHP.

Page 36: PHP Desde Cero

Tipos de variables en PHP. Declaración y asignación. Instrucción echo.

© aprenderaprogramar.com, 2006-2012

TIPO DE DATO DEFINICIÓN

integer

Los integers, o enteros, pueden tener distintos valores numéricos enteros que se expresan con diferentes notaciones.

$variable = 18; // Número entero positivo

$variable = -18; // Número entero negativo

$variable = 0x12; // Notación hexadecimal, es igual a 18 decimales

float o double

Este tipo de datos son los números de punto flotante a los que normalmente llamamos “números decimales”, por ejemplo, 9.876. La sintaxis para utilizarlos es bastante simple:

$variable = 9.876;

string

El tipo de datos string, también conocido como cadena de caracteres, se expresa con la siguiente sintaxis:

$variable = "Yo soy una cadena";

boolean

Se trata de un tipo lógico. Sus posibles valores son TRUE o FALSE.

$variable = true;

$variable = false;

INSTRUCCIÓN ECHO Esta instrucción PHP hace que se muestre por pantalla un texto, una variable, o una combinación de texto y variables. Crea un archivo php con el siguiente código, ponle un nombre como usoDeEcho.php y súbelo al servidor. Luego invócalo usando una ruta como http://apr2.byethost7.com/usoDeEcho.php.

<?php echo "salida por pantalla. "; $a = 5; echo $a; echo " El valor de a es $a.";

?>

La visualización en tu navegador deberá ser similar a esta. Puede variar ligeramente dependiendo del navegador que uses.

Page 37: PHP Desde Cero

Tipos de variables en PHP. Declaración y asignación. Instrucción echo.

© aprenderaprogramar.com, 2006-2012

Ten en cuenta que $a se muestra por pantalla como 5 porque el intérprete de PHP considera que debe mostrarse simpre el valor de la variable, incluso si va dentro de un texto. Prueba a escribir la siguiente línea: echo " El valor de la variable \$a es $a."; Comprobarás que se muestra por pantalla “salida por pantalla. 5 El valor de la variable $a es 5.” Cuando antecedemos un nombre de variable del carácter \ hacemos que se interprete como texto en lugar de como una variable. El carácter \ se suele llamar “carácter de escape”. Próxima entrega: CU00817B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 38: PHP Desde Cero

Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2012

Resumen: Entrega nº17 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

ESTRUCTURAS

CONDICIONALES EN PHP: IF

ELSE Y IF ELSE IF ELSE.

EJEMPLOS DE USO Y

EJERCICIOS RESUELTOS.

(CU00817B)

Page 39: PHP Desde Cero

Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

ESTRUCTURAS CONDICIONALES

En PHP existen una serie de instrucciones que permiten tomar decisiones lógicas cuando programamos:

• If...Else

• If...Elseif...Else

• Switch

CONDICIONAL IF…ELSE EN PHP

Estas instrucciones son quizás las más usadas de todos los lenguajes de programación, ya que son las

más básicas. IF (en español: si…) ELSE (en español: sino…).

Estructura general de un condicional if else

if(expresión) {

... sentencias 1, 2, 3 … ;

} else {

... sentencias A, B, C …;

}

En este trozo de código estaríamos diciendo que si la expresión se cumple se realizan sentencias 1, 2,

3…, y en caso de que no se cumpliese la expresión se ejecutarían las sentencias que están dentro del

else, es decir, las sentencias A, B, C …

Escribe este código en un editor como Notepad++ y guárdalo con un nombre de archivo como

ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$galletas = true ;

if ($galletas == true){

echo 'Hay galletas' ;

} else {

echo 'No hay galletas' ;

}

?>

En este ejemplo, estamos dando un valor $galletas y comprobamos si el valor de esta variable es true o

no, introduciéndolo en la expresión del condicional. Tal cual está, este ejemplo produciría el resultado

'Hay galletas', aunque si cambiásemos $galletas = true; por $galletas = false daría como resultado la

segunda sentencia.

Page 40: PHP Desde Cero

Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Escribe ahora este otro código guárdalo con un nombre de archivo como ejemplo2.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php

$galletas = true;

if ($galletas == true ){

?>

<br/>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-------------------------- ------- </p>

<?php

echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hay galletas';

echo '<br/>';

echo '<br/>';

echo '&nbsp;&nbsp;&nbsp;&nbsp;-------------------------- -------';

} else {

echo 'No hay galletas';

}

?>

Como podrás comprobar, el código produce el mismo resultado. Unicamente hemos introducido

algunos caracteres para mejorar la forma en que se ve. Compara las similitudes y diferencias entre los

dos códigos que hemos escrito. En nuestro ejemplo2 podrás comprobar que hemos escrito un

fragmento de código php, luego un fragmento de código html y luego otro fragmento en php. Si te fijas,

no hemos utilizado las etiquetas de apertura y cierre de html, aunque hubiera sido quizás más correcto

hacerlo, es decir, escribir:

Page 41: PHP Desde Cero

Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

<html>

<?php

$galletas = true;

if ($galletas == true ){

?>

<br/>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-------------------------- ------- </p>

<?php

echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hay galletas';

echo '<br/>';

echo '<br/>';

echo '&nbsp;&nbsp;&nbsp;&nbsp;-------------------------- -------';

} else {

echo 'No hay galletas';

}

?>

</html>

Como comprobarás, a veces los navegadores son capaces de interpretar el código aunque falten

algunas etiquetas o contenga algunos errores. Esta es una de las cuestiones que diferencia html y php

de lenguajes de programación en sentido estricto como C, Java o Visual Basic, donde la sintaxis es

mucho más estricta.

En este código además podemos señalar:

• Usamos el código &nbsp que en HTML significa “un espacio”. Recuerda que HTML omite los

espacios antes y después de una cadena de texto. Por ello hemos de especificar que se

introduzcan espacios con &nbsp.

• Un salto de línea, que introducimos gracias a la etiqueta <br/>, podemos escribirlo tanto fuera

del código php como dentro de él. Para introducirlo dentro de php, hemos de ponerlo dentro

de un echo, que es la forma que tenemos de indicarle a php de que dé salida a esa etiqueta

como código html.

¿Qué pasaría si introdujéramos una etiqueta html como <br/> directamente dentro del código php?

Pruébalo y comprobarás que en el navegador se muestra un mensaje de error de este tipo:

Parse error: syntax error, unexpected '<' in /home/m/dom/mi.com/public_html/prueba.php on line 11

Esta es una cuestión que debes de tener en cuenta: para introducir html debes de cerrar un bloque php

o usar una instrucción echo dentro del bloque php. La instrucción echo viene significando “dar salida

html a lo que va a continuación”.

CONDICIONALES IF...ELSE IF...ELSE EN PHP

La estructura de estas instrucciones viene a ser muy similar que la anterior. Su significado: “Si ocurre

esto, haz esto, sino si ocurre esta otra cosa, haz esto otro, sino si ocurre esta otro cosa, haz …”

Page 42: PHP Desde Cero

Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Estructura general de un condicional if else if else

<?php

if(expresión) {

... sentencias 1, 2, 3, …;

} else if(expresión) {

... sentencias A, B, C, …;

} else {

... sentencias M, N, O, …;

}

?>

Esta es la síntaxis con la que debe ser usada else if. Un else if se ejecutará, siempre y cuando, no haya

alguna respuesta verdadera en el if o else if anterior; luego de que se llega al final de los else if, y

ninguno ha sido verdadero, se ejecutará lo que está dentro del else final.

Pueden haber varios else if, pero estos están siempre dentro de un if y terminarán con un else (sólo

uno) final.

Escribe este código en un editor como Notepad++ y guárdalo con un nombre de archivo como

ejemplo3.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$test = 33;

if ($test > 40) {

echo "S í, $test es mayor que 40.";

} else if ($test > 35) {

echo "S í, $test es mayor que 35.";

} else if ($test > 30) {

echo "S í, $test es mayor que 30.";

} else {

echo "No, $test es menor que 40, 35 y 30.";

}

?>

En este caso la respuesta sería: Sí, 33 es mayor que 30.

Si el valor de $test se cambia a 22, la respuesta sería: No, 22 es menor que 40, 35 y 30.

Próxima entrega: CU00818B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 43: PHP Desde Cero

Operadores de comparación y lógicos en PHP. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº18 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

OPERADORES DE COMPARACIÓN Y OPERADORES LÓGICOS EN PHP. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00818B)

Page 44: PHP Desde Cero

Operadores de comparación y lógicos en PHP. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

OPERADORES DE COMPARACIÓN EN PHP

Los operadores de comparación permiten comparar dos valores, tal y como su nombre indica. En

general, esto nos servirá para tomar decisiones. Por ejemplo, quizás tenemos que decidir si autorizar

una operación según tenga saldo suficiente en su cuenta bancaria o no. Para ello en PHP disponemos

de los operadores que se indican en la siguiente tabla.

Nombre Ejemplo Resultado

Mayor que $a > $b true si $a es mayor que $b

false en caso contrario

Menor que $a < $b true si $a es menor que $b

false en caso contrario

Mayor o igual que $a >= $b true si $a es mayor o igual que $b

false en caso contrario

Menor o igual que $a <= $b true si $a es menor o igual que $b

false en caso contrario

Diferente

$a <> $b

ó

$a != $b

true si $a es diferente a $b

false en caso contrario

Idéntico $a === $b true si $a es igual a $b y son del mismo tipo

false en caso contrario

No idéntico $a ¡== $b true si $a no es igual a $b o no son del mismo tipo

false en caso contrario

Igual $a == $b true si $a es igual a $b

false en caso contrario

Si se compara un número con una cadena de caracteres o la comparación implica cadenas de caracteres

numéricas, cada cadena de caracteres es convertida en un número y la comparación se realizará

numéricamente excepto cuando el operador utilizado es === o ¡== porque, en estos casos, también

comparamos el tipo.

Page 45: PHP Desde Cero

Operadores de comparación y lógicos en PHP. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

OPERADORES LÓGICOS EN PHP

Los operadores lógicos, nos permiten crear condiciones para las distintas estructuras en PHP, tanto en

estructuras condicionales como en estructuras repetitivas. Los operadores lógicos más importantes son

and (en español: y) y or (en español: o)

Nombre Ejemplo Resultado

and ó && $a and $b true si $a es true y $b es true

false en caso contrario

or ó || $a or $b true si $a o $b es true, o ambos

false en caso contrario

xor $a xor $b true si $a o $b es true, pero no ambos

false en caso contrario

not ó ! !$a true si $a no es true

false en caso contrario

Una condición puede ser tan larga como se quiera o necesite y usar tantos operadores lógicos como se

quiera o necesiten. El uso de los paréntesis otorgará la prioridad de la ejecución de unas operaciones y

otras (como en matemáticas).

Escribe este código en un editor como Notepad++ y guárdalo con un nombre de archivo como

ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$a = 3;

$b = 9;

$result = ($a <= 3 and $b <> 9);

if ( $result == true ) {

echo "Se cumple la condición" ;

} else {

echo "No se cumple la condición" ;

}

?>

Próxima entrega: CU00819B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 46: PHP Desde Cero

Operadores aritméticos en PHP: operadores básicos y módulo.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº19 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

OPERADORES ARITMÉTICOS EN PHP: OPERADORES BÁSICOS Y RESTO (MÓDULO). INCREMENTO Y DECREMENTO. (CU00819B)

Page 47: PHP Desde Cero

Operadores aritméticos en PHP: operadores básicos y módulo.

© aprenderaprogramar.com, 2006-2012

OPERADORES ARITMÉTICOS BÁSICOS EN PHP En PHP disponemos de los operadores habituales en los distintos lenguajes de programación. Estos operadores nos permiten realizar operaciones aritméticas: suma, resta, multiplicación, división, etc. así como obtener el módulo o resto de una división entre dos enteros.

Nombre Ejemplo Resultado Ejemplo con

$a = 8 y $b = 4

Suma $a + $b El resultado de la suma. 12

Resta $a - $b El resultado de la resta. 4

Multiplicación $a * $b El resultado de la multiplicación. 32

División $a / $b El resultado de la división. 2

Resto o módulo $a % $b El resto de la división de $a entre $b (1) 0

(1)Nota: Los números se convierten a enteros antes de efectuar la operación. Es decir, 9 % 4.5 da como resultado 1 y no 0 porque calcula el resto de 9 entre 4, no de 9 entre 4.5 El operador resto o módulo es un operador útil en algunos procesos repetitivos en programación. Fíjate en los valores que toma cuando van progresando los valores que toma una variable. En el ejemplo que mostramos a continuación sirve para contar hasta dos y empezar de nuevo repetitivamente.

$a $a % 3

1 1

2 2

3 0

4 1

5 2

6 0

7 1

8 2

Page 48: PHP Desde Cero

Operadores aritméticos en PHP: operadores básicos y módulo.

© aprenderaprogramar.com, 2006-2012

OPERADORES DE INCREMENTO Y DECREMENTO

Nombre Ejemplo Resultado

Pre-incremento ++$a Incrementa $a en uno y luego devuelve $a

Post-incremento $a++ Devuelve $a y luego incrementa $a en uno

Pre-decremento --$a Decrementa $a en uno y luego devuelve $a

Post-decremento $a-- Devuelve $a y luego decrementa $a en uno.

Escribe este código en un editor como Notepad++ y guárdalo con un nombre de archivo como ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$a = 8;

echo ++$a;

echo "<br />";

echo $a;

?>

Escribe este otro código y guárdalo con un nombre de archivo como ejemplo2.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$a = 8;

echo $a++;

echo "<br />";

echo $a;

?>

Page 49: PHP Desde Cero

Operadores aritméticos en PHP: operadores básicos y módulo.

© aprenderaprogramar.com, 2006-2012

En los dos ejemplos anteriores podemos observar claramente la diferencia entre el pre-incremento y el post-incremento. Lo mismo ocurre con el pre-decremento y post-decremento. OPERADORES DE ASIGNACIÓN Con el uso de los operadores de asignación, podremos simplificar (escribir abreviadamente) algunas expresiones de asignación. No te recomendamos que utilices expresiones abreviadas durante el aprendizaje básico de php. No obstante, es adecuado conocer el significado de estas expresiones por si te enfrentas a tener que interpretar código escrito por otras personas.

Nombre Ejemplo Resultado

Suma $a += $b; $a = $a + $b;

Resta $a -= $b; $a = $a - $b;

Multiplicación $a *= $b; $a = $a * $b;

División $a /= $b; $a = $a / $b;

Resto o módulo $a %= $b; $a = $a % $b;

Próxima entrega: CU00820B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 50: PHP Desde Cero

Switch, case, break. Ejemplos de uso y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2012

Resumen: Entrega nº20 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

ESTRUCTURAS

CONDICIONALES EN PHP:

SWITCH, CASE, BREAK.

EJEMPLOS DE USO Y

EJERCICIOS RESUELTOS.

(CU00820B)

Page 51: PHP Desde Cero

Switch, case, break. Ejemplos de uso y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

SWITCH

Las instrucciones if...else if...else if permiten resolver prácticamente todas las decisiones que haya que

tomar en programación, pero en ocasiones nos encontraremos con casos en que queremos evaluar

condiciones con una estructura que hacen más cómodo usar una instrucción alternativa: switch.

Supongamos una evaluación de este tipo:

If ($variable == Valor1) {

... sentencias;

} else if( $variable == Valor2) {

... sentencias;

} else if ($variable == Valor3) {

... sentencias;

} else {

... sentencias;

}

Se trata de un caso en que tenemos varias alternativas para realizar una acción determinada según el

valor tomado por una variable. Para estos casos la mayoría de los lenguajes de programación incluyen

una instrucción que permite "seleccionar" entre los posibles valores de una variable: la instrucción

Switch (en español: seleccionar).

Estructura general de una expresión switch

switch($variable) {

case Valor1:

... sentencias;

break;

case Valor2:

... sentencias;

break;

.

.

.

default:

... sentencias;

}

Page 52: PHP Desde Cero

Switch, case, break. Ejemplos de uso y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

En esta estructura, $variable es la variable que será comparada sucesivamente con cada una de las

instrucciones case hasta hallar la que coincida con el valor de $variable. Una vez que esto se produzca

se ejecutarán sucesivamente todas las instrucciones dentro del case hasta hallar la siguiente instrucción

break;

La instrucción break; provoca un salto pasando el control del programa o flujo de ejecución a la

instrucción inmediata siguiente fuera del switch.

Si ninguna de las instrucciones case corresponde al valor de $variable se ejecutarán solo las

instrucciones incluidas tras la palabra clave default. Al igual que else para los if, la instrucción default es

opcional para los switch.

Vamos a ver ahora cómo podemos obtener un mismo resultado usando if o usando switch. Escribe

ahora el código de ejemplo de uso de if que mostramos a continuación y guárdalo con un nombre de

archivo como ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

//Ejemplo uso if else aprenderaprogramar.com

$variable= 2;

if ($variable== 1) {

echo '$variable es igual a 1.' ;

} else if ($variable== 2) {

echo '$variable es igual a 2.' ;

} else if ($variable== 3) {

echo '$variable es igual a 3.' ;

} else {

echo '$variable no es igual a 1, 2 o 3.' ;

}

?>

<?php

$variable= 2;

switch ($variable) {

case 1:

echo '$variable es igual a 1.' ;

break ;

case 2:

echo '$variable es igual a 2.' ;

break ;

case 3:

echo '$variable es igual a 3.' ;

break ;

default :

echo '$variable no es igual a 1, 2 o 3.' ;

}

?>

Escribe ahora el código de ejemplo de uso de switch hemos mostrado y guárdalo con un nombre de

archivo como ejemplo2.php. A continuación, sube el fichero al servidor y visualiza el resultado.

Page 53: PHP Desde Cero

Switch, case, break. Ejemplos de uso y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

El resultado comprobamos que en ambos casos es:

$variable es igual a 2.

Si cambiamos $variable=2 por $variable=5 al inicio de código el resultado sería:

$Variable no es igual a 1, 2 o 3.

Una diferencia importante respecto a las instrucciones if ... else if ... else es que se requiere de la

instrucción break para salir del switch al terminar las instrucciones correspondientes a un case. Sólo

podemos especificar un valor en cada case, no se admite indicar más de un valor. Sin embargo, si

dejamos un case en blanco y omitimos el break, damos lugar a que se ejecuten ciertas instrucciones si

el valor coincide con alguno de los case en juego. Esto lo veremos más claro con un ejemplo.

Escribe ahora estos otros códigos y guárdalos con nombres de archivo como ejemplo3.php y

ejemplo4.php. A continuación, sube los ficheros al servidor y visualiza el resultado.

<?php

//Ejemplo uso if else aprenderaprogramar.com

$variable= 2;

if ($variable ==1) {

echo '$Variable es igual a 1.' ;

} else if ($variable ==2 OR $variable ==3) {

echo '$Variable es igual a 2 o 3.' ;

} else {

echo '$Variable no es igual a 1, 2 o 3.' ;

}

?>

<?php

$variable= 2;

switch ($variable) {

case 1:

//Se ejecuta si $variable vale 1

echo '$Variable es igual a 1.' ;

break ;

case 2:

case 3:

//Se ejecuta si $variable vale 2 o 3

echo '$Variable es igual a 2 o 3.' ;

break ;

default :

//Se ejecuta en cualquier otro caso

echo '$Variable no es igual a 1, 2 o 3.' ;

}

?>

Page 54: PHP Desde Cero

Switch, case, break. Ejemplos de uso y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

En cualquiera de las dos formas mostradas, la salida obtenida sería:

$variable es igual a 2 o 3.

En este caso, al evaluarse la segunda instrucción case no se encuentra ningún break por lo que se

siguen ejecutando las instrucciones siguientes al tercer case, aún cuando $variable es diferente de 3, ya

que al no existir un break anterior los casos 2 y 3 quedan “agrupados”. Más aún, si borramos el break

del tercer case también se ejecutarán las instrucciones siguientes a default, y la salida sería entonces:

$variable es igual a 2 o 3.

$variable no es igual a 1, 2 o 3.

Por ello es muy importante que cuando escribas una instrucción switch pongas break en todos los case,

o bien que si dejas algún break sin escribir sea porque conscientemente quieras hacerlo y no por olvido.

Próxima entrega: CU00821B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 55: PHP Desde Cero

Operaciones con cadenas. Concatenación, funciones strlen, substr.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº21 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

OPERACIONES CON CADENAS DE CARACTERES EN PHP. CONCATENACIÓN. FUNCIONES BÁSICAS STRLEN Y SUBSTR. (CU00821B)

Page 56: PHP Desde Cero

Operaciones con cadenas. Concatenación, funciones strlen, substr.

© aprenderaprogramar.com, 2006-2012

OPERACIONES CON CADENAS DE CARACTERES EN PHP. CONCATENACIÓN. FUNCIONES BÁSICAS Las cadenas de caracteres en PHP se definen, como ya sabemos, entre comillas dobles o simples (podemos usar dobles o simples indistintamente). Es decir, podemos definir una variable como cadena de caracteres de la siguiente forma: $cadena = "George Washington"; o también $cadena = 'George Wasington';

Para la manipulación de estas variables o cadenas de caracteres nos será útil conocer las funciones básicas de manipulación. No vamos a entrar a describir cada una de las funciones para cadenas de caracteres que PHP posee, que son muchas. Simplemente veremos las más básicas y de uso más común. FUNCIÓN STRLEN La función strlen obtiene la longitud de una cadena y devuelve un número entero. Es decir, obtenemos el número de caracteres que forman la cadena completa. Escribe este código en un editor como Notepad++ y guárdalo con un nombre de archivo como ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$cad = "cadena"; //Prueba a cambiar el texto cadena por otro

$n = strlen($cad);

echo "La longitud de la cadena es: $n";

?>

FUNCIÓN SUBSTR La función substr devuelve una subcadena de la cadena original, es decir, una parte de la cadena original. Esta función tiene 3 parámetros:

1. La variable que contiene la cadena. 2. Número que representa la posición en la que comenzará a ser extraída la subcadena. 3. Número que indica la cantidad de caracteres que serán extraídos. Este argumento es opcional.

Si se omite se tomará hasta el final de la cadena original.

Page 57: PHP Desde Cero

Operaciones con cadenas. Concatenación, funciones strlen, substr.

© aprenderaprogramar.com, 2006-2012

Escribe este código en un editor como Notepad++ y guárdalo con un nombre de archivo como ejemplo2.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$cad = "cadena";

$sub1 = substr($cad, 2);

$sub2 = substr($cad, 2, 2);

echo "La subcadena número uno es la siguiente: $sub1 <br />";

echo "La subcadena número dos es la siguiente: $sub2";

?>

Escribe este otro ejemplo y visualízalo en tu navegador:

<?php $cad = "aprenderaprogramar.com";

$sub1 = substr($cad, 0); //La cadena completa

$sub2 = substr($cad, 0, 8); //La subcadena aprender

$sub3 = substr($cad, 8, 1 ); //La subcadena a

$sub4 = substr($cad, 9); //La subcadena programar

echo "&nbsp; &nbsp; La subcadena número uno es la siguiente: $sub1 <br />";

echo "&nbsp; &nbsp; La subcadena número dos es la siguiente: $sub2 <br />";

echo "&nbsp; &nbsp; La subcadena número tres es la siguiente: $sub3 <br />";

echo "&nbsp; &nbsp;La subcadena número cuatro es la siguiente: $sub4";

?>

Fíjate en las siguientes cuestiones:

a) La numeración de caracteres empieza en cero y no en uno. Así en este último ejemplo el caracter 0 es la a, el 1 la p, el 2 la r,el 3 la e y así sucesivamente.

b) La posición en que comienza la extracción va incluida en la subcadena extraida. Esto significa que substr ($cad, 0, 1) significa que sólo se extrae el primer caracter de la cadena.

Page 58: PHP Desde Cero

Operaciones con cadenas. Concatenación, funciones strlen, substr.

© aprenderaprogramar.com, 2006-2012

OPERADOR DE CONCATENACIÓN La concatenación es el proceso de unir varias porciones de texto en una sola cadena. Este operador se expresa como un punto '.' Escribe el siguiente código, súbelo al servidor y visualízalo en tu navegador.

<?php

$cad1 = "aprendera";

$cad2 = "programar";

$cadt = $cad1 . $cad2;

echo "La cadena número uno concatenada con la cadena número 2 es: $cadt <br />";

// Ahora concatenaremos la cadena ejemplo con la concatenación de $cad2 y $cad1

echo "Ejemplo: " . ($cad2 . $cad1);

?>

En este ejemplo vemos cómo las cadenas se pueden concatener en el orden que nosotros deseemos. Próxima entrega: CU00822B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 59: PHP Desde Cero

Estructuras repetitivas básicas en PHP: while, for y do/while.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº22 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO…WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

Page 60: PHP Desde Cero

Estructuras repetitivas básicas en PHP: while, for y do/while.

© aprenderaprogramar.com, 2006-2012

ESTRUCTURAS REPETITIVAS O BUCLES EN PHP Las estructuras repetitivas (bucles) son aquellas que reiteran una o un grupo de instrucciones "n" veces y dependen de una variable de control del ciclo. Es decir, ejecutan una o varias instrucciones un número de veces definido.

LA INSTRUCCIÓN WHILE La instrucción while (que en castellano se traduciría como “mientras…”) ejecuta una porción de programa mientras se cumpla una cierta condición. Mientras la condición sea verdadera, se ejecutan las instrucciones contenidas en el while. Cuando deja de cumplirse la condición, se sale del ciclo y se continúa ejecutando el resto del programa. Si la condición no se cumple ni la primera vez que se comprueba, las líneas en el interior del while no se ejecutarán ni una vez. Estructura general de una instrucción while <?php While (condición) { ... sentencias; } ?> En este fragmento de código estaríamos indicando que mientras se cumpla la condición se realizan las sentencias, y en este caso si no se cumpliese la condición se seguiría ejecutando el programa o mostrando los contenidos de la página web justo después del cierre de la instrucción while (que queda determinado por el símbolo de cierre } ). Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$galletas = 0;

while ($galletas < 10){

echo "$galletas, ";

$galletas++;

}

?>

Page 61: PHP Desde Cero

Estructuras repetitivas básicas en PHP: while, for y do/while.

© aprenderaprogramar.com, 2006-2012

En este ejemplo, las instrucciones dentro del while se ejecutarían 10 veces, mostrando los números de 0 a 9 separados por coma. Hay que tener especial cuidado en no crear estructuras repetitivas que se ejecuten infinitamente (bucles infinitos). En el ejemplo anterior, si no incrementamos el valor de la variable $galletas, la condición del while se cumpliría siempre y tendríamos un problema porque habríamos creado un bucle infinito, quedando el programa ‘atascado’ en dicho while. Crea como ejercicios:

a) Un bucle while que cuente desde 50 hasta 40 (fíjate que en este caso es decreciente) b) Un bucle while que a partir de una variable $contador que toma valores de 1 a 5, muestre por

pantalla el doble del valor de $contador, es decir, que muestre 2, 4, 6, 8, 10. LA INSTRUCCIÓN DO … WHILE La estructura repetitiva do-while (en castellano equivaldría a hacer… mientras) es muy similar a la estructura while, excepto que la expresión verdadera es verificada al final de cada iteración en lugar de al principio. La diferencia principal con los bucles while es que está garantizado que se ejecuten las instrucciones que contienen, al menos una vez (la verificación de si se tiene que repetir el proceso se realiza al final de la repetición de la estructura. Estructura general de una instrucción do … while <?php do { …sentencias } while(condición); ?> En este fragmento de código estaríamos indicando que se ejecute una primera vez “sí o sí” las sentencias, y que después se evalúe la condición para comprobar si se deben ejecutar nuevamente las sentencias. Como vemos, aunque no se cumpla la condición las sentencias se ejecutarían al menos una primera vez.

Page 62: PHP Desde Cero

Estructuras repetitivas básicas en PHP: while, for y do/while.

© aprenderaprogramar.com, 2006-2012

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo2.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$galletas = 0;

do {

echo "$galletas, ";

$galletas++;

} while ($galletas < 10);

?>

Crea como ejercicios:

a) Un bucle do…while que cuente desde 50 hasta 40 (fíjate que en este caso es decreciente) b) Un bucle do…while que a partir de una variable $contador que toma valores de 1 a 5, muestre

por pantalla el doble del valor de $contador, es decir, que muestre 2, 4, 6, 8, 10. LA INSTRUCCIÓN FOR La estructura repetitiva for (en castellano se traduciría como “desde…”) se utiliza generalmente cuando tenemos bien determinada la cantidad de repeticiones a realizar. Se diferencia de las anteriores en que se debe incluir en la propia instrucción una variable de control, la cual se incrementa o decrementa de forma automática. La estructura de estas instrucciones viene a ser muy similar a la anterior. Estructura general de una instrucción for <?php for ($variable=valor_inicial; condición; incremento) { ... sentencias; } ?> En este fragmento de código estaríamos indicando que mientras se cumpla la condición se realizan las sentencias, y en este caso si no se cumpliese la condición se seguiría ejecutando el programa justo después del cierre de la instrucción for (}). Todo esto es igual a la instrucción while anteriormente citada, salvo que en la propia declaración de la estructura se encuentra la variable de control, que en cada repetición se incrementa automáticamente.

Page 63: PHP Desde Cero

Estructuras repetitivas básicas en PHP: while, for y do/while.

© aprenderaprogramar.com, 2006-2012

Esta instrucción consta, por tanto, de tres parámetros:

• Inicialización de la variable que se utilizará en la condición.

• Condición que se debe cumplir para permanecer en el ciclo.

• Modificación de la variable utilizada en la condición. Escribe ahora este otro código guárdalo con un nombre de archivo como ejemplo3.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php

for ($galletas = 0; $galletas < 10; $galletas++){

echo "$galletas, ";

}

?>

Este ejemplo muestra a la salida, la misma información que mostraba la instrucción while. Como podemos observar, el valor inicial y el incremento de la variable $galletas, van en la propia instrucción. Crea como ejercicios:

a) Un bucle for que cuente desde 50 hasta 40 (fíjate que en este caso es decreciente y que por tanto la variable deberá operar como $galletas– –).

b) Un bucle for que a partir de una variable $contador que toma valores de 1 a 5, muestre por pantalla el doble del valor de $contador, es decir, que muestre 2, 4, 6, 8, 10.

Crea el siguiente código, guárdalo con un nombre de archivo como ejemplo4.php y visualiza los resultados en tu navegador.

<?php

for ( $i = 0; $i < 50; $i+=5 ){

echo "&nbsp;&nbsp; $i <br/> ";

}

?>

Page 64: PHP Desde Cero

Estructuras repetitivas básicas en PHP: while, for y do/while.

© aprenderaprogramar.com, 2006-2012

Fíjate que en este caso a la variable contador la hemos denominado i. Es habitual usar nombres como i, j, k para las variables contadoras en bucles. Otra cosa interesante es que usando la instrucción += conseguimos que la variable contadora no vaya de uno en uno, sino que el paso (step) de la variable sea el número que nosotros deseemos. En este caso, hemos utilizado un incremento de 5 unidades en cada repetición del bucle. También podemos lograr el mismo efecto pero con decrementos usando – =. Crea como ejercicios:

a) Un bucle for que cuente desde 50 hasta 500 de 25 en 25.

b) Un bucle for que a partir de una variable de control $j que toma valores de 100 a 500 de 100 en 100, muestre por pantalla el resultado de dividir la variable de control por 20. En este caso, el resultado será 5 (que es 100/20…), 10 (que es 200/20…), 15, 20, 25.

Próxima entrega: CU00823B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 65: PHP Desde Cero

Arrays básicos en PHP. Vectores y Matrices. Ejemplos.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº23 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CONCEPTO O DEFINICIÓN DE ARRAY EN PHP. ARRAYS UNIDIMENSIONALES O VECTORES. EJEMPLOS RESUELTOS. (CU00823B)

Page 66: PHP Desde Cero

Arrays básicos en PHP. Vectores y Matrices. Ejemplos.

© aprenderaprogramar.com, 2006-2012

ARRAYS BÁSICOS O TRADICIONALES EN PHP

Un array es un conjunto de variables de una misma clase. Se accede a cada elemento individual del

array mediante un número entero denominado índice. 0 es el índice o localizador del primer elemento

y n-1 es el índice del último elemento, siendo n, la dimensión del array. Así $empleado[23]

representaría al empleado con localizador 23 como veremos a continuación.

Los arrays son muy utilizados en la programación. Dependiendo de la cantidad de dimensiones que

tengan pueden ser:

• De una dimensión (vectores). Por ejemplo $empleado[23]

• De dos dimensiones (matrices). Por ejemplo $butaca[3, 14]

• De tres o más dimensiones (multidimensionales). Por ejemplo $fecha[2012, 9, 22]

Para acceder a los elementos del array se utilizan los corchetes [], dentro de los cuales existirá un

localizador o índice que es un número entero. Además, podemos guardar valores de cualquier tipo de

variable (string, entero, punto flotante, booleano) dentro de un array. Por ejemplo $empleado[23]

podría tomar como valor $empleado[23] = “Juan Pérez Suárez”. En este caso se trataría de un array de

cadenas de texto, es decir, un array de string. En otro caso $empleado[23] podría tomar como valor

$empleado[23] = 2312. En este caso se trataría de un array de valores numéricos.

En algunos lenguajes es necesario declarar los arrays antes de poder utilizarlos, pero en PHP no es

necesario. Cuando se definen elementos de un array, PHP reconoce automáticamente que se trata de

un array sin necesidad de declaración previa.

VECTORES (ARRAYS DE UNA DIMENSIÓN)

Los vectores son los arrays que sólo contienen una dimensión.

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo1.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php

$estacion[ 0] = "Primavera" ;

$estacion[ 1] = "Verano" ;

$estacion[ 2] = "Otoño" ;

$estacion[ 3] = "Invierno" ;

echo $estacion[ 2];

$numero[ 0] = 7;

$numero[ 1] = 11;

$numero[ 2] = 15;

?>

Page 67: PHP Desde Cero

Arrays básicos en PHP. Vectores y Matrices. Ejemplos.

© aprenderaprogramar.com, 2006-2012

La forma general de uso de un array es: $nombreDeVariableArray [localizador] = valorAsignado;

Ten en cuenta que lo que diferencia a una variable que pertenece a un array (conjunto de variables) es

la presencia del corchete con un índice en su interior

PHP admite también otra posibilidad que no admiten otros lenguajes: se pueden usar arrays sin

especificar los números de los índices, ya que PHP los puede colocar automáticamente.

Escribe ahora este otro código y guárdalo con un nombre de archivo como ejemplo2.php. A

continuación, sube el fichero al servidor y visualiza el resultado.

<?php

$ciudad[] = "Sevilla" ;

$ciudad[] = "Madrid" ;

$ciudad[] = "Barcelona" ;

$ciudad[] = "Valencia" ;

echo $ciudad[ 3];

?>

Fíjate que PHP ha colocado automáticamente los índices, asignando el 0 a Sevilla, el 1 a Madrid, el 2 a

Barcelona y el 3 a Valencia. Hay que recordar que los arrays siempre comienzan numerándose desde

cero.

Otra forma de asignar valores a un array vector es la siguiente:

Jugador [8] es una variable con índice.

Jugador8 es una variable normal.

TCP [3] es una variable con índice.

Page 68: PHP Desde Cero

Arrays básicos en PHP. Vectores y Matrices. Ejemplos.

© aprenderaprogramar.com, 2006-2012

<?php

$color = array ( "azul" , "verde" , "negro" , "marrón" );

echo $color[ 1];

?>

Como ves, esta es una forma abreviada cuya forma general es:

$nombreDelArray = array (valorElemento0, valorElemento1, valorElemento2, … , valorElementon)

El término array es una palabra clave en PHP cuyo significado es equivalente a decir “los elementos que

aparecen en la lista a continuación son elementos de un array”.

A modo de ejercicios, crea archivos y visualiza los resultados para estos casos:

a) Declara un array de enteros de nombre $coches e introduce en él 8 elementos cuyos valores

sean 32, 11, 45, 22, 78, -3, 9, 66, 5. A continuación muestra por pantalla el elemento con

localizador 5. Deberás obtener por pantalla que se visualiza -3.

b) Declara un array de numéricos decimales tipo double de nombre $importe e introduce en él

cuatro elementos que sean 32.583, 11.239, 45.781, 22.237. A continuación muestra por

pantalla el elemento con localizador 1. Deberás obtener por pantalla que se visualiza 11.239.

c) Declara un array de booleanos de nombre $confirmado e introduce en él seis elementos que

sean true, true, false, true, false, false. A continuación muestra por pantalla el elemento con

localizador 0. Deberás obtener por pantalla que se muestra “true”.

Próxima entrega: CU00824B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 69: PHP Desde Cero

Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2012

Resumen: Entrega nº24 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

MATRICES Y ARRAYS

MULTIDIMENSIONALES EN

PHP. EJERCICIOS

RESUELTOS. (CU00824B)

Page 70: PHP Desde Cero

Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

MATRICES O ARRAYS DE DOS DIMENSIONES

Las matrices son arrays de dos dimensiones. Para comprenderlas mejor podemos recordar las matrices

matemáticas de 2 dimensiones. Un ejemplo de matriz en matemáticas podría ser esta:

En una matriz normalmente hablamos de filas y columnas y decimos que la matriz tiene m filas y n

columnas. Así, cada elemento queda identificado por su fila i y su columna j. Por ejemplo, en la matriz

que hemos mostrado anteriormente podríamos decir que tenemos 3 filas (fila 0, fila 1 y fila 2) y cuatro

columnas (columna 0, columna 1, columna 2, columna 3). Podríamos decir que el elemento de la fila 1,

columna 3 es igual a 2. De la misma manera podríamos decir:

$valor [0] [0] = 1; $valor [0] [1] = 14; $valor [0] [2] = 8; $valor [0] [3] = 3;

$valor [1] [0] = 6; $valor [1] [1] = 19; $valor [1] [2] = 7; $valor [1] [3] = 2;

$valor [2] [0] = 3; $valor [2] [1] = 13; $valor [2] [2] = 4; $valor [2] [3] = 1;

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo3.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php

$animal[ 0][ 0] = "Perro" ;

$animal[ 0][ 1] = "Gato" ;

$animal[ 1][ 0] = "Lombriz" ;

$animal[ 1][ 1] = "Burro" ;

$animal[ 2][ 0] = "Murciélago" ;

$animal[ 2][ 1] = "Cocodrilo" ;

echo $animal[ 2][ 1];

echo $animal[ 0][ 0];

?>

14133

27196

38141

Page 71: PHP Desde Cero

Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Hay que recordar que los arrays siempre comienzan numerándose desde cero.

Otra forma de asignar valores a un array matriz es similar a la que ya describimos para los vectores.

Escribe este código y guárdalo con un nombre de archivo como ejemplo4.php. A continuación, sube el

fichero al servidor y visualiza el resultado.

<?php

$animal = array (

array ( "Perro" , "Gato" ),

array ( "Lombriz" , "Burro" ),

array ( "Murciélago" , "Cocodrilo" )

);

echo $animal[ 2][ 1];

echo $animal[ 0][ 0];

?>

También obtenemos el mismo resultado usando este código:

<?php

$animal[ 0] = array ( "Perro" , "Gato" );

$animal[ 1] = array ( "Lombriz" , "Burro" );

$animal[ 2] = array ( "Murciélago" , "Cocodrilo" );

echo $animal[ 2][ 1];

echo $animal[ 0][ 0];

?>

La visualización obtenida es la misma que la del ejemplo3.php.

ARRAYS MULTIDIMENSIONALES

Los arrays multidimensionales son los que tienen más de dos dimensiones. Estos tipos de arrays se

definen como las matrices pero añadiendo más filas y columnas.

Escribe este código, guarda el archivo php, súbelo al servidor y visualiza el resultado en tu navegador.

<?php

$animal[ 0][ 0][ 0] = "Perro" ;

$animal[ 0][ 0][ 1] = "Gato" ;

$animal[ 0][ 0][ 2] = "Lombriz" ;

$animal[ 1][ 0][ 0] = "Burro" ;

$animal[ 1][ 0][ 1] = "Murciélago" ;

$animal[ 1][ 0][ 2] = "Cocodrilo" ;

echo "<br/>&nbsp;&nbsp;&nbsp;" . $animal[ 1][ 0][ 1];

echo "<br/>&nbsp;&nbsp;&nbsp;" . $animal[ 0][ 0][ 3];

?>

Page 72: PHP Desde Cero

Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

En este ejemplo hemos incluido una línea que tiene poco sentido, o podría interpretarse como un error:

echo "<br/>&nbsp;&nbsp;&nbsp;" . $animal[0][0][3];

Fíjate que estamos invocando un localizador [0][0][3] que no existe, o al que aún no le hemos asignado

valor. Dependiendo del lenguaje y de la versión el resultado puede ser uno u otro. En principio, debe

tratar de evitarse invocar a una variable tipo array a la que no se haya asignado valor, ya que esto

supone una inconsistencia o incoherencia. En general, si esto ocurre, PHP devolverá un valor “vacío”,

que en este caso supondría que en la pantalla no se muestra nada asociado a esta variable. Por eso en

la pantalla vemos únicamente “Murciélago” y nada más.

Escribe el código que incluimos más abajo y visualiza el resultado. Si te fijas, cuando declaramos un

array dentro de otro array lo que hacemos es añadir una dimensión más al array. Por ejemplo, si

quisiéramos declarar un array de tres dimensiones de nombre $miFecha podríamos escribir:

<?php

$miFecha = array (

array (

array ( "13 de enero de 2015" , "11 de febrero de 2018" ),

array ( "13 de enero de 2020" , "11 de febrero de 2015" ),

),

array (

array ( "3 de agosto de 2017" , "1 de octubre de 2016" ),

array ( "3 de agosto de 2013" , "1 de octubre de 2019" ),

),

array (

array ( "10 de junio de 2020" , "11 de marzo de 2019" ),

),

array (

array ( "22 de marzo de 2020" , "28 de mayo de 2019" ),

array ( "22 de marzo de 2019" , "28 de mayo de 2018" ),

array ( "22 de marzo de 2018" , "28 de mayo de 2017" ),

array ( "22 de marzo de 2017" , "28 de mayo de 2016" ),

)

);

echo "<br/>&nbsp;&nbsp;&nbsp;" . $miFecha[ 3][ 2][ 0];

?>

Page 73: PHP Desde Cero

Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

En este ejemplo hemos definido:

$miFecha [0] [0] [0], $miFecha [0] [0] [1]

$miFecha [0] [1] [0], $miFecha [0] [1] [1]

$miFecha [1] [0] [0], $miFecha [1] [0] [1]

$miFecha [1] [1] [0], $miFecha [1] [1] [1]

$miFecha [2] [0] [0], $miFecha [2] [0] [1]

$miFecha [3] [0] [0], $miFecha [3] [0] [1]

$miFecha [3] [0] [2], $miFecha [3] [0] [3]

Compruébalo solicitando la visualización de todas estas variables, como vemos en este ejemplo.

<?php

$miFecha = array (

array (

array ( "13 de enero de 2015" , "11 de febrero de 2018" ),

array ( "13 de enero de 2020" , "11 de febrero de 2015" ),

),

array (

array ( "3 de agosto de 2017" , "1 de octubre de 2016" ),

array ( "3 de agosto de 2013" , "1 de octubre de 2019" ),

),

array (

array ( "10 de junio de 2020" , "11 de marzo de 2019" ),

),

array (

array ( "22 de marzo de 2020" , "28 de mayo de 2019" ),

array ( "22 de marzo de 2019" , "28 de mayo de 2018" ),

array ( "22 de marzo de 2018" , "28 de mayo de 2017" ),

array ( "22 de marzo de 2017" , "28 de mayo de 2016" ),

)

);

echo "<br/>&nbsp;&nbsp;&nbsp;" . $miFecha[ 3][ 2][ 0];

echo $miFecha [ 0] [ 0] [ 0]. "<br>"; echo $miFecha [0] [0] [1]. "<br>";

echo $miFecha [ 0] [ 1] [ 0]. "<br>"; echo $miFecha [0] [1] [1]. "<br>";

echo $miFecha [ 1] [ 0] [ 0]. "<br>"; echo $miFecha [1] [0] [1]. "<br>";

echo $miFecha [ 1] [ 1] [ 0]. "<br>"; echo $miFecha [1] [1] [1]. "<br>";

echo $miFecha [ 2] [ 0] [ 0]. "<br>"; echo $miFecha [2] [0] [1]. "<br>";

echo $miFecha [ 3] [ 0] [ 0]. "<br>"; echo $miFecha [3] [0] [1]. "<br>";

echo $miFecha [ 3] [ 1] [ 0]. "<br>"; echo $miFecha [3] [1] [1]. "<br>";

echo $miFecha [ 3] [ 2] [ 0]. "<br>"; echo $miFecha [3] [2] [1]. "<br>";

echo $miFecha [ 3] [ 3] [ 0]. "<br>"; echo $miFecha [3] [3] [1]. "<br>";

?>

Page 74: PHP Desde Cero

Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Próxima entrega: CU00825B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 75: PHP Desde Cero

Arrays asociativos en PHP. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº25 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

ARRAYS ASOCIATIVOS EN PHP. CONCEPTO Y FORMAS DE DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00825B)

Page 76: PHP Desde Cero

Arrays asociativos en PHP. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

ARRAYS ASOCIATIVOS EN PHP

Anteriormente hemos visto lo que son los arrays tradicionales en PHP y cómo operar con ellos de forma

muy elemental. Hemos aprendido que los arrays pueden denominarse “variables con localizador” o

“variables con índice”.

Por tanto los elementos del array son datos que están asociados, a su vez, a un elemento del array

llamado índice. Supongamos el array nombre[0], nombre[1], nombre[2]. El nombre de variable para el

array es “nombre” mientras que los índices son 0, 1 y 2.

El índice se caracteriza por conectar los elementos del array por medio de una numeración que empieza

por cero. Así, el primer elemento del array tiene índice cero, el segundo tiene índice uno, y así

sucesivamente.

Pero en realidad, resulta que este índice es numérico solo por defecto; es decir, tenemos la posibilidad

de crear nuestro propio índice dentro de un array. Cuando hacemos esto, estamos convirtiendo el array

en lo que se denomina un array asociativo.

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo1.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo arrays aprenderaprogramar.com

$colores_vehiculos = array (

'coche' => 'Rojo' ,

'moto' => 'verde' ,

'avion' => 'amarillo'

);

echo $colores_vehiculos[ 'moto' ];

?>

Si te fijas en el código, hemos asignado a la variable $colores_vehiculos un array asociativo. Al ser

asociativo tenemos que especificar un índice. Los índices que hemos especificado son: coche, moto y

avion. Es decir, en vez de usar 0, 1 y 2 hemos usado coche, moto y avión.

Page 77: PHP Desde Cero

Arrays asociativos en PHP. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2012

Para declarar arrays asociativos, en el paréntesis de definición del array, tenemos que asociar el índice

con el valor por medio del operador =>. Fíjate que el índice debe ir escrito entre comillas simples.

Después, para acceder a un elemento del array asociativo tenemos que escribir la variable asignada al

array, y posteriormente escribir entre corchetes el índice que hemos asignado a dicho elemento.

Tenemos la posibilidad de utilizar cualquier tipo de dato para especificar un índice. Por defecto es un

número, pero también podemos poner cadenas de texto, como en el ejemplo anterior e incluso

variables. Escribe este código y comprueba el resultado en tu servidor.

<?php //Ejemplo arrays aprenderaprogramar.com

$indice = 'coche' ;

$colores_vehiculos = array (

$indice => 'Rojo' ,

'moto' => 'verde' ,

'avion' => 'amarillo'

);

echo $colores_vehiculos[$indice];

?>

Como ves en este ejemplo hemos usado una variable tipo cadena de texto como índice de un array.

Finalmente, los arrays asociativos también pueden usarse en la forma de declaración habitual. Escribe

este ejemplo de código, guárdalo con un nombre de archivo y súbelo al servidor.

<?php //Ejemplo arrays aprenderaprogramar.com

$colores_vehiculos [ 'coche' ] = 'Rojo' ;

$colores_vehiculos [ 'moto' ] = 'verde' ;

$colores_vehiculos [ 'avion' ] = 'amarillo' ;

echo $colores_vehiculos[ 'moto' ];

?>

Comprobarás que en la pantalla del navegador se muestra el texto “verde”.

Próxima entrega: CU00826B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 78: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº26 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

FUNCIÓN COUNT. RECORRIDO DE ARRAYS UNIDIMENSIONALES Y MULTIDIMENSIONALES EN PHP CON FOR Y FOR-EACH. EJEMPLOS . (CU00826B)

Page 79: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

FUNCIÓN COUNT Antes de poder recorrer un array, debemos saber cuál es su tamaño para poder recorrerlo. Supongamos que un array tiene tres elementos: tenemos que dar una instrucción para que se extraiga el valor asociado a cada uno de los elementos del array, que normalmente será del tipo “para cada uno de los tres elementos del array, extraer su valor”.

Sin embargo, si el array tiene 24 elementos, la instrucción será del tipo “para cada uno de los veinticuatro elementos del array, extraer su valor”. Como vemos, en cada caso nos es necesario saber el número de elementos que hay en el array para poder recorrerlo, y para ello nos va a resultar útil la función count. La función count devuelve el número de elementos que hay en el array. Es decir para un array de 4 elementos, la función count devolverá el número 4. Recuerda que si se trata de valores numéricos de índices, éstos serán 0, 1, 2 y 3 en lugar de 1, 2, 3 y 4. Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo2.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo count aprenderaprogramar.com

$estacion[0] = "Primavera";

$estacion[1] = "Verano";

$estacion[2] = "Otoño";

$estacion[3] = "Invierno";

echo count($estacion);

?>

Puedes comprobar que se muestra el número 4 porque el array tiene 4 elementos. RECORRIDOS DE ARRAYS UNIDIMENSIONALES Ahora que ya conocemos que son los arrays, debemos conocer cómo recorrerlos para extraer o comprobar los valores que contiene cada uno de los elementos del array. Esta es una tarea habitual en programación que en general va a tener gran utilidad para nosotros.

Page 80: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

Lo arrays se pueden recorrer de muchas formas, nosotros no las explicaremos todas. Trataremos de ver en principio las más habituales y sencillas. Recorrido de arrays mediante for Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo3.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo arrays aprenderaprogramar.com

$array[0] = "Uno";

$array[1] = "Dos";

$array[2] = "Tres";

$array[3] = "Cuatro";

$array[4] = "Cinco";

$array[5] = "Seis";

$array[6] = "Siete";

$array[7] = "Ocho";

for($i=0;$i<count($array);$i++) {

echo $array[$i].'<br />';

}

?>

Como ejercicio y con lo explicado en las entregas anteriores sobre los distintos tipos de instrucciones repetitivas, escribe el código que dé lugar al mismo resultado que el ejemplo anterior pero usando la instrucción while y comprueba que obtienes el mismo resultado. RECORRIDO DE ARRAYS MULTIDIMENSIONALES Para recorrer un array multidimensional, tendremos que ir anidando tantas estructuras repetitivas como dimensiones tenga el array. Con un ejemplo se verá todo mucho más claro. Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo4.php. A continuación, sube el fichero al servidor y visualiza el resultado.

Page 81: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

<?php //Ejemplo arrays aprenderaprogramar.com

$array[0][0] = "Uno";

$array[0][1] = "Dos";

$array[1][0] = "Tres";

$array[1][1] = "Cuatro";

for($i=0;$i<count($array);$i++) {

for($j=0;$j<count($array[$i]);$j++) {

echo $array[$i][$j].'<br />';

}

}

echo "--------------------";

$array2[0][0][0] = "Cinco";

$array2[0][0][1] = "Seis";

$array2[0][0][2] = "Siete";

$array2[0][1][0] = "Ocho";

$array2[0][1][1] = "Nueve";

for($i=0;$i<count($array);$i++) {

for($j=0;$j<count($array[$i]);$j++) {

for($k=0;$k<count($array[$i][$j]);$k++) {

echo $array[$i][$j][$k].'<br />';

}

}

}

?>

Uno de los errores más comunes al recorrer un array es intentar pedir un elemento que no existe. Por ejemplo, el elemento $array[2][3] no existe y por tanto si hiciéramos una llamada a ese elemento como echo $array[2][3] nos dará un error tipo “undefined offset…” similar a éste:

Page 82: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

Recorrido de arrays mediante foreach PHP incorpora una forma “cómoda” para poder recorrer todos los elementos de un array. Esta forma se basa en el uso de la instrucción foreach. Este tipo de recorridos se suele usar cuando obtenemos datos de una base de datos. El tipo de array que nos suele devolver una consulta a la base de datos es similar al siguiente:

$datosArray = array( array('nombre' => 'Antonio', 'apellidos' => 'Gómez Gómez', 'telefono' => '675832145'), array('nombre' => 'Pedro', 'apellidos' => 'Guillén Gastón', 'telefono' => '674562178'), array('nombre' => 'Dolores', 'apellidos' => 'Candela Quema', 'telefono' => '689765432'), . . . . array('nombre' => 'Rubén', 'apellidos' => 'Guardia Jurado', 'telefono' => '654213896'), );

Recuerda que la anterior forma de expresión es equivalente a esta otra:

$datosArray[0] ['nombre'] = 'Antonio' $datosArray[0] ['apellidos'] = 'Gómez Gómez' $datosArray[0] ['telefono'] = '675832145' $datosArray[1] ['nombre'] = 'Pedro' $datosArray[1] ['apellidos'] = 'Guillén Gastón' $datosArray[1] ['telefono'] = '674562178' $datosArray[2] ['nombre'] = 'Dolores' $datosArray[2] ['apellidos'] = 'Candela Quema' $datosArray[2] ['telefono'] = '689765432'

La diferencia está en que en el primer caso los índices del array son en algunos casos cadenas (se trata de arrays asociativos) mientras que en el segundo caso los índices del array son números (se trata de arrays tradicionales). En el primer caso los valores 0, 1 y 2 son asignados automáticamente por php porque no se ha especificado otra cosa. Para recorrer arrays de forma cómoda se usa la instrucción foreach. Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo5.php. A continuación, sube el fichero al servidor y visualiza el resultado.

Page 83: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

<?php //Ejemplo foreach aprenderaprogramar.com

$rows = array(

array(

'nombre' => 'Antonio', 'apellidos' => 'Gómez Gómez', 'telefono' => '675832145'),

array(

'nombre' => 'Pedro', 'apellidos' => 'Guillén Gastón', 'telefono' => '674562178'),

array(

'nombre' => 'Dolores', 'apellidos' => 'Candela Quema', 'telefono' => '689765432'),

array(

'nombre' => 'Rubén', 'apellidos' => 'Guardia Jurado', 'telefono' => '654213896')

);

foreach($rows as $valor) {

echo 'Nombre: ' . $valor['nombre'] . '<br />';

}

?>

Como podemos observar, vamos a ir recorriendo todas las filas y mostrando el nombre. $valor es una variable temporal que sólo existe durante la ejecución de la instrucción foreach, y esta variable va tomando en cada repetición o iteración el valor del siguiente elemento dentro del array principal. En este caso, el elemento que hay dentro del array es otro array. A su vez, indicamos que para cada uno de los arrays extraidos en el recorrido, se nos muestre el item del array cuyo índice es ‘nombre’. Como ejercicio escribe el código que muestre los nombres y apellidos del array anterior. Si te resulta un poco complicado el ejercicio anterior, prueba con este código que es más sencillo, y luego vuelve a revisar el código anterior.

<?php

$estacion[0] = "Primavera";

$estacion[1] = "Verano";

$estacion[2] = "Otoño";

$estacion[3] = "Invierno";

foreach($estacion as $valor) {

echo '&nbsp; &nbsp; &nbsp;'. $valor.'<br/>';

}

?>

Page 84: PHP Desde Cero

Función count. Uso de for y for-each para recorrer arrays.

© aprenderaprogramar.com, 2006-2012

El resultado que obtenemos es similar al que se ve en la siguiente imagen. Como puedes comprobar, la variable $valor (variable transitoria) va tomando en cada repetición del bucle el contenido de los elementos o items del array que estamos recorriendo.

Próxima entrega: CU00827B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 85: PHP Desde Cero

Funciones en PHP: declaración y llamada a funciones en PHP. Ejemplos.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº27 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

FUNCIONES EN PHP: DECLARACIÓN Y LLAMADAS A FUNCIONES. PARÁMETROS. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Page 86: PHP Desde Cero

Funciones en PHP: declaración y llamada a funciones en PHP. Ejemplos.

© aprenderaprogramar.com, 2006-2012

FUNCIONES EN PHP Una de las herramientas más importantes en cualquier lenguaje de programación son las funciones. Una función es un conjunto de instrucciones que a lo largo del programa van a ser ejecutadas multitud de veces. Es por ello, que este conjunto de instrucciones se agrupan en una función. Las funciones pueden ser llamadas y ejecutadas desde cualquier punto del programa.

Además, una función puede recibir parámetros externos de los cuales dependa el resultado de dicha función. Es decir, según el parámetro o parámetros con los que se invoque a la función, ésta devolverá un resultado u otro. Las funciones deben estar definidas antes de realizar la llamada a la función (como es lógico). Sintaxis general para declarar una función:

function nombre (parámetro1, parámetro2, …, parámetroN) { instrucción1 instrucción2 . . . instrucciónN }

Para llamar (hacer que se ejecute) la función usaremos esta sintaxis: nombre(parámetros); Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo1.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo funciones aprenderaprogramar.com

function mostrarTexto($texto) {

echo "<strong>El texto a mostrar es el siguiente: </strong>";

echo $texto;

}

mostrarTexto("Me gusta mucho la web de aprenderaprogramar.com");

?>

Page 87: PHP Desde Cero

Funciones en PHP: declaración y llamada a funciones en PHP. Ejemplos.

© aprenderaprogramar.com, 2006-2012

En este ejemplo hemos visto cómo hemos definido una función cuyo nombre es mostrarTexto. Esta función espera un parámetro cuando es invocada (parámetro que se ha denominado $texto). Una vez se ejecuta, la función ejecuta una serie de instrucciones y devuelve el control al punto desde el que fue invocada. Podemos hacer varios comentarios:

a) En algunos lenguajes de programación se distinguen los términos “procedimiento” cuando un fragmento de código de este tipo ejecuta una serie de instrucciones sin devolver un valor, frente al término “función” que se aplica cuando un fragmento de código de este tipo ejecuta una serie de instrucciones y devuelve un valor. En PHP no se suele distinguir entre una cosa y otra, simplemente se habla de “función” en general.

b) En algunos lenguajes de programación como Java el tipado o especificación de tipos que se van a recibir por parte de la función (o el tipo de dato que va a devolver la función) es mucho más fuerte. Si te fijas, la función mostrarTexto recibe un parámetro denominado $texto, pero en ningún lado se especifica si dicho parámetro es tipo integer, float, double ó string. ¿De qué tipo es? Realmente no lo sabemos: el intérprete PHP se encarga de automáticamente reconocer el tipo que se le pasa a la función. Además, intentará ejecutar el código sea como sea el tipo del parámetro pasado. Si le resultara imposible ejecutar el código, devolvería un error.

La utilidad fundamental de las funciones es no tener que repetir partes de código comunes, que sería necesario repetir varias veces. Esas partes de código comunes se agrupan en funciones y simplemente llamaremos a la función cada vez que necesitamos ejecutar ese código. De esta manera, evitamos la repetición que hace más largo y difícil de entender un programa o desarrollo web. También podemos crear funciones que devuelvan datos (valores concretos). Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo2.php. A continuación, sube el fichero al servidor y visualiza el resultado.

<?php // Ejemplo funciones aprenderaprogramar.com

function operaciones($n1, $n2, $operacion) {

$resultado = 0;

if($operacion == "Sumar") {

$resultado = $n1 + $n2;

}else if($operacion == "Restar") {

$resultado = $n1 - $n2;

}else if($operacion == "Multiplicar") {

$resultado = $n1 * $n2;

}

return $resultado; // Devolver el resultado

}

// Llamar a la función operaciones

$r = operaciones(5, 7, "Sumar");

echo $r . "<br>";

// O podemos imprimir directamente

echo operaciones(15, 8, "Restar");

?>

Page 88: PHP Desde Cero

Funciones en PHP: declaración y llamada a funciones en PHP. Ejemplos.

© aprenderaprogramar.com, 2006-2012

Fíjate que a diferencia de la función mostrarTexto, la función operaciones nos devuelve un valor concreto, de forma que se sustituye su invocación allí donde aparece por el valor que devuelve. Así, la instrucción echo operaciones(15, 8, "Restar"); equivale a lo que sería escribir echo <<aquí el valor devuelto por la función operaciones invocada con los parámetros 15, 8 y “Restar” >>. Además, fíjate que la función mostrarTexto requería un parámetro, mientras que la función operaciones requiere tres parámetros. Si invocas la función sin pasarle el número de parámetros adecuado obtendrás un error. Por último, indicar que una función puede ser invocada sin parámetros.

<?php //Ejemplo funciones aprenderaprogramar.com

function mostrarTextoError {

echo "<strong>Se ha producido un error </strong>";

// Aquí pueden venir varias líneas de instrucciones

}

?>

Esta función carece de parámetros. Para invocarla escribiríamos mostrarTextoError(). Cada vez que realizáramos la invocación se ejecutaría el código dentro de la función. A modo de ejercicios, resuelve los siguientes problemas:

- Crear una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).

- Crear una función que reciba cinco números enteros como parámetros y devuelva el resultado de sumar los cinco números (tipo función, hay un valor devuelto). Asigna el resultado de una invocación a la función con cinco números cualesquiera a una variable de nombre $tmp y muestra por pantalla el valor de la variable.

Próxima entrega: CU00828B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 89: PHP Desde Cero

Funciones básicas en PHP: str_replace, time, date, md5, strtolower...

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº28 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

FUNCIONES BÁSICAS EN PHP: STR_REPLACE, TIME, DATE, MD5, STRTOLOWER, STRTOUPPER. EJEMPLOS. (CU00828B)

Page 90: PHP Desde Cero

Funciones básicas en PHP: str_replace, time, date, md5, strtolower...

© aprenderaprogramar.com, 2006-2012

FUNCIONES BÁSICAS EN PHP

PHP además de permitirnos definir nuestras propias funciones, dispone de una gran cantidad de

funciones propias del lenguaje a las que se denomina “funciones nativas” o “funciones del core o

núcleo php”. En esta entrega vamos a ver algunas de las funciones más usadas y, desde nuestro punto

de vista, más importantes. No obstante, existen cientos de funciones más.

FUNCIÓN STR_REPLACE

Esta función se utiliza para reemplazar caracteres dentro de una cadena de caracteres. Es decir, nos

permite definir una cadena que debe ser reemplazada con otra. Veámoslo con un ejemplo para

entenderla mejor.

Escribe este código y guárdalo con un nombre de archivo como ejemplo1.php. A continuación, sube el

fichero al servidor y visualiza el resultado.

<?php //Ejemplo funciones básicas aprenderaprogramar.com

$texto = "Donde dije digo digo Diego." ;

echo str_replace( "Diego" , "recortes" , $texto );

echo "<br />" ;

echo $texto ;

?>

Como podemos observar, en la cadena de caracteres $texto, hemos sustituido la palabra o conjunto de

caracteres "Diego" por "Recortes" y hemos devuelto el resultado sin modificar la variable de entrada.

La sintaxis general para esta función es:

str_replace (“cadena a buscar”, “cadena de reemplazo”, $variableString)

Fíjate que en el código que hemos escrito no hemos reemplazado el valor de la variable $texto por un

nuevo contenido. Unicamente hemos impreso por pantalla el resultado que nos devuelve la función. Si

hubiéramos escrito lo siguiente sí hubiéramos cambiado el contenido de la variable: $texto =

str_replace("Diego", "recortes", $texto);

Page 91: PHP Desde Cero

Funciones básicas en PHP: str_replace, time, date, md5, strtolower...

© aprenderaprogramar.com, 2006-2012

Funciones time y date

Estas dos funciones nos permitirán mostrar o capturar la fecha y hora, lo cual tiene una gran cantidad

de aplicaciones. Por ejemplo, supón que tienes una tienda on-line y para cada operación de venta

tienes que registrar la fecha y hora de la venta. Estas funciones resultarán útiles para ello.

La función time devuelve el momento actual medido como el número de segundos desde el 1 de Enero

de 1970 00:00:00 GMT. Cuando hablamos de momento actual nos referimos a la “hora actual del

servidor”. Hay que tener cuidado con esta circunstancia. Por ejemplo, si trabajas con un servidor

localizado en Estados Unidos lo más probable es que el servidor trabaje con la hora de Estados Unidos.

Si quieres obtener la hora local de tu país, tendrás que tenerlo en cuenta para restarle o sumarle cierto

número de horas a la hora que te devuelva el servidor.

Por otro lado, la función date muestra la fecha en formato d-m-Y (donde d representa día, m

representa mes y Y representa año) desde el valor de time u otra fecha dada en segundos desde el 1 de

Enero de 1970 00:00:00 GMT.

En general, te recomendamos que hagas pruebas para comprobar que los resultados de fecha y hora

obtenidos son los adecuados, ya que la configuración de cada servidor es distinta.

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo2.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo funciones básicas aprenderaprogramar.com

$time = time();

echo date ( "d-m-Y (H:i:s)" , $time );

?>

Como podemos observar, la función date da formato a la variable en segundos $time. Hay distintos

formatos para la función date pero no entraremos a describirlos todos.

La función time() devuelve un valor numérico entero largo, por ejemplo 1335169779. Este número

representa el número de segundos transcurridos desde el 1 de enero de 1970.

Para transformar ese número en una fecha “entendible por las personas” usamos la función date, cuya

sintaxis general es: date (“formato de salida”, valorTimeValido)

En cuanto a “formato de salida”, disponemos de las siguientes equivalencias:

Page 92: PHP Desde Cero

Funciones básicas en PHP: str_replace, time, date, md5, strtolower...

© aprenderaprogramar.com, 2006-2012

d: representa el día

m: representa el mes

Y: representa el año

H: representa la hora (dos dígitos)

i: representa los minutos (dos dígitos)

s: representa los segundos (dos dígitos)

En cuanto a valorTimeValido, será un número, generalmente contenido en una variable.

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo2bis.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo funciones básicas aprenderaprogramar.com

$time = time();

echo "<br/>";

echo $time;

echo "<br/>";

echo date( "d-m-Y (H:i:s)" , -3600 );

echo "<br/>";

echo date( "d-m-Y (H:i:s)" , 0);

echo "<br/>";

echo date( "d-m-Y (H:i:s)" , 3600 );

echo "<br/>";

echo date( "Y-m-d (H:i:s)" , $time );

echo "<br/>";

echo date( "Y-m-d " , $time );

echo "<br/>";

echo ("Según el servidor la hora actual es: " . date ("H:i:s" , $time));

?>

?>

Con este ejemplo podemos comprobar algunas cosas. En primer lugar, que la función time() devuelve

un número, mientras que la función date devuelve un String o cadena de texto.

Page 93: PHP Desde Cero

Funciones básicas en PHP: str_replace, time, date, md5, strtolower...

© aprenderaprogramar.com, 2006-2012

En segundo lugar, que para obtener fechas anteriores al 1 de enero de 1970 podemos usar números

negativos.

En tercer lugar, que el momento 0 que es el 01-01-1970 00:00:00 GMT, cuando es mostrado por un

servidor concreto, es adaptado a su horario local. En el servidor del ejemplo, el horario local es GMT +

01:00, es decir, su hora es la hora GMT +01:00, por eso nos devuelve como hora cero la una de la

mañana del 1 de enero de 1970. No te preocupes si te resulta un poco confuso, simplemente ten en

cuenta que debes hacer pruebas para ver cómo responde el servidor con el que estés trabajando.

En cuarto lugar que podemos hacer que la fecha se muestre en el formato u orden que queramos,

usando los términos clave “ d, m, Y, H, i, s” en el orden que queramos.

En quinto lugar, que podemos concatenar cómo se muestra una fecha (o almacenarla en otra variable si

quisiéramos) concatenando el resultado de la función date con una cadena de texto cualquiera.

FUNCIÓN MD5

La función md5 es utilizada para encriptar contraseñas. Se llama encriptar a convertir una palabra o

cadena de caracteres en un conjunto de letras y números aparentemente aleatorios. Para guardar

contraseñas es recomendable usar esta función por motivos de seguridad. Veamos un ejemplo.

Escribe este código y guárdalo con un nombre de archivo como ejemplo3.php. A continuación, sube el

fichero al servidor y visualiza el resultado.

<?php //Ejemplo funciones básicas aprenderaprogramar.com

$password = "micontraseña" ;

echo md5( $password );

?>

Observamos que la función devuelve la cadena de caracteres "micontraseña" con el encriptado md5, de

forma que una persona que vea este conjunto de letras y números no sabe a qué palabra o conjunto de

caracteres equivale.

Imagínate que un hacker consiguiera acceder a un listado de contraseñas de usuarios de tu página web.

Si las tienes encriptadas, no podrá hacer uso de ellas. Si no las tienes encriptadas, las podrá robar y

usar. La mayoría de aplicaciones web (como Joomla, Drupal, phpBB, etc.) usan sistemas de encriptación

Page 94: PHP Desde Cero

Funciones básicas en PHP: str_replace, time, date, md5, strtolower...

© aprenderaprogramar.com, 2006-2012

de modo que las contraseñas de los usuarios no son visibles para nadie, ni siquiera para los propios

administradores de las páginas web.

Cuando una persona introduce una contraseña en una página web que usa encriptado md5, el sistema

compara el encriptado de esa contraseña con el md5 almacenado. Si coincide, se permite el acceso. Si

no coincide, se deniega.

FUNCIONES STRTOLOWER Y STRTOUPPER

Las funciones strtolower y strtoupper transforman una cadena de caracteres en la misma cadena en

minúsculas o mayúsculas respectivamente.

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo4.php. A continuación,

sube el fichero al servidor y visualiza el resultado.

<?php //Ejemplo funciones básicas aprenderaprogramar.com

$cadena = "EstO eS UnA cadeNA de CARActeres" ;

echo strtolower( $cadena );

echo "<br />" ;

echo strtoupper( $cadena );

?>

Como vemos el comportamiento de las funciones es sencillo. Simplemente devuelven la cadena de

caracteres pasada como argumento en minúsculas o mayúsculas respectivamente.

Ten en cuenta que muchas veces para realizar comparaciones o para almacenar datos será interesante

uniformizar la información que se almacena. Por ejemplo, si se pide una ciudad, un usuario puede

introducir Buenos Aires, otro Buenos aires, otro BUENOS AIRES. Si usamos estas funciones, podemos

uniformizar y hacer que siempre se muestren o guarden de una misma manera, lo cual facilitará el

trabajo posterior.

Próxima entrega: CU00829B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 95: PHP Desde Cero

Envío de datos de un formulario. Métodos GET y POST.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº29 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

ENVÍO DE DATOS DE UN FORMULARIO CON PHP. MÉTODOS GET Y POST. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00829B)

Page 96: PHP Desde Cero

Envío de datos de un formulario. Métodos GET y POST.

© aprenderaprogramar.com, 2006-2012

FORMAS DE ENVÍO DE LOS DATOS DE UN FORMULARIO. MÉTODOS GET Y POST. EJEMPLOS

Cuando un usuario rellena un formulario en una página web los datos hay que enviarlos de alguna

manera. Vamos a considerar las dos formas de envío de datos posibles: usando el método POST o

usando el método GET. Debes conocer cómo se generan formularios HTML antes de leer esta entrega.

Por ejemplo: <form action="http://www.aprenderaprogramar.com/prog/newuser" method="get">

podría ser el encabezado de un formulario donde se usa el método get.

En el ejemplo anterior la acción que se ejecutará cuando el usuario pulse el botón “Enviar” (submit)

será el envío de los datos a la url especificada usando el método get.

Veamos el aspecto de un formulario cualquiera para hacernos una idea general.

Este formulario consta de varios campos que al usuario se le solicitan como Nombre, Apellidos, Correo

electrónico, País y Mensaje. Posiblemente los nombres de los campos en el código HTML sean del tipo

nombre_user, apellidos_user, email_user, pais_user y msg.

Page 97: PHP Desde Cero

Envío de datos de un formulario. Métodos GET y POST.

© aprenderaprogramar.com, 2006-2012

Un formulario se escribe en HTML. Si no tienes claro cómo se generan formularios HTML, te

recomendamos leas el curso HTML desde cero de aprenderaprogramar.com. Por ejemplo, este es el

código de un formulario:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> Ejemplo del uso de formularios - aprenderaprogramar .com </title>

</head>

<body>

<form method ="get" action ="action.php">

Selecciona tus intereses:

<br />

<input name="cbipeliculas" type ="checkbox" /> Películas

<br />

<input name="cbilibros" type ="checkbox" checked ="checked" /> Libros

<br />

<input name="cbiinternet" type ="checkbox" /> Internet

</form>

</body>

</html>

La diferencia entre los métodos get y post radica en la forma de enviar los datos a la página cuando se

pulsa el botón “Enviar”. Mientras que el método GET envía los datos usando la URL, el método POST los

envía de forma que no podemos verlos.

Un resultado usando el método GET sería el siguiente:

http://www.aprenderaprogramar.com/newuser.php?nombre=Pepe&apellido=Flores&email=h52turam

%40uco.es&sexo=Mujer

En esta URL podemos distinguir varias partes:

http://www.aprenderaprogramar.com/newuser.php es la dirección web en sí.

El símbolo ? indica dónde empiezan los parámetros que se reciben desde el formulario que ha enviado

los datos a la página.

Page 98: PHP Desde Cero

Envío de datos de un formulario. Métodos GET y POST.

© aprenderaprogramar.com, 2006-2012

Las parejas dato1=valor1, dato2=valor2, dato3=valor3… reflejan son el nombre y el valor de los campos

enviados por el formulario.

Por ejemplo: nombre=Pepe, apellidos=Flores, etc. nos dice que el campo del formulario que se

denomina nombre llega con valor “Pepe” mientras que el campo del formulario que se denomina

apellidos llega con valor “Flores”

Tener en cuenta que para separar la primera pareja se usa el símbolo ‘?’ y para las restantes el símbolo

‘&’.

Otro aspecto a tener en cuenta es que determinados caracteres no son recibidos en la URL de la misma

forma exactamente en que fueron escritos en el formulario. Por ejemplo, el valor del campo email que

se recibe en la URL es h52turam%40uco.es, mientras que el usuario en el formulario habrá introducido

con toda seguridad [email protected]. Como vemos, el carácter @ ha sido sustituido por los caracteres

%40. Estas equivalencias se introducen automáticamente en la transmisión de datos debido a que las

URLs no admiten determinados caracteres como letras con tildes, arrobas y otros. No debes

preocuparte por esta codificación, ya que si posteriormente rescatamos los valores mediante otros

mecanismos volveremos a obtener el texto original. Simplemente, conviene conocer esta circunstancia

para no pensar que están ocurriendo cosas extrañas o errores.

Hemos visto el resultado de un envío por el método get. En el caso de un envío de datos usando el

método POST, aunque estos datos también serán enviados (de una forma que podemos denominar

“oculta”), no los podremos ver en la URL. Para poder recuperar los valores de los campos en el caso de

un envío con el método post necesitaríamos otras herramientas (por ejemplo valernos del lenguaje PHP

para recuperar el valor de esos campos).

El resultado final con ambos métodos podemos decir que es el mismo: la información se transmite de

un lado a otro. La diferencia radica en que con el método GET podemos ver directamente los

parámetros pasados ya que están dentro de la URL mientras que con el método POST los parámetros

quedan ocultos y para rescatarlos hay que usar otras herramientas.

Un ejemplo de uso del método post sería este:

<form action="http://www.aprenderaprogramar.com/prog/newuser" method="post">

Cuando usamos el método post los datos enviados desde el formulario no son visibles, pero sí son

recuperables usando las instrucciones adecuadas.

Próxima entrega: CU00830B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 99: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº30 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

RECUPERAR DATOS DE UN FORMULARIO HTML USANDO PHP. USO DE $_GET. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00830B)

Page 100: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

RECUPERANDO DATOS DEL FORMULARIO. VARIABLES $_REQUEST, $_GET y $_POST Cuando un usuario pulsa el botón enviar de un formulario, la información que contenían sus campos es enviada a una dirección URL desde donde tendremos que recuperarla para tratarla de alguna manera. Por ejemplo, si realiza una compra, tendremos que recuperar los datos para completar el proceso de pago. La información del formulario “viaja” almacenada en variables que podremos recuperar y utilizar mediante PHP.

La recuperación de variables con PHP es bastante fácil, ya sean datos de un formulario enviado por el método post (parámetros no visibles) o por el método get (parámetros en la URL sí visibles). Antes que nada hay que aclarar que hay varios métodos para recuperar variables con PHP. Para los formularios tenemos los métodos GET, POST, y REQUEST. RECUPERAR VARIABLES CON GET GET nos permite recuperar parámetros desde la URL o desde formularios enviados con el método GET. Escribe este código y guárdalo con un nombre de archivo como ejemplo1.html. A continuación, sube el fichero al servidor, introduce un nombre en el campo del formulario y visualiza el resultado.

<form name="formulario" method="get" action="ejemploGet.php">

Nombre: <input type="text" name="nombre" value="">

<input type="submit" />

</form>

Antes de pulsar sobre el botón enviar, debemos crear el fichero ejemploGet.php que es el indicado en el formulario para el envío de los datos. Escribe este código y guárdalo con un nombre de archivo como ejemploGet.php. A continuación, sube el fichero al servidor en la misma carpeta donde subiste el ejemplo1.html

Page 101: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

<?php //Ejemplo aprenderaprogramar.com

$nombre = $_GET['nombre'];

echo $nombre;

?>

Fíjate que la instrucción $_GET['nombreDelParametro'] sirve para recuperar la información recibida. Una vez completemos el paso anterior, pulsaremos sobre el botón enviar del ejemplo1.html y veremos una imagen similar a la siguiente.

Vamos a explicar el proceso que ha tenido lugar. El primer archivo es un documento HTML. Para ser más correctos, deberíamos haberlo escrito de esta manera:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title>Ejemplo aprenderaprogramar.com</title>

</head> <body> <form name="formulario" method="get" action="ejemploGet.php">

Nombre: <input type="text" name="nombre" value="">

<input type="submit" />

</form> </body> </html>

Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un código HTML (o PHP) incluso cuando la sintaxis o la definición del documento no es del todo correcta. Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo más correctos posibles a la hora de escribir código web. Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el método de envío de los datos va a ser el método get y que la URL de destino va a ser ejemploGet.php. A su vez, el forumlario tiene un campo cuyo atributo name es “nombre”. Ese atributo define el nombre de la variable que vamos a poder recuperar en la URL de destino. En el archivo php hemos incluido la línea $nombre = $_GET['nombre']; que significa que creamos una variable php denominada $nombre donde almacenamos la información del campo ‘nombre’ que recibe la URL a través del método get proviniente del formulario. Si tuviéramos otros campos que hubiéramos definido como apellidos, teléfono, edad, el tratamiento sería similar. Por ejemplo:

Page 102: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

$apellidos = $_GET['apellidos']; $telefono = $_GET['celular']; $edadPersona = $_GET['edad']; Fíjate en que una cosa es la variable en la que almacenamos la información recuperada, y otra cosa es el nombre del campo del formulario de donde proviene. Por ejemplo en $apellidos = $_GET['apellidos']; coinciden el nombre de la variable que utilizamos con el nombre del campo del formulario. Sin embargo, en $telefono = $_GET['celular']; no coinciden. En este caso, el campo que proviene del formulario se llama ‘celular’ mientras que la información que venga en ese campo la almacenamos en una variable a la que hemos llamado $telefono. Finalmente, en $edadPersona = $_GET['edad']; estamos almacenando en una variable a la que hemos llamado $edadPersona la información proviniente de un campo del formulario denominado ‘edad’. Con frecuencia los nombres de las variables y de los campos del formulario se hacen coincidir, pero en otras ocasiones no. Esto queda a elección del programador. Como podemos observar, recuperar datos enviados por un formulario con el método GET es bastante simple usando PHP. EJERCICIO RESUELTO Nº 1 Diseñar un formulario web que pida la altura y el diámetro de un cilindro en metros. Una vez el usuario introduzca los datos y pulse el botón calcular, deberá calcularse el volumen del cilindro y mostrarse el resultado en el navegador. SOLUCIÓN La solución esquematizada en pseudocódigo es la siguiente: Esquematizar la solución en pseudocódigo es una buena idea antes de realizar la programación, aunque no siempre se hace. En primer lugar, crearemos el archivo html con el formulario.

1. Inicio 2. Mostrar “Introduzca el diámetro, en metros” : Pedir D 3. Mostrar “Introduzca la altura, en metros” : Pedir H 4. R = D/2 : Pi = 3,141593 5. V = Pi * (R ^ 2) * H 6. Mostrar “El volumen del cilindro es de”, V, “metros cúbicos”

7. Fin

Page 103: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title>Ejemplo aprenderaprogramar.com</title>

</head> <body> <form name="formularioDatos" method="get" action="ejemploGet1.php">

<p> CÁLCULO DEL VOLUMEN DE UN CILINDRO </p>

<br/>

Introduzca el diámetro en metros: <input type="text" name="diam" value="">

<br/> <br/>

Introduzca la altura en metros: <input type="text" name="altu" value="">

<br/> <br/>

<input value="Calcular" type="submit" />

</form> </body> </html>

Por otro lado, crearemos el archivo php con el tratamiento de datos:

<?php //Ejemplo aprenderaprogramar.com

$diametro = $_GET['diam'];

$altura = $_GET['altu'];

$radio = $diametro/2;

$Pi = 3.141593;

$volumen = $Pi*$radio*$radio*$altura;

echo "<br/> &nbsp; El volumen del cilindro es de". $volumen. "metros cúbicos";

?>

Fíjate que hemos escrito la potencia del radio como $radio * $radio. En otros lenguajes existe el operador de exponenciación, pero en php esta operación se tiene que realizar recurriendo a una función matemática. Esta función la estudiaremos más adelante.

Page 104: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

Finalmente obtenemos un resultado. Haz pruebas introduciendo como valores de diámetro y altura 2,15 y 1,75 en vez de 2.15 y 1.75. Posiblemente no obtengas un resultado adecuado si usas las comas, ya que en PHP el separador de la parte decimal de un número es el punto.

EJERCICIO RESUELTO Nº 2 Diseñar un desarrollo web simple con php que pida al usuario el precio de tres productos en tres establecimientos distintos denominados “Tienda 1”, “Tienda 2” y “Tienda 3”. Una vez se introduzca esta información se debe calcular y mostrar el precio medio del producto. SOLUCIÓN La solución esquematizada en pseudocódigo es la siguiente:

1. Inicio 2. Mostrar “Introduzca el precio del producto en el establecimiento número 1, en

euros” : Pedir Precio1 3. Mostrar “Introduzca el precio del producto en el establecimiento número 2, en

euros” : Pedir Precio2 4. Mostrar “Introduzca el precio del producto en el establecimiento número 3, en

euros” : Pedir Precio3 5. Media = (Precio1 + Precio2 + Precio3) / 3 6. Mostrar “El precio medio del producto es”, Media, “euros”

7. Fin

Page 105: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Ejemplo aprenderaprogramar.com</title>

</head>

<body>

<form name="formularioDatos" method="get" action="ejemploGet2.php">

<p> CÁLCULO DEL PRECIO MEDIO DE UN PRODUCTO </p>

<br/>

Introduzca el precio del producto en el establecimiento número 1, en euros:

<input type="text" name="precio1" value="">

<br/> <br/>

Introduzca el precio del producto en el establecimiento número 1, en euros:

<input type="text" name="precio2" value="">

<br/> <br/>

Introduzca el precio del producto en el establecimiento número 3, en euros:

<input type="text" name="precio3" value="">

<br/> <br/>

<input value="Calcular" type="submit" />

</form>

</body>

</html>

Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrás comprobar que los acentos o tildes no se ven bien.

Recordarte que la solución a esto es, cuando estamos trabajando con Notepad++, elegir en el menú Formato la opción “Codificar en UTF-8 sin BOM”. En caso de que por error el archivo esté en otro formato, elige la opción “Convertir en UTF-8 sin BOM” para dejar correctamente la codificación del archivo.

Page 106: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

Por otro lado necesitamos el archivo php.

<?php //Ejemplo aprenderaprogramar.com

$precio1 = $_GET['precio1'];

$precio2 = $_GET['precio2'];

$precio3 = $_GET['precio3'];

$media = ($precio1+$precio2+$precio3)/3;

echo "<br/> &nbsp; DATOS RECIBIDOS";

echo "<br/> &nbsp; Precio producto establecimiento 1: ". $precio1. " euros";

echo "<br/> &nbsp; Precio producto establecimiento 2: ". $precio2. " euros";

echo "<br/> &nbsp; Precio producto establecimiento 2: ". $precio3. " euros <br/>";

echo "<br/> &nbsp; El precio medio del producto es de ". $media. " euros";

?>

Page 107: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

¿DESDE DÓNDE SE RECUPERAN LOS DATOS? Si has realizado el ejercicio anterior habrás comprobado que la URL una vez se pulsa el botón de envío del formulario es de este tipo: http://www.aprenderaprogramar.com/ejemploGet2.php?precio1=18.55&precio2=21&precio3=27.55 Aquí podemos comprobar que los datos están en la URL. Ahora bien, los datos venían del formulario. ¿Desde dónde se están recuperando los datos? Para responder a esta pregunta escribe una URL de este tipo: http://www.aprenderaprogramar.com/ejemploGet2.php?precio1=10&precio2=15&precio3=20 DATOS RECIBIDOS Precio producto establecimiento 1: 10 euros Precio producto establecimiento 2: 15 euros Precio producto establecimiento 2: 20 euros El precio medio del producto es de 15 euros Llegamos a una conclusión: los datos pasan del formulario a la URL, y desde la URL son recuperados por el intérprete PHP usando $_GET[‘nombreDelParametro’]. Por tanto los datos no vienen directamente del formulario, sino a través de la URL. EJERCICIO Nº 3 Diseñar un desarrollo web simple con PHP que dé respuesta a la necesidad que se plantea a continuación.

Page 108: PHP Desde Cero

Recuperar datos de formularios HTML con PHP. $_GET

© aprenderaprogramar.com, 2006-2012

Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se desea crear una aplicación web que le indique cuánto tiempo transcurrirá hasta el llenado del depósito. El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y lo facilita el propio operario, aportando el dato en litros por minuto. SOLUCIÓN La solución esquematizada en pseudocódigo es la siguiente: Realiza el ejercicio y comprueba los resultados. Si tienes dudas o algún problema puedes escribir una consulta en los foros aprenderaprogramar.com. Para que tengas una referencia, si el caudal disponible es de 125 litros por minuto y los valores de diámetro y altura del cilindro son 2.15 y 1.75, el resultado que debes obtener es que el depósito tarda en llenarse será de 50.827 minutos, es decir, casi una hora. Próxima entrega: CU00831B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

1. Inicio 2. Mostrar “Introduzca el caudal disponible en litros / minuto”: Pedir Q 3. Mostrar “Introduzca el diámetro del depósito, en metros” : Pedir D 4. Mostrar “Introduzca la altura del depósito, en metros” : Pedir H 5. Pi = 3,141593 6. R = D / 2 7. V = Pi * (R ^ 2) * H : Vlitros = V * 1000 8. tminutos = Vlitros / Q 9. Mostrar “El tiempo que transcurrirá hasta el llenado del depósito es de”, tminutos, “minutos”

10. Fin

Page 109: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº31 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

PROCESAR DATOS DE UN FORMULARIO HTML EN PHP CON $_POST. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00831B)

Page 110: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

RECUPERANDO DATOS DEL FORMULARIO. VARIABLES $_POST Cuando un usuario pulsa el botón enviar de un formulario, la información que contenían sus campos es enviada a una dirección URL desde donde tendremos que recuperarla para tratarla de alguna manera. Por ejemplo, si realiza una compra, tendremos que recuperar los datos para completar el proceso de pago. La información del formulario “viaja” almacenada en variables que podremos recuperar y utilizar mediante PHP. Una de las formas de recuperación consiste en usar $_POST.

RECUPERAR VARIABLES CON POST POST nos permite recuperar datos enviados desde formularios con el método POST. Escribe este código y guárdalo con un nombre de archivo como ejemplo1.html. A continuación, sube el fichero al servidor, introduce un nombre en el campo y visualiza el resultado.

<form name="formulario" method="post" action="ejemploPost.php">

Nombre: <input type="text" name="nombre" value="">

<input type="submit" />

</form>

Antes de pulsar sobre el botón enviar, debemos crear el fichero ejemploPost.php que es el indicado en el formulario para el envío de los datos. Escribe este código y guárdalo con un nombre de archivo como ejemploPost.php. A continuación, sube el fichero al servidor en la misma carpeta donde subiste el ejemplo2.html

<?php

$nombre = $_POST['nombre'];

echo $nombre;

?>

Una vez completemos el paso anterior, pulsaremos sobre el botón enviar del ejemplo1.html y veremos una imagen similar a la siguiente.

Page 111: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Vamos a explicar el proceso que ha tenido lugar. El primer archivo es un documento HTML. Para ser más correctos, deberíamos haberlo escrito de esta manera:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title>Ejemplo aprenderaprogramar.com</title>

</head> <body> <form name="formulario" method="post" action="ejemploPost.php">

Nombre: <input type="text" name="nombre" value="">

<input type="submit" />

</form> </body> </html>

Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un código HTML (o PHP) incluso cuando la sintaxis o la definición del documento no es del todo correcta. Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo más correctos posibles a la hora de escribir código web. Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el método de envío de los datos va a ser el método post y que la URL de destino va a ser ejemploPost.php. A su vez, el formulario tiene un campo cuyo atributo name es “nombre”. Ese atributo define el nombre de la variable que vamos a poder recuperar en la URL de destino. En el archivo php hemos incluido la línea $nombre = $_POST['nombre']; que significa que creamos una variable php denominada $nombre donde almacenamos la información del campo ‘nombre’ a través del método post proveniente del formulario. Si tuviéramos otros campos que hubiéramos definido como apellidos, teléfono, edad, el tratamiento sería similar. Por ejemplo: $apellidos = $_POST['apellidos']; $telefono = $_POST['celular']; $edadPersona = $_POST['edad']; Fíjate en que una cosa es la variable en la que almacenamos la información recuperada, y otra cosa es el nombre del campo del formulario de donde proviene. Por ejemplo en $apellidos = $_POST['apellidos']; coinciden el nombre de la variable que utilizamos con el nombre del campo del formulario. Sin embargo, en $telefono = $_POST['celular']; no coinciden. En este caso, el campo que proviene del formulario se llama ‘celular’ mientras que la información que venga en ese campo la almacenamos en una variable a la que hemos llamado $telefono. Finalmente, en $edadPersona = $_POST['edad']; estamos almacenando en una variable a la que hemos llamado $edadPersona la información proveniente de un campo del formulario denominado ‘edad’.

Page 112: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Con frecuencia los nombres de las variables y de los campos del formulario se hacen coincidir, pero en otras ocasiones no. Esto queda a elección del programador. Como podemos observar, recuperar datos enviados por un formulario con el método POST es bastante simple usando PHP. EJERCICIO RESUELTO Nº 1 Diseñar un formulario web que pida la altura y el diámetro de un cilindro en metros. Una vez el usuario introduzca los datos y pulse el botón calcular, deberá calcularse el volumen del cilindro y mostrarse el resultado en el navegador. SOLUCIÓN La solución esquematizada en pseudocódigo es la siguiente: Esquematizar la solución en pseudocódigo es una buena idea antes de realizar la programación, aunque no siempre se hace. En primer lugar, crearemos el archivo html con el formulario.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title>Ejemplo aprenderaprogramar.com</title>

</head> <body> <form name="formularioDatos" method="post" action="ejemploPost1.php">

<p> CÁLCULO DEL VOLUMEN DE UN CILINDRO </p>

<br/>

Introduzca el diámetro en metros: <input type="text" name="diam" value="">

<br/> <br/>

Introduzca la altura en metros: <input type="text" name="altu" value="">

<br/> <br/>

<input value="Calcular" type="submit" />

</form> </body> </html>

1. Inicio 2. Mostrar “Introduzca el diámetro, en metros” : Pedir D 3. Mostrar “Introduzca la altura, en metros” : Pedir H 4. R = D/2 : Pi = 3,141593 5. V = Pi * (R ^ 2) * H 6. Mostrar “El volumen del cilindro es de”, V, “metros cúbicos”

7. Fin

Page 113: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Por otro lado, crearemos el archivo php con el tratamiento de datos:

<?php //Ejemplo aprenderaprogramar.com

$diametro = $_POST['diam'];

$altura = $_POST['altu'];

$radio = $diametro/2;

$Pi = 3.141593;

$volumen = $Pi*$radio*$radio*$altura;

echo "<br/> &nbsp; El volumen del cilindro es de". $volumen. "metros cúbicos";

?>

Fíjate que hemos escrito la potencia del radio como $radio * $radio. En otros lenguajes existe el operador de exponenciación, pero en php esta operación se tiene que realizar recurriendo a una función matemática. Esta función la estudiaremos más adelante. Finalmente obtenemos un resultado. Haz pruebas introduciendo como valores de diámetro y altura 2,15 y 1,75 en vez de 2.15 y 1.75. Posiblemente no obtengas un resultado adecuado si usas las comas, ya que en PHP el separador de la parte decimal de un número es el punto.

Page 114: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

EJERCICIO RESUELTO Nº 2 Diseñar un desarrollo web simple con php que pida al usuario el precio de tres productos en tres establecimientos distintos denominados “Tienda 1”, “Tienda 2” y “Tienda 3”. Una vez se introduzca esta información se debe calcular y mostrar el precio medio del producto. SOLUCIÓN La solución esquematizada en pseudocódigo es la siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Ejemplo aprenderaprogramar.com</title>

</head>

<body>

<form name="formularioDatos" method="post" action="ejemploPost2.php">

<p> CÁLCULO DEL PRECIO MEDIO DE UN PRODUCTO </p>

<br/>

Introduzca el precio del producto en el establecimiento número 1, en euros:

<input type="text" name="precio1" value="">

<br/> <br/>

Introduzca el precio del producto en el establecimiento número 1, en euros:

<input type="text" name="precio2" value="">

<br/> <br/>

Introduzca el precio del producto en el establecimiento número 3, en euros:

<input type="text" name="precio3" value="">

<br/> <br/>

<input value="Calcular" type="submit" />

</form>

</body>

</html>

1. Inicio 2. Mostrar “Introduzca el precio del producto en el establecimiento número 1, en

euros” : Pedir Precio1 3. Mostrar “Introduzca el precio del producto en el establecimiento número 2, en

euros” : Pedir Precio2 4. Mostrar “Introduzca el precio del producto en el establecimiento número 3, en

euros” : Pedir Precio3 5. Media = (Precio1 + Precio2 + Precio3) / 3 6. Mostrar “El precio medio del producto es”, Media, “euros”

7. Fin

Page 115: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrás comprobar que los acentos o tildes no se ven bien.

Recordarte que la solución a esto es, cuando estamos trabajando con Notepad++, elegir en el menú Formato la opción “Codificar en UTF-8 sin BOM”. En caso de que por error el archivo esté en otro formato, elige la opción “Convertir en UTF-8 sin BOM” para dejar correctamente la codificación del archivo.

Por otro lado necesitamos el archivo php.

<?php //Ejemplo aprenderaprogramar.com

$precio1 = $_POST['precio1'];

$precio2 = $_POST['precio2'];

$precio3 = $_POST['precio3'];

$media = ($precio1+$precio2+$precio3)/3;

echo "<br/> &nbsp; DATOS RECIBIDOS";

echo "<br/> &nbsp; Precio producto establecimiento 1: ". $precio1. " euros";

echo "<br/> &nbsp; Precio producto establecimiento 2: ". $precio2. " euros";

echo "<br/> &nbsp; Precio producto establecimiento 2: ". $precio3. " euros <br/>";

echo "<br/> &nbsp; El precio medio del producto es de ". $media. " euros";

?>

Page 116: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

EJERCICIO Nº 3 Diseñar un desarrollo web simple con PHP que dé respuesta a la necesidad que se plantea a continuación. Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se desea crear una aplicación web que le indique cuánto tiempo transcurrirá hasta el llenado del depósito. El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y lo facilita el propio operario, aportando el dato en litros por minuto. SOLUCIÓN La solución esquematizada en pseudocódigo es la siguiente: Realiza el ejercicio y comprueba los resultados. Si tienes dudas o algún problema puedes escribir una consulta en los foros aprenderaprogramar.com.

1. Inicio 2. Mostrar “Introduzca el caudal disponible en litros / minuto”: Pedir Q 3. Mostrar “Introduzca el diámetro del depósito, en metros” : Pedir D 4. Mostrar “Introduzca la altura del depósito, en metros” : Pedir H 5. Pi = 3,141593 6. R = D / 2 7. V = Pi * (R ^ 2) * H : Vlitros = V * 1000 8. tminutos = Vlitros / Q 9. Mostrar “El tiempo que transcurrirá hasta el llenado del depósito es de”, tminutos, “minutos”

10. Fin

Page 117: PHP Desde Cero

Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Para que tengas una referencia, si el caudal disponible es de 125 litros por minuto y los valores de diámetro y altura del cilindro son 2.15 y 1.75, el resultado que debes obtener es que el depósito tarda en llenarse será de 50.827 minutos, es decir, casi una hora. Próxima entrega: CU00832B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 118: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2012

Resumen: Entrega nº32 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

REQUEST EN PHP.

DIFERENCIAS Y VENTAJAS

E INCONVENIENTES ENTRE

GET, POST Y REQUEST.

EJERCICIOS RESUELTOS Y

EJEMPLOS. (CU00832B)

Page 119: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

RECUPERANDO DATOS DEL FORMULARIO. VARIABLES $_REQUEST

Cuando un usuario pulsa el botón enviar de un formulario, la información que contenían sus campos es

enviada a una dirección URL desde donde tendremos que recuperarla para tratarla de alguna manera.

Por ejemplo, si realiza una compra, tendremos que recuperar los datos para completar el proceso de

pago. La información del formulario “viaja” almacenada en variables que podremos recuperar y utilizar

mediante PHP. Una de las formas de recuperación consiste en usar $_REQUEST.

RECUPERAR VARIABLES CON REQUEST

REQUEST nos permite capturar variables enviadas desde formularios con los métodos GET o POST.

Vamos a ver dos ejemplos de formularios (ejemplo1.html y ejemplo2.html), que en un caso se enviarán

usando GET y en otro usando POST. Ambos formularios enviarán la información (action) a una página

común desde donde recuperaremos los datos usando $_REQUEST.

El código de los archivos html sería el siguiente para ejemplo1.html y ejemplo2.html. Escribe el código

en un editor de texto como Notepad++ y visualízalos en tu navegador:

<form name="formulario" method ="get" action ="ejemploRequest.php" >

Nombre: <input type ="text" name="nombre" value ="" >

<input type ="submit" />

</form>

<form name="formulario" method ="post" action ="ejemploRequest.php" >

Nombre: <input type ="text" name="nombre" value ="" >

<input type ="submit" />

</form>

Como podemos observar, el ejemplo1.html envía los datos por GET mientras que el ejemplo2.html

envía los datos por POST. Ahora bien, la acción o destino donde se enviarán los datos es la misma en los

dos casos, la dirección ejemploRequest.php.

Escribe este código y guárdalo con un nombre de archivo como ejemploRequest.php. A continuación,

sube el fichero al servidor en la misma carpeta donde subiste el ejemplo1.html y ejemplo2.html

<?phpn //Ejemplo aprenderaprogramar.com

$nombre = $_REQUEST[ 'nombre' ];

echo $nombre;

?>

Page 120: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

A continuación, observa el resultado obtenido al introducir el nombre tanto en el ejemplo1.html como

en el ejemplo2.html, y verás que es el mismo.

Vamos a explicar el proceso que ha tenido lugar. El primer archivo es un documento HTML. Para ser

más correctos, deberíamos haberlo escrito de esta manera:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title> Ejemplo aprenderaprogramar.com </title>

</head> <body> <form name="formulario" method ="get" action ="ejemploRequest.php" >

Nombre: <input type ="text" name="nombre" value ="" >

<input type ="submit" />

</form> </body> </html>

Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un

código HTML (o PHP) incluso cuando la sintaxis o la definición del documento no es del todo correcta.

Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo más correctos

posibles a la hora de escribir código web.

Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el método de envío de

los datos va a ser el método GET y que la URL de destino va a ser ejemploRequest.php. A su vez, el

formulario tiene un campo cuyo atributo name es “nombre”. Ese atributo define el nombre de la

variable que vamos a poder recuperar en la URL de destino. En el archivo php hemos incluido la línea

$nombre = $_REQUEST['nombre']; que significa que creamos una variable php denominada $nombre

donde almacenamos la información del campo ‘nombre’ que recibe la URL a través del método GET

proviniente del formulario. Si tuviéramos otros campos que hubiéramos definido como apellidos,

teléfono, edad, el tratamiento sería similar. Por ejemplo:

$apellidos = $_REQUEST['apellidos'];

$telefono = $_REQUEST['celular'];

$edadPersona = $_REQUEST['edad'];

Fíjate en que una cosa es la variable en la que almacenamos la información recuperada, y otra cosa es

el nombre del campo del formulario de donde proviene. Por ejemplo en $apellidos =

$_REQUEST['apellidos']; coinciden el nombre de la variable que utilizamos con el nombre del campo del

formulario. Sin embargo, en $telefono = $_REQUEST['celular']; no coinciden. En este caso, el campo

Page 121: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

que proviene del formulario se llama ‘celular’ mientras que la información que venga en ese campo la

almacenamos en una variable a la que hemos llamado $telefono. Finalmente, en $edadPersona =

$_REQUEST['edad']; estamos almacenando en una variable a la que hemos llamado $edadPersona la

información proviniente de un campo del formulario denominado ‘edad’.

Con frecuencia los nombres de las variables y de los campos del formulario se hacen coincidir, pero en

otras ocasiones no. Esto queda a elección del programador.

EJERCICIO RESUELTO Nº 1

Diseñar un formulario web que pida la altura y el diámetro de un cilindro en metros. Una vez el usuario

introduzca los datos y pulse el botón calcular, deberá calcularse el volumen del cilindro y mostrarse el

resultado en el navegador. El envío de datos debe hacerse por GET y la recuperación con REQUEST.

SOLUCIÓN

La solución esquematizada en pseudocódigo es la siguiente:

Esquematizar la solución en pseudocódigo es una buena idea antes de realizar la programación, aunque

no siempre se hace. En primer lugar, crearemos el archivo html con el formulario.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title> Ejemplo aprenderaprogramar.com </title> </head> <body> <form name="formularioDatos" method ="get" action ="ejemploRequest1.php" >

<p> CÁLCULO DEL VOLUMEN DE UN CILINDRO </p>

<br/>

Introduzca el diámetro en metros: <input type ="text" name="diam" value ="" >

<br/> <br/>

Introduzca la altura en metros: <input type ="text" name="altu" value ="" >

<br/> <br/>

<input value ="Calcular" type ="submit" />

</form> </body> </html>

1. Inicio

2. Mostrar “Introduzca el diámetro, en metros” : Pedir D

3. Mostrar “Introduzca la altura, en metros” : Pedir H

4. R = D/2 : Pi = 3,141593

5. V = Pi * (R ^ 2) * H

6. Mostrar “El volumen del cilindro es de”, V, “metros cúbicos”

7. Fin

Page 122: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Por otro lado, crearemos el archivo php con el tratamiento de datos:

<?php //Ejemplo aprenderaprogramar.com

$diametro = $_REQUEST[ 'diam' ];

$altura = $_REQUEST[ 'altu' ];

$radio = $diametro/ 2;

$Pi = 3.141593 ;

$volumen = $Pi*$radio*$radio*$altura;

echo " <br/> &nbsp; El volumen del cilindro es de " . $volumen. " metros cúbicos " ;

?>

Fíjate que hemos escrito la potencia del radio como $radio * $radio. En otros lenguajes existe el

operador de exponenciación, pero en php esta operación se tiene que realizar recurriendo a una

función matemática. Esta función la estudiaremos más adelante.

Finalmente obtenemos un resultado. Haz pruebas introduciendo como valores de diámetro y altura

2,15 y 1,75 en vez de 2.15 y 1.75. Posiblemente no obtengas un resultado adecuado si usas las comas,

ya que en PHP el separador de la parte decimal de un número es el punto.

EJERCICIO RESUELTO Nº 2

Page 123: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Diseñar un desarrollo web simple con php que pida al usuario el precio de tres productos en tres

establecimientos distintos denominados “Tienda 1”, “Tienda 2” y “Tienda 3”. Una vez se introduzca esta

información se debe calcular y mostrar el precio medio del producto. El envío de datos debe hacerse

por POST y la recuperación con REQUEST.

SOLUCIÓN

La solución esquematizada en pseudocódigo es la siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Ejemplo aprenderaprogramar.com</title>

</head>

<body>

<form name="formularioDatos" method="post" action ="ejemploRequest2.php">

<p> CÁLCULO DEL PRECIO MEDIO DE UN PRODUCTO </p>

<br/>

Introduzca el precio del producto en el estableci miento número 1, en euros:

<input type="text" name="precio1" value="">

<br/> <br/>

Introduzca el precio del producto en el estableci miento número 1, en euros:

<input type="text" name="precio2" value="">

<br/> <br/>

Introduzca el precio del producto en el estableci miento número 3, en euros:

<input type="text" name="precio3" value="">

<br/> <br/>

<input value="Calcular" type="submit" />

</form>

</body>

</html>

1. Inicio

2. Mostrar “Introduzca el precio del producto en el establecimiento número 1, en

euros” : Pedir Precio1

3. Mostrar “Introduzca el precio del producto en el establecimiento número 2, en

euros” : Pedir Precio2

4. Mostrar “Introduzca el precio del producto en el establecimiento número 3, en

euros” : Pedir Precio3

5. Media = (Precio1 + Precio2 + Precio3) / 3

6. Mostrar “El precio medio del producto es”, Media, “euros”

7. Fin

Page 124: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrás

comprobar que los acentos o tildes no se ven bien.

Recordarte que la solución a esto es, cuando estamos trabajando con Notepad++, elegir en el menú

Formato la opción “Codificar en UTF-8 sin BOM”. En caso de que por error el archivo esté en otro

formato, elige “Convertir en UTF-8 sin BOM” para dejar correctamente la codificación del archivo.

Por otro lado necesitamos el archivo php.

<?php //Ejemplo aprenderaprogramar.com

$precio1 = $_REQUEST['precio1'];

$precio2 = $_ REQUEST ['precio2'];

$precio3 = $_ REQUEST ['precio3'];

$media = ($precio1+$precio2+$precio3)/3;

echo "<br/> &nbsp; DATOS RECIBIDOS";

echo "<br/> &nbsp; Precio producto establecimiento 1: ". $precio1. " euros";

echo "<br/> &nbsp; Precio producto establecimiento 2: ". $precio2. " euros";

echo "<br/> &nbsp; Precio producto establecimiento 2: ". $precio3. " euros <br/>";

echo "<br/> &nbsp; El precio medio del producto es de ". $media. " euros";

?>

Page 125: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

EJERCICIO Nº 3

Diseñar un desarrollo web simple con PHP que dé respuesta a la necesidad que se plantea a

continuación. Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de

dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se

desea crear una aplicación web que le indique cuánto tiempo transcurrirá hasta el llenado del depósito.

El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y lo

facilita el propio operario, aportando el dato en litros por minuto.

SOLUCIÓN

La solución esquematizada en pseudocódigo es la siguiente:

Realiza el ejercicio y comprueba los resultados. Si tienes dudas o algún problema puedes escribir una

consulta en los foros aprenderaprogramar.com.

Para que tengas una referencia, si el caudal disponible es de 125 litros por minuto y los valores de

diámetro y altura del cilindro son 2.15 y 1.75, el resultado que debes obtener es que el depósito tarda

en llenarse será de 50.827 minutos, es decir, casi una hora.

1. Inicio

2. Mostrar “Introduzca el caudal disponible en litros / minuto”: Pedir Q

3. Mostrar “Introduzca el diámetro del depósito, en metros” : Pedir D

4. Mostrar “Introduzca la altura del depósito, en metros” : Pedir H

5. Pi = 3,141593

6. R = D / 2

7. V = Pi * (R ^ 2) * H : Vlitros = V * 1000

8. tminutos = Vlitros / Q

9. Mostrar “El tiempo que transcurrirá hasta el llenado del depósito es de”, tminutos, “minutos”

10. Fin

Page 126: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

RESUMEN DE LAS DIFERENCIAS ENTRE $GET, $POST Y $REQUEST

MÉTODO CONCEPTO OBSERVACIONES

GET

GET lleva los datos de forma "visible" al cliente

(navegador web). El medio de envío es la URL.

Para recoger los datos que llegan en la url se

usa $_GET.

Los datos son visibles por la URL, por

ejemplo:

www.aprenderaprogramar.com/

action.php?nombre=pedro&apellidos1=

gomez

POST

POST consiste en datos "ocultos" (porque el

cliente no los ve) enviados por un formulario

cuyo método de envío es post. Es ideal para

formularios. Para recoger los datos que llegan

por este método se usa $_POST.

La ventaja de usar POST es que estos datos

no son visibles al usuario de la web. En el

caso de usar get, el propio usuario podría

modificar la URL escribiendo diferentes

parámetros a los reales en su navegador,

dando lugar a que la información tratada no

sea la prevista.

REQUEST

No es un método de envío propiamente dicho,

es decir, no podemos poner en un formulario

HTML que el method sea REQUEST. Con la

variable $_REQUEST recuperaremos los datos

de los formularios enviados tanto por GET como

por POST.

La ventaja principal de esta forma de

recuperar los datos de un formulario es que

no tenemos que saber con cual método fue

enviado. La desventaja principal, como

veremos en el siguiente ejemplo, es que no

podremos diferencia una variable enviada

por GET o por POST.

Ahora nos podemos estar preguntado: ¿Qué pasaría si envío una variable nombre con un formulario

por método post y además en la página de recuperación de datos también está definida dicha variable

en la url y obtengo dicho variable con $_REQUEST? ¿Cuál me devolvería?

Pues bien, para contestar a esta cuestión planteemos el siguiente ejercicio.

Escribe este código y guárdalo con un nombre de archivo como ejemploPostGetRequest.html. A

continuación, sube el fichero al servidor.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head> <title> Ejemplo aprenderaprogramar.com </title>

</head> <body> <form name="formularioDatos" method ="post"

action ="ejemploGetPostRequest.php?nombre=pepito" >

Introduzca su nombre: <input type ="text" name="nombre" value ="" >

<br/> <br/>

<input value ="Enviar" type ="submit" />

</form> </body> </html>

Page 127: PHP Desde Cero

Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.

© aprenderaprogramar.com, 2006-2012

Introduciremos un nombre diferente a pepito, con lo que en la página de recuperación de datos,

tendremos dos valores para 'nombre'. Y ahora comprobaremos cuál nos devuelve

$_REQUEST['nombre']. Para ello escribe este código y guárdalo con un nombre de archivo como

ejemploPostGetRequest.php. A continuación, sube el fichero al servidor en la misma carpeta donde

subiste el ejemploPostGetRequest.html

<?php //Ejemplo aprenderaprogramar.com

echo "$_REQUEST['nombre' ] = " . $_REQUEST[ 'nombre' ];

?>

Como podemos observar, el valor que toma $_REQUEST es primero el valor enviado por POST y

después el enviado por GET (si no viniera en POST). Luego, como hemos observado, $_REQUEST da

prioridad a los valores enviados por POST antes que a los enviados por GET.

Recuerda también que una URL es modificable por el usuario. Por ejemplo si un formulario envía datos

así: www.aprenderaprogramar.com/action.php?nombre=pedro, el usuario podría modificar la URL escribiendo

directamente en su navegador www.aprenderaprogramar.com/action.php?nombre=barack. Esto puede tener

cierta importancia, sobre todo en el caso de transmisión de datos relativos a precios, ya que si el precio

se transmite por get será más fácilmente manipulable por el usuario (algo indeseable). Get tiene la

ventaja de que los datos son visibles y más fáciles de seguir y localizar, y el inconveniente de que puede

ser manipulado.

Próxima entrega: CU00833B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 128: PHP Desde Cero

Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.

© aprenderaprogramar.com, 2006-2012

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2012 Resumen: Entrega nº33 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

MANEJO BÁSICO DE ARCHIVOS CON PHP. FUNCIONES FOPEN, FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00833B)

Page 129: PHP Desde Cero

Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.

© aprenderaprogramar.com, 2006-2012

INTRODUCCIÓN AL MANEJO DE ARCHIVOS CON PHP.

Cuando necesitamos crear, guardar, leer o escribir archivos en la creación de sitios web, el manejo de

éstos se convierte en una prioridad. Para ello, vamos a ver una serie de funciones y algunos ejemplos

para familiarizarnos con el manejo de archivos a nivel básico en php.

FUNCIÓN FOPEN

La función fopen() sirve para abrir ficheros (archivos). Su sintaxis general:

<?php //Ejemplo aprenderaprogramar.com

$fp = fopen( fichero, modoDeApertura );

?>

Donde $fp es el descriptor o identificador del fichero abierto que necesitaremos más tarde.

fichero puede ser un archivo de texto, un archivo con extensión .php, o incluso la URL de una página

web (por ejemplo http://www.paginaweb.com/). “Abrir” una web con fopen() puede ser muy útil

cuando queremos comprobar si la web existe, o si está activa.

Si fichero empieza con "http://", se abre una conexión hacia la web especificada. Siempre debe

ponérsele una barra ( / ) al final.

Si fichero empieza con “ftp://", se abre una conexión al servidor especificado.

Si fichero no empieza con ninguna de las cosas anteriormente dichas, se abre una conexión "directa"

con el archivo especificado. Si no existe el archivo o dirección especificadas, se devuelve un error.

Hay distintos modos de apertura de archivos, vamos a ver los más habituales.

Page 130: PHP Desde Cero

Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.

© aprenderaprogramar.com, 2006-2012

A la hora de abrir un archivo, hay que saber de qué forma queremos abrirlo. Podemos abrirlo para

escritura y lectura, pero de distintas formas:

Modo Observaciones

r Abre el archivo sólo para lectura. La lectura comienza al inicio del archivo.

r+ Abre el archivo para lectura y escritura. La lectura o escritura comienza al inicio del

archivo.

w Abre el archivo sólo para escritura. La escritura comienza al inicio del archivo, y

vacía el archivo. Si el archivo no existe, intenta crearlo.

w+ Abre el archivo para escritura y lectura. La lectura o escritura comienza al inicio del

archivo, y vacía el archivo. Si el archivo no existe, intenta crearlo.

a Abre el archivo para sólo escritura. La escritura comenzará al final del archivo. Si el

fichero no existe se intenta crear.

a+ Abre el archivo para lectura y escritura. La lectura o escritura comenzará al final del

fichero. Si el fichero no existe se intenta crear.

Ejemplos

<?php //Ejemplo aprenderaprogramar.com

$fp = fopen( "/apr2/fichero.txt" , "r" );

$fp = fopen( "/apr2/fichero2.txt" , "w" );

$fp = fopen( "http://www.aprenderaprogramar.com/texto.txt" , "a+" );

$fp = fopen( "ftp://ftp.elmundo.es/fichero.txt" , "w" );

?>

Ahora bien, con esta simple instrucción sólo tendremos el archivo abierto para leer, escribir o leer y

escribir. Pero ahora tendremos que hacer uso de las otras instrucciones para escribir o recuperar los

datos que estimemos oportunos.

FUNCIÓN FCLOSE

La función fclose(identificadorDelFichero) cierra un archivo abierto.

Esta función debe ser utilizada después de abrir y manipular el archivo como veremos en los siguientes

ejemplos.

Page 131: PHP Desde Cero

Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.

© aprenderaprogramar.com, 2006-2012

FUNCIONES FGETS Y FEOF

La función fgets() recupera el contenido de una línea de un archivo. Su sintaxis general es:

<?php //Ejemplo aprenderaprogramar.com

fgets( descriptorDelFichero );

?>

Ejemplo

<?php //Ejemplo aprenderaprogramar.com

// Leemos la primera línea de fichero.txt

// fichero.txt tienen que estar en la misma carpeta que el fichero php

// fichero.txt es un archivo de texto normal creado con notepad, por ejemplo.

$fp = fopen( "fichero.txt" , "r" );

$linea = fgets( $fp );

fclose( $fp );

?>

Ahora bien, con esto sólo leeremos la primera línea del fichero de texto, si quisiéramos leer línea a línea

hasta el final necesitaríamos el uso de un bucle while, por ejemplo.

<?php //Ejemplo aprenderaprogramar.com

// Iremos leyendo línea a línea del fichero.txt has ta llegar al fin (feof($fp))

// fichero.txt tienen que estar en la misma carpeta que el fichero php

// fichero.txt es un archivo de texto normal creado con notepad, por ejemplo.

$fp = fopen( "fichero.txt" , "r" );

while(!feof( $fp )) { $linea = fgets( $fp );

echo $linea . "<br />" ; }

fclose( $fp );

?>

Esto nos mostrará el contenido del fichero de texto. Comprobarás que hemos incluido una nueva

función denominada feof (que viene significando algo así como file end of file o “marca de final de

archivo”). La sintaxis general para esta función es: feof (identificadorDelArchivo)

La función feof nos devuelve true cuando hemos llegado al final de archivo y false si no lo hemos

alcanzado todavía. La condición while (!feof($fp)) podríamos haberla escrito también de la siguiente

manera: while (feof($fp)==false) . Esta sintaxis es equivalente, puedes utilizar la que prefieras, pero

debes acostumbrarte a entender ambas formas de escritura.

Finalmente, fíjate como una vez hemos de terminado de operar con el fichero escribimos la instrucción

fclose(identificadorDelFichero) para cerrar la conexión, cosa que debemos hacer siempre.

Page 132: PHP Desde Cero

Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.

© aprenderaprogramar.com, 2006-2012

FUNCIÓN FPUTS

La función fputs() escribe una línea en un archivo. Su sintaxis general es:

<?php //Ejemplo aprenderaprogramar.com

fputs( descriptorDelFichero, cadena );

?>

Ejemplo

<?php //Ejemplo aprenderaprogramar.com

// Escribimos una primera línea en fichero.txt

// fichero.txt tienen que estar en la misma carpeta que el fichero php

$fp = fopen( "fichero.txt" , "w" );

fputs( $fp, "Prueba de escritura aprenderaprogramar.com" );

fclose( $fp );

?>

Fíjate que al realizar la apertura del fichero en modo w, si el fichero no existe, será creado. Fíjate

también como una vez hemos de terminado de operar con el fichero escribimos la instrucción

fclose(identificadorDelFichero) para cerrar la conexión, cosa que debemos hacer siempre.

Si ahora abrimos el fichero con algún editor de textos como Notepad, veremos lo siguiente:

A continuación vamos a realizar ejercicios para practicar el uso de estas funciones.

Próxima entrega: CU00834B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 133: PHP Desde Cero

Lectura y escritura de archivos de texto con PHP.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2013 Resumen: Entrega nº34 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

LECTURA Y ESCRITURA(fwrite) DE ARCHIVOS DE TEXTO CON PHP. MODOS DE ACCESO. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00834B)

Page 134: PHP Desde Cero

Lectura y escritura de archivos de texto con PHP.

© aprenderaprogramar.com, 2006-2013

LECTURA Y ESCRITURA DE ARCHIVOS DE TEXTO CON PHP. En esta ocasión veremos unos ejemplos prácticos de lectura y escritura de ficheros de texto usando PHP. El primer lugar, debemos crear un archivo de texto (con cualquier editor, notepad por ejemplo, aunque también puede valer el bloc de notas de Windows) con algunas líneas de texto.

LECTURA DE FICHEROS Para leer un archivo de texto línea a línea en PHP vamos a utilizar la función fgets(). Por ejemplo si queremos leer línea por línea el archivo 'archivo.txt' que se encuentra ubicado en la misma carpeta que el archivo 'leer.php', tenemos que escribir en el archivo PHP:

<?php //Ejemplo aprenderaprogramar.com

$file = fopen("archivo.txt", "r");

while(!feof($file)) {

echo fgets($file). "<br />";

}

fclose($file);

?>

Como podemos observar, lo primero que debemos hacer es abrir el fichero 'archivo.txt' y luego ir leyendo línea a línea hasta llegar al final. Recordemos que “r” es el modo de apertura que abre el archivo sólo para lectura. La lectura comienza al inicio del archivo.Después cerramos el fichero. Con esto conseguiremos mostrar por pantalla el contenido del fichero 'archivo.txt' tal y como podemos ver en la siguiente imagen de ejemplo.

Page 135: PHP Desde Cero

Lectura y escritura de archivos de texto con PHP.

© aprenderaprogramar.com, 2006-2013

El contenido del fichero de texto “archivo.txt” se supone que era el siguiente: Prueba de escritura de aprenderaprogramar.com esto es una linea de texto esto es una linea de texto esto es una linea de texto esto es una linea de texto esto es una linea de texto fin de la prueba de aprenderaprogramar.com

Lo que hemos hecho con nuestro pequeño programa es ir extrayendo líneas mientras no se detecta el final del fichero (feof). La condición while(!feof($file)) también podría haberse escrito de esta otra manera: while(feof($file)==false), con lo que obtendríamos el mismo resultado. ESCRITURA DE FICHEROS Para escribir un archivo de texto en PHP vamos a utilizar la función fwrite(). Por ejemplo si queremos escribir línea por línea un archivo 'archivo.txt' que se encuentre ubicado en la misma carpeta que el archivo 'escribir.php', tenemos que escribir en el archivo PHP:

<?php //Ejemplo aprenderaprogramar.com, archivo escribir.php

$file = fopen("archivo.txt", "w");

fwrite($file, "Esto es una nueva linea de texto" . PHP_EOL);

fwrite($file, "Otra más" . PHP_EOL);

fclose($file);

?>

Nota: PHP_EOL es un salto de línea en PHP. Mediante la concatenación con un punto forzamos el salto de línea después del texto introducido. Una vez escribimos en nuestro navegador la ruta del fichero escribir.php se ejecuta el código asociado. Después de la ejecución, podemos ver el fichero creado con un editor de texto cualquiera y observaremos el siguiente contenido:

Page 136: PHP Desde Cero

Lectura y escritura de archivos de texto con PHP.

© aprenderaprogramar.com, 2006-2013

Tener en cuenta que el modo de apertura de archivo que hemos usado es w. Si recordamos el significado de este modo: w: Abre el archivo sólo para escritura. La escritura comienza al inicio del archivo, y vacía el archivo. Si el archivo no existe, intenta crearlo.

AÑADIR CONTENIDO A UN FICHERO DE TEXTO A veces no queremos reemplazar el contenido que exista en un fichero de texto, sino añadir un contenido adicional al final de lo que ya exista en el mismo. Vamos a ver cómo podemos hacerlo. A modo de ejemplo añadiremos unas líneas de texto al final del fichero anteriormente escrito:

<?php //Ejemplo aprenderaprogramar.com

$file = fopen("archivo.txt", "a");

fwrite($file, "Añadimos línea 1" . PHP_EOL);

fwrite($file, "Añadimos línea 2" . PHP_EOL);

fclose($file);

?>

Tener en cuenta que el modo de apertura de archivo que hemos usado es a. Si recordamos el significado de este modo: a: Abre el archivo para sólo escritura. La escritura comenzará al final del archivo. Si el fichero no existe se intenta crear. Ahora podemos ver el fichero creado con un editor de texto cualquiera y observaremos el siguiente contenido (no se ha reemplazado el contenido existente, sino que se ha ampliado):

Observamos que hemos añadido las dos nuevas líneas al final del archivo. Próxima entrega: CU00835B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 137: PHP Desde Cero

Lectura completa de un archivo de texto. Función file_get_contents.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2013 Resumen: Entrega nº35 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

LECTURA COMPLETA DE UN ARCHIVO DE TEXTO. FUNCIÓN file_get_contents y nl2br. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00835B)

Page 138: PHP Desde Cero

Lectura completa de un archivo de texto. Función file_get_contents.

© aprenderaprogramar.com, 2006-2013

LECTURA ARCHIVOS DE TEXTO CON PHP USANDO LA FUNCIÓN FILE_GET_CONTENTS.

Además de con la función fopen podemos realizar la lectura de ficheros de texto usando la función

file_get_contents de PHP. La lectura de ficheros usando esta función es relativamente sencilla. Como

podremos observar en los siguientes ejemplos y ejercicios, con dicha función podremos leer archivos de

texto sin necesidad de ir recorriéndolos línea a línea para obtener su contenido.

FUNCIÓN FILE_GET_CONTENTS.

La sintaxis general a emplear es: file_get_contents($ruta_del_fichero);

Ejemplo.

<?php //Ejemplo aprenderaprogramar.com

$texto = file_get_contents("archivo.txt");

echo $texto;

?>

Como podemos observar, el fichero es mostrado sin saltos de línea. Para convertir esos caracteres de

salto de línea a etiquetas <br /> que den lugar a que se visualice el salto de línea en HTML y poder así,

visualizarlos en un navegador, necesitamos usar la función nl2br.

Función nl2br

La función nl2br convierte los saltos de línea a etiquetas <br /> con lo que podremos ver esos saltos de

línea en cualquier navegador. Para el ejemplo anterior podemos incluirla y así poder ver los saltos de

línea correctamente. Escribe este código en un archivo como ejemplo1.php y visualiza el resultado.

<?php //Ejemplo aprenderaprogramar.com

$texto = file_get_contents("archivo.txt");

$texto = nl2br($texto);

echo $texto;

?>

Page 139: PHP Desde Cero

Lectura completa de un archivo de texto. Función file_get_contents.

© aprenderaprogramar.com, 2006-2013

OTROS USOS DE FILE_GET_CONTENTS

Como dato adicional, la función file_get_contents, puede obtener el contenido de una página web en

forma de código HTML, es decir, su código fuente.

Ejemplo.

<?php //Ejemplo aprenderaprogramar.com

$texto = file_get_contents("http://www.aprenderaprogramar.com");

echo $texto;

?>

Page 140: PHP Desde Cero

Lectura completa de un archivo de texto. Función file_get_contents.

© aprenderaprogramar.com, 2006-2013

Haciendo un uso más avanzado de esta función podrías hacer cosas como:

- Introducir un fragmento de código de otra página web dentro de tu propia página web. Para

ello extraerías el contenido usando esta función y seleccionarías aquella parte que quieres

mostrar dentro de tu página web.

- Hacer búsquedas de forma similar a como las hacen buscadores tipo Google o Yahoo. Una vez

capturada la información de la página, tendrías que analizarla y almacenarla en bases de datos

para darle el tratamiento que quisieras.

- Copiar el contenido de una web en otra web.

- Diversas aplicaciones adicionales.

EJERCICIO

Crea un fichero que lleve por nombre miArchivoDePrueba.txt e introduce en él el siguiente texto:

Una base de datos es un sistema informático a modo de almacén.

En este almacén se guardan grandes volúmenes de información.

Por ejemplo, imaginemos que somos una compañía telefónica y deseamos tener almacenados los datos

personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones de

personas.

A continuación crea un archivo denominado ejemplo2.php donde usando la función file_get_content

recuperes en una variable el texto que se encuentra en ese fichero y lo muestres en el navegador.

Próxima entrega: CU00836B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 141: PHP Desde Cero

Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2013 Resumen: Entrega nº36 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CREAR UNA BASE DE DATOS MySQL PARA PRACTICAR CON PHP. ACCESO AL GESTOR phpMyAdmin. (CU00836B)

Page 142: PHP Desde Cero

Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

¿QUÉ ES UNA BASE DE DATOS?

Una base de datos, básicamente, es un lugar físico y software que permite almacenar, modificar y

eliminar información. Dicho sistema se suele denominar “servidor de base de datos” y comercialmente

existen distintas marcas comerciales o fabricantes de estos sistemas como puede ser Oracle, MySQL,

Microsoft SQL SERVER, etc.

Para tener una idea más precisa sobre qué es y para qué sirve una base de datos puedes consultar la

siguiente dirección:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=554:que-es-y-para-que-sirve-una-

base-de-datos-principales-tipos-oracle-mysql-sqlserver-postgre&catid=46:lenguajes-y-entornos&Itemid=163

CREAR UNA BASE DE DATOS MySQL EN NUESTRO SERVIDOR. CREAR UNA TABLA. TIPOS DE DATOS

BÁSICOS.

En primer lugar tendremos que acceder al Panel de Control de nuestro servidor. Para ello, tendremos

que teclear en nuestro navegador la dirección URL de acceso al panel de administración e introducir el

login y password. Si no dispones de servidor o no recuerdas cómo acceder, cuestiones que hemos

explicado anteriormente en este curso, vuelve a leer el apartado 'ACCEDER VÍA PANEL DE CONTROL

(CPANEL)' disponible en esta dirección web:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=529:crear-una-cuenta-de-hosting-gratuita-en-un-

servidor-php-y-acceder-via-cpanel-y-via-ftp-cu00813b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Una vez nos encontremos dentro del Panel de Control, se nos mostrará una pantalla similar a la que se

muestra en la siguiente imagen.

Page 143: PHP Desde Cero

Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

Si la miramos con detenimiento, podemos ver tres zonas que hemos marcado con un recuadro rojo. En

una de estas zonas pone “phpMyAdmin”. Si hacemos click sobre dicho enlace, al no tener ninguna base

de datos creada nos mostrará una imagen como la siguiente:

Pulsaremos cobre Create Database para crear una nueva base de datos. En otros servidores quizás sea

necesario acceder a un apartado denominado “MySql” para poder acceder a crear una base de datos.

En la pantalla que se nos muestra a continuación, indicaremos un nombre para nuestra base datos

(nombre que tendremos que recordar) y haremos click en Create Database.

Page 144: PHP Desde Cero

Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

Ahora ya tenemos nuestra base de datos creada tal y como nos indica la imagen siguiente:

En este hosting el nombre de nuestra base de datos se indica con nuestro identificador de usuario

seguido del nombre que le pusimos a la base de datos, es decir:

b7_10356956_mibasededatos

El nombre de la base de datos es algo que debemos apuntar pues nos hará falta más adelante.

Ahora para administrar la base de datos usaremos una aplicación denominada phpMyAdmin, una

aplicación específicamente preparada para administración de bases de datos MySql (MySql es uno de

los sistemas de bases de datos gratuito más usados en todo el mundo).

Próxima entrega: CU00837B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 145: PHP Desde Cero

Crear tablas en bases de datos MySQL. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2013 Resumen: Entrega nº37 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CREAR TABLAS EN BASES DE DATOS CON phpMyAdmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00837B)

Page 146: PHP Desde Cero

Crear tablas en bases de datos MySQL. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

PHPMYADMIN PARA ADMINISTRAR BASES DE DATOS

Hemos creado una base de datos y para administrar la base de datos usaremos la aplicación

denominada phpMyAdmin, una aplicación específicamente preparada para administración de bases de

datos MySql. Para ir a phpMyAdmin pulsaremos sobre el enlace 'Admin'. En otros servidores es posible

que haya que acceder de otra manera.

Las bases de datos organizan la información en tablas. El primer paso que vamos a dar es crear una

tabla donde introducir algunos datos a modo de ejemplo. Pinchamos sobre el nombre de la base de

datos y la pantalla que se nos muestra a continuación nos permite crear una tabla en dicha base de

datos. Nosotros vamos a suponer que queremos almacenar el nombre, apellidos, dirección, teléfono,

edad y altura de personas. Para ello crearemos una tabla que llamaremos agenda con 6 columnas tal y

como queda recogido en la siguiente pantalla:

A continuación pulsaremos sobre continuar para indicar los nombres y tipos de las columnas.

Page 147: PHP Desde Cero

Crear tablas en bases de datos MySQL. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

Los nombres de columnas que pondremos son nombre, apellidos, direccion, telefono, edad y altura

(escribimos estos nombres sin tildes). En tipo elegimos VARCHAR para todos las columnas de tipo

cadena de caracteres. El significado de VARCHAR podemos verlo como “texto de longitud variable”. En

vez de texto de longitud variable podríamos haber escogido otro tipo de datos como números enteros,

números autoincrementados de uno en uno para los campos tipo identificador, fechas, etc. El campo

edad lo ponemos de tipo número entero (INT), mientras que el campo altura lo ponemos de tipo

número decimal (FLOAT). De momento no nos interesa saber más y, por tanto, con las cuatro columnas

tipo VARCHAR, una columna tipo entero y otra columna tipo flotante, es más que suficiente para

nuestro objetivo (en este curso no vamos a tratar MySQL más que en aspectos básicos para

comprender cómo interacciona con PHP). Como longitud/valores para los tipos de datos VARCHAR

pondremos 100 que será la longitud máxima en caracteres que podrán ocupar las columnas.

En resumen, al introducir estos datos hemos declarado que vamos a crear una tabla con seis columnas,

denominadas nombre, apellidos, direccion, telefono, edad y altura. El número de filas no está

determinado. Además los datos que se almacenen no podrán tener más de 100 caracteres de longitud

para los tipos VARCHAR.

Para finalizar la creación de la tabla 'agenda', pulsamos sobre Guardar y finalizaremos el proceso. La

tabla creada podemos verla como algo similar a esto:

nombre apellidos direccion telefono edad altura

Como vemos ahora la tabla está vacía porque todavía no hemos introducido ningún dato.

Una vez creada la tabla 'agenda' introduciremos algunos datos de prueba. Para ello, pulsaremos sobre

el nombre de la tabla. Veremos que hay varias pestañas (Estructura, SQL, Insertar, Exportar, Importar,

Operaciones). Fíjate en la parte de arriba y verás que te indica el nombre de la base de datos y la tabla

en que te encuentras. Pulsaremos sobre 'Insertar' tal y como se muestra en la siguiente imagen:

Nos aparecerá una imagen similar a la siguiente. Nos indica un nombre de columna y los valores para

una fila (nombre, apellidos, direccion, telefono). Añadiremos algunos datos de prueba como: nombre

“Manuel Jesús”, apellidos “López de la Rosa”, dirección “C/Juan Bautista Nº 3”, telefono “658954875”,

edad 32 y altura 1,80. Añadiremos también otros datos como nombre “María”, apellidos “Manzano

Cabezas”, direccion “C/Arco del triunfo Nº 7”, telefono 695001002, edad 19 y altura 1,99.

Page 148: PHP Desde Cero

Crear tablas en bases de datos MySQL. PhpMyAdmin.

© aprenderaprogramar.com, 2006-2013

Después pulsaremos sobre continuar y ya tendremos los datos guardados en la tabla. Ahora la tabla

tendrá este aspecto:

nombre apellidos direccion telefono edad altura

Manuel Jesús López de la Rosa C/Juan Bautista Nº 3 658954875 32 1.80

María Manzano Cabezas C/Arco del triunfo Nº 7 695001002 19 1.99

Es muy habitual introducir en las tablas una columna denominada id que actúa como identificador

único de cada fila, aunque no es obligatorio (de hecho en este caso no la tenemos).

A partir de aquí, podremos realizar consultas, insertar datos o borrar datos usando PHP tal y como

veremos en los próximos apartados del curso.

Próxima entrega: CU00838B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 149: PHP Desde Cero

Uso de PHP con MySQL. Consultas básicas a bases de datos. Ejercicios.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2013 Resumen: Entrega nº38 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CONSULTAS BÁSICAS A BASE DE DATOS CON PHP. MySQL CONNECT, CLOSE, SELECT_DB, QUERY Y RESULT. EJEMPLOS. (CU00838B)

Page 150: PHP Desde Cero

Uso de PHP con MySQL. Consultas básicas a bases de datos. Ejercicios.

© aprenderaprogramar.com, 2006-2013

USO DE PHP CON MySQL. CONSULTAS BÁSICAS A BASE DE DATOS. INTRODUCCIÓN A MySQL.

EJERCICIOS RESUELTOS Y EJEMPLOS.

Estas próximas entregas no pretenden ser un manual de MySQL aunque sí se explicarán como realizar

consultas básicas desde PHP. Veamos algunas funciones básicas para acceder a una base de datos

MySQL desde PHP.

A continuación describiremos una serie de funciones que serán la base para poder realizar consultas a

la base de datos, añadir nuevos registros, actualizar registros, etc. Simplemente en este punto se

intenta indicar que existen dichas funciones, cuando las pongamos en práctica, con el ejemplo que

pondremos después de dichas funciones, nos resultarán más comprensibles didácticamente hablando.

FUNCIÓN MySQL_CONNECT

Esta función nos permite crear una conexión con una base de datos concreta.

La sintaxis que define esta función es: int mysql_connect($hostname , $nombreUsuario , $contraseña);

Devuelve: un identificador de conexión, o FALSE en caso de error.

$hostname es un nombre de servidor (dato que debemos consultar en nuestra cuenta de hosting).

$nombreUsuario es el nombre de usuario de base de datos, nombre que habremos especificado al

crear la base de datos.

$contraseña es la contraseña de acceso para el usuario de base de datos, contraseña que habremos

especificado al crear la base de datos.

La entenderemos mejor con el ejemplo que ponemos más adelante.

FUNCIÓN MySQL _CLOSE

Esta función nos permite cerrar la conexión con una base de datos anteriormente abierta. Siempre

debemos cerrar una conexión cuando hayamos terminado de usarla.

La sintaxis que define esta función es: int mysql_close($identidicador_conexión);

Devuelve: TRUE si se ha cerrado correctamente, FALSE en caso de errror.

El identificador de conexión será aquel que hayamos obtenido previamente usando la función

MySQL_connect. La entenderemos mejor con el ejemplo que ponemos más adelante.

Page 151: PHP Desde Cero

Uso de PHP con MySQL. Consultas básicas a bases de datos. Ejercicios.

© aprenderaprogramar.com, 2006-2013

FUNCIÓN MySQL _SELECT_DB.

Esta función nos permite seleccionar una base de datos concreta dentro de todas las existentes en el

servidor ($hostname) al que conectemos.

La sintaxis general a emplear es: int mysql_select_db($nombreBaseDatos, $identidicador_conexión);

Devuelve: TRUE si se ha seleccionado correctamente, FALSE en caso de errror.

El identificador de conexión será aquel que hayamos obtenido previamente con la función

MySQL_connect. La entenderemos mejor con el ejemplo que ponemos más adelante.

FUNCIÓN MySQL_QUERY

Esta función nos permite ejecutar una consulta a la base de datos que especifiquemos.

La sintaxis general a emplear es: int mysql_query($query, $identidicador_conexión);

Esta función devuelve TRUE o FALSE para indicar si las operaciones UPDATE, INSERT o DELETE han

tenido éxito. Para la operación SELECT devuelve un nuevo identificador de resultado. UPDATE significa

“actualizar”, INSERT significa “insertar” y DELETE significa “BORRAR”. SELECT significa “seleccionar”.

El identificador de conexión será aquel que hayamos obtenido previamente con la función

MySQL_connect. La entenderemos mejor con el ejemplo que ponemos más adelante.

FUNCIÓN MySQL_RESULT

Esta función nos permite ejecutar una consulta a la base de datos que especifiquemos.

La sintaxis que define esta función es:

string mysql_result ( resource $result, int numero_de_fila [, nombre_del_campo] )

La llamada a mysql_result pasándole ciertos parámetros devuelve un string o cadena de caracteres.

$result es el resultado obtenido previamente con una invocación a la función mysql_query.

Numero_de_fila es un número de fila dentro del resultado obtenido teniendo en cuenta que los

números de fila se cuentan empezando desde cero. Finalmente, se puede especificar el nombre del

campo que queremos extraer dentro de la fila (esto es opcional). Esta función la entenderemos mejor

con el ejemplo que veremos a continuación.

Page 152: PHP Desde Cero

Uso de PHP con MySQL. Consultas básicas a bases de datos. Ejercicios.

© aprenderaprogramar.com, 2006-2013

EJEMPLO DE USO DE LAS FUNCIONES ANTERIORES.

Escribe este código en un editor y guárdalo en un archivo de nombre ejemplo1.php.

<html>

<body>

<?php

$link = mysql_connect ( "sql203.byethost7.com" , "b7_10356956" , "*****" );

mysql_select_db ( "b7_10356956_mibasededatos" , $link);

$result = mysql_query ( "SELECT * FROM agenda" , $link);

echo "Nombre: " . mysql_result ($result, 0, "nombre" ). "<br>" ;

echo "Apellidos: " . mysql_result ($result, 0, "apellidos" ). "<br>" ;

echo "Dirección: " . mysql_result ($result, 0, "direccion" ). "<br>" ;

echo "Teléfono:" . mysql_result ($result, 0, "telefono" ). "<br>" ;

echo "Edad:" . mysql_result ($result, 0, "edad" ). "<br>" ;

echo "Altura:" . mysql_result ($result, 0, "altura" ). "<br>" ;

?>

</body>

</html>

En este código lo que hemos hecho es usar las cuatro funciones anteriores y la base de datos y tablas

que creamos en anteriores apartados del curso. Con todo ello lo que hacemos es realizar una consulta a

la base de datos.

Interpretemos las líneas que hemos escrito:

$link = mysql_connect("sql203.byethost7.com", "b7_10356956", "*****");

Con esta línea introducimos el identificador de conexión en una variable denominada $link. Invocamos

la función mysql_connect pasándole como parámetros el nombre del hosting, el nombre de usuario y la

contraseña. Estos datos debemos conocerlos (o consultarlos) previamente.

mysql_select_db("b7_10356956_mibasededatos", $link);

Con esta línea seleccionamos la base de datos pasándole a la función como parámetros el nombre de

base de datos y el identificador de conexión (que hemos obtenido y guardado en una variable

previamente).

$result = mysql_query("SELECT * FROM agenda", $link);

Con esta línea seleccionamos todos los registros (filas) y campos (columnas) existentes en nuestra base

de datos. Para seleccionar todos los registros escribimos SELECT *. A continuación indicamos la tabla de

la cual queremos obtener dichos registros y esto lo expresamos con la sintaxis FROM agenda, siendo

agenda el nombre de la tabla en la base de datos. Por último, incluimos en la llamada a la función el

identificador de conexión que hemos obtenido previamente.

Page 153: PHP Desde Cero

Uso de PHP con MySQL. Consultas básicas a bases de datos. Ejercicios.

© aprenderaprogramar.com, 2006-2013

Con la sentencia mysql_result($result, 0, "nombre") obtenemos el campo “nombre” del primer registro

(registro 0) del resultado de la consulta que hemos almacenado previamente en $result.

El resultado de invocar el archivo que hemos creado será algo similar a esto:

Resumiendo lo que hemos hecho, hemos usado la función mysql_connect(), que abre una conexión con

el servidor MySQL en el Host especificado (en este caso la máquina donde está alojada el servidor

MySQL, es sql203.byethost7.com). También hemos especificado un usuario (b7_10356956), y un

password para el usuario indicado.

Si la conexión ha tenido éxito, la función mysql_connect() devuelve un identificador de dicha conexión

(un número) que es almacenado en la variable $link, si no ha tenido éxito, devuelve 0 (FALSE).

Con mysql_select_db() PHP le hemos dicho al servidor que en la conexión $link nos queremos conectar

a la base de datos mydb.

La siguiente función mysql_query(), usando el identificador de la conexión ($link), envía una instrucción

SQL al servidor MySQL para que éste la procese. El resultado de ésta operación es almacenado en la

variable $result.

Finalmente, mysql_result() es usado para mostrar los valores de los campos devueltos por la consulta

(almacenados en $result). En este ejemplo mostramos los valores del registro 0, que es el primer

registro, y mostramos el valor de los campos especificados. Si quisiéramos mostrar los siguientes

registros tendríamos que incluir instrucciones con los números 1, 2, …

*Nota: Si tenemos algún problema en localizar la información de nuestro proveedor (nombre de base

de datos, usuario, etc.). recordar que dicha información está disponible en el panel de control del

servidor (cpanel o similar) tal y como vimos en entregas anteriores.

Page 154: PHP Desde Cero

Uso de PHP con MySQL. Consultas básicas a bases de datos. Ejercicios.

© aprenderaprogramar.com, 2006-2013

En nuestro panel de control en concreto, si bajamos con el scroll hacia abajo, después de la información

ftp que nos aparece marcada con un recuadro rojo, aparecerá la información relativa al servidor de

base de datos. Si estás utilizando otro servidor, tendrás que buscar el lugar específico donde figura esta

información.

Próxima entrega: CU00839B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 155: PHP Desde Cero

Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2013

Resumen: Entrega nº39 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

CONSULTAS A MySQL CON

PHP. mysql_fetch_array y

mysql_free_result.

EJEMPLOS Y EJERCICIOS

RESUELTOS. (CU00839B)

Page 156: PHP Desde Cero

Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.

© aprenderaprogramar.com, 2006-2013

CONSULTAS AVANZADAS A BASE DE DATOS MySQL CON PHP. EJEMPLOS Y EJERCICIOS RESUELTOS.

Ahora que conocemos de una forma básica como interactuar con una base de datos MySQL haciendo

uso de distintas funciones o instrucciones PHP, vamos a profundizar un poco más en dichas consultas

para, por ejemplo, recorrer todos los registros de la tabla agenda y visualizarlos de manera correcta

(recordar que en apartados anteriores del curso sólo se mostraban los valores para el primer registro

que se encontraba en la base de datos).

Para conseguir nuestro objetivo nos basaremos en el mismo código que ya hemos utilizado

anteriormente y realizaremos una serie de cambios.

EJERCICIO

Escribe este código en un editor y guárdalo en un archivo de nombre ejemplo1.php.

<html> // Ejemplo php con bases de datos aprenderaprograma r.com

<body>

<?php

$link = mysql_connect ( "sql203.byethost7.com" , "b7_10356956" , "*****" );

mysql_select_db ( "b7_10356956_mibasededatos" , $link);

$result = mysql_query ( "SELECT * FROM agenda" , $link);

// comienza un bucle que leerá todos los registros existentes

while( $row = mysql_fetch_array( $result )) {

// $row es un array con todos los campos existentes en la tabla

echo "<hr>" ;

echo "Nombre: " . $row[ 'nombre' ] . "<br>" ;

echo "Apellidos: " . $row[ 'apellidos' ] . "<br>" ;

echo "Dirección: " . $row[ 'direccion' ] . "<br>" ;

echo "Teléfono:" . $row[ 'telefono' ] . "<br>" ;

echo "Edad:" . $row[ 'edad' ] . "<br>" ;

echo "Altura:" . $row[ 'altura' ] . "<br>" ;

} // fin del bucle de instrucciones

mysql_free_result( $result ); // Liberamos los registros

mysql_close( $link ); // Cerramos la conexion con la base de datos

echo "<hr>" ;

?>

</body>

</html>

Como podemos observar, hacemos uso de una nueva función: mysql_fetch_array($result). Ya hemos

estudiado que en $result estamos extrayendo toda la información de la tabla existente en la base de

Page 157: PHP Desde Cero

Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.

© aprenderaprogramar.com, 2006-2013

datos debido a que estamos haciendo una consulta SELECT * FROM agenda, que nos extrae todas las

filas y campos existentes en la tabla agenda.

La función mysql_fetch_array($result) devuelve un array asociativo que corresponde a la fila

recuperada y mueve el puntero de datos interno hacia delante para que la próxima llamada a la función

(próxima repetición del bucle) nos devuelva el siguiente registro, como un array asociativo.

Recordar que durante el curso hemos estudiado diferentes tipos de arrays en php, y que decíamos que

los arrays tradicionales usaban índices como 0, 1, 2, 3, etc. mientras que los arrays asociativos usan otro

tipo de valores que se pueden asemejar a textos. Así un array tradicional podría ser

$colores_vehiculos[0], $colores_vehiculos[1], $colores_vehiculos[2], etc. mientras que un array

asociativo sería $colores_vehiculos[‘coche’], $colores_vehiculos[‘moto’], $colores_vehiculos[‘avion’].

En nuestro caso cada vez que invocamos la función mysql_fetch_array($result) obtenemos un array

asociativo con $row[‘nombre’], $row[‘apellidos], $row[‘direccion’], $row[‘telefono], $row[‘edad’],

$row[‘altura]. Si ya se han extraido todas las filas se produce la salida del bucle while.

El resultado que se obtiene al invocar la ruta del fichero será similar al siguiente:

En este ejemplo sólo tenemos dos registros. Si tuviéramos más registros el listado se alargaría para

mostrarlos todos ellos. ¿Qué ocurre si la información existente en base de datos comprende muchos

registros? En este caso la información se habrá almacenado en memoria y esto consume recursos del

sistema. Para liberar esta memoria se utiliza la instrucción mysql_free_result($result);

En la próxima entrega del curso veremos cómo añadir registros en una tabla de MySQL haciendo uso de

PHP y, una vez que añadamos más registros, veremos cómo queda el nuevo listado.

Próxima entrega: CU00840B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 158: PHP Desde Cero

Inserción de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha última actualización: 2013 Resumen: Entrega nº40 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

INSERCIÓN DE DATOS CON PHP Y MySQL. INSERT INTO VALUES. EJEMPLOS Y EJERCICIO RESUELTO. (CU00840B)

Page 159: PHP Desde Cero

Inserción de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2013

INSERCIÓN DE DATOS CON PHP Y MySQL. EJEMPLOS Y EJERCICIOS RESUELTOS.

Vamos a explicar cómo insertar registros en nuestra base de datos MySQL. En concreto, añadiremos

registros a la tabla agenda que habíamos creado previamente. Para ello tendremos que realizar lo que

se denomina una consulta SQL de inserción (insert into) e ir añadiendo tantos registros con sus

correspondientes valores para los campos como deseemos.

Para conseguir nuestro objetivo nos basaremos en el mismo código que ya hemos utilizado

anteriormente y realizaremos una serie de cambios.

EJERCICIO

Escribe este código en un editor y guárdalo en un archivo con un nombre como ejemplo1.php.

<html> // Ejemplo php con bases de datos aprenderaprograma r.com

<body>

<?php

$link = mysql_connect ( "sql203.byethost7.com" , "b7_10356956" , "*****" );

mysql_select_db ( "b7_10356956_mibasededatos" , $link);

mysql_query ( "INSERT INTO agenda VALUES ('Pedro', 'Gómez Gómez', 'C/ Buenaventura 54',

'699887766', 35, 1.98)" , $link);

mysql_query ( "INSERT INTO agenda VALUES ('Antonio', 'Delgado Fol ken', 'C/ El Milagroso

77', '699667744', 88, 1.71)" , $link);

mysql_close( $link ); // Cerramos la conexion con la base de datos

?>

</body>

</html>

Como vemos la sintaxis es la siguiente: mysql_query (“INSERT INTO nombreDeLaTabla VALUES

(‘valorParaCampo1’, ‘valorParacampo2’ … ‘valorParaCampon’, conectorConBaseDeDatos).

Tenemos que tener cuidado de poner los valores en el insert en el orden en el que aparecen en la base

de datos cuando creamos la tabla. Es decir, el primer valor será para la primera columna (en nuestro

ejemplo tipo varchar y corresponderá con el nombre), el segundo será para la segunda columna (en

nuestro ejemplo tipo varchar y se corresponderá con los apellidos), etc.

También tendremos que prestar atención para que los tipos de datos insertados se correspondan con

los de la tabla. Por ejemplo, no debemos insertar un valor numérico decimal si se espera un entero.

Después de ejecutar el código anterior invocando la URL correspondiente, vamos a ejecutar el código

de la entrega anterior del curso para ver los nuevos registros añadidos.

Page 160: PHP Desde Cero

Inserción de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2013

Escribe este código en un editor y guárdalo en un archivo con un nombre como ejemplo2.php.

<html> // Ejemplo php con bases de datos aprenderaprograma r.com

<body>

<?php

$link = mysql_connect ( "sql203.byethost7.com" , "b7_10356956" , "*****" );

mysql_select_db ( "b7_10356956_mibasededatos" , $link);

$result = mysql_query ( "SELECT * FROM agenda" , $link);

// comienza un bucle que leerá todos los registros existentes

while( $row = mysql_fetch_array( $result )) {

echo "<hr>" ;

echo "Nombre: " . $row[ 'nombre' ] . "<br>" ;

echo "Apellidos: " . $row[ 'apellidos' ] . "<br>" ;

echo "Dirección: " . $row[ 'direccion' ] . "<br>" ;

echo "Teléfono:" . $row[ 'telefono' ] . "<br>" ;

echo "Edad:" . $row[ 'edad' ] . "<br>" ;

echo "Altura:" . $row[ 'altura' ] . "<br>" ;

} // fin del bucle de instrucciones

mysql_free_result( $result ); // Liberamos los registros

mysql_close( $link ); // Cerramos la conexion con la base de datos

echo "<hr>" ;

?>

</body>

</html>

Vamos a resumir lo que hemos hecho: por un lado hemos accedido a la base de datos y hemos

insertado nos nuevas filas (ejemplo1.php) en la tabla agenda. Por otro lado visualizamos el contenido

de la tabla agenda (ejemplo2.php). El resultado será similar a este:

Page 161: PHP Desde Cero

Inserción de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.

© aprenderaprogramar.com, 2006-2013

Como observamos en la imagen anterior, aparecen los dos nuevos registros añadidos correspondientes

a “Pedro Gómez Gómez” y “Antonio Delgado Folken”.

Las operaciones de inserción en bases de datos son muy frecuentes en programación web. Ten en

cuenta por ejemplo que cada vez que se registra un usuario en una página web hay que guardar la

información del usuario (nombre, correo electrónico, etc.). Igualmente cada vez que se produce una

compra mediante comercio electrónico hay que almacenar la información de la compra en la base de

datos. Es por tanto una operación básica y de gran interés dentro de la programación con bases de

datos.

EJERCICIO PROPUESTO

Inserta en la tabla agenda de la base de datos que estamos utilizando los datos de una persona cuyo

nombre es Jesús Murillo Moreno, de 34 años, cuyo teléfono es 655221122, vive en c/Pintor Murillo

nº33, y tiene una altura de 1.67 metros. Presta atención al orden en que debes introducir los datos. Una

vez realizada la inserción, comprueba visualizando los registros existentes en la tabla que la inserción se

haya realizado correctamente.

Próxima entrega: CU00841B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Page 162: PHP Desde Cero

Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.

© aprenderaprogramar.com, 2006-2013

Sección: Cursos

Categoría: Tutorial básico del programador web: PHP desde cero

Fecha última actualización: 2013

Resumen: Entrega nº41 del Tutorial básico “PHP desde cero”.

Autor: Enrique González Gutiérrez

APRENDERAPROGRAMAR.COM

BORRAR DATOS EN TABLAS

CON PHP Y MySQL.

DIFERENCIAS ENTRE

DELETE Y TRUNCATE.

EJEMPLOS Y EJERCICIO

RESUELTO. (CU00841B)

Page 163: PHP Desde Cero

Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.

© aprenderaprogramar.com, 2006-2013

BORRADO DE DATOS CON PHP Y MySQL. DIFERENCIAS ENTRE DELETE Y TRUNCATE. EJEMPLOS Y

EJERCICIO RESUELTO.

Una tarea habitual con bases de datos será el tener que borrar cierta información. Vamos a ver cómo

realizar el borrado de ciertos registros que cumplan una condición y el borrado completo de todos los

registros (filas) de una tabla. Para ello utilizaremos dos de funciones PHP que describiremos a

continuación.

Función DELETE

La función DELETE se suele usar para borrar unos registros de una tabla que cumplen una o algunas

restricciones.

Sintaxis: DELETE FROM nombre_tabla WHERE columna = valor

En el anterior ejemplo hemos indicado una cláusula where que dará lugar al borrado cuando el dato

existente en la columna sea exactamente igual a un valor dado, pero también podremos usar otras

condiciones como mayor (>), menor(<), mayor o igual, menor o igual, etc.

También podremos borrar todos los registros de una tabla en concreto y, para ello, sólo basta con

omitir las condiciones, es decir, usar una sintaxis tipo: DELETE FROM nombre_tabla

EJERCICIO

Escribe este código en un editor y guárdalo en un archivo con un nombre como ejemplo1.php. Ten en

cuenta que deberás introducir los datos de tu propia base de datos (nombre, user, etc.).

<html> // Ejemplo php con bases de datos aprenderaprogramar.com

<body>

<?php

$link = mysql_connect("sql203.byethost7.com", "b7_10356956", "*****");

mysql_select_db("b7_10356956_mibasededatos", $link);

mysql_query("DELETE FROM agenda WHERE altura > 1.90", $link);

mysql_close($link); // Cerramos la conexion con la base de datos

?>

</body>

</html>

Con este ejercicio borraremos los registros de la tabla agenda cuya altura sea mayor que 1.90, es decir,

en la tabla agenda dejará de haber personas con altura superior a 1.90 porque habrán sido borrados.

Page 164: PHP Desde Cero

Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.

© aprenderaprogramar.com, 2006-2013

Función TRUNCATE

La función TRUNCATE sirve para borrar todos los registros de una tabla, al igual que hacíamos con la

función DELETE sin condiciones pero tiene algunas diferencias con ésta que explicaremos más adelante.

Sintaxis: TRUNCATE TABLE nombre_tabla

EJERCICIO

Escribe este código en un editor y guárdalo en un archivo con un nombre como ejemplo2.php. Ten en

cuenta que deberás introducir los datos de tu propia base de datos (nombre, user, etc.).

<html> // Ejemplo php con bases de datos aprenderaprogramar.com

<body>

<?php

$link = mysql_connect("sql203.byethost7.com", "b7_10356956", "*****");

mysql_select_db("b7_10356956_mibasededatos", $link);

mysql_query("TRUNCATE TABLE agenda", $link);

mysql_close($link); // Cerramos la conexion con la base de datos

?>

</body>

</html>

Con este código borraremos todos los registros de la tabla agenda. ¿Cuál es la diferencia con usar

delete? Vamos a explicarla a continuación.

Diferencias entre DELETE y TRUNCATE

• Ambas eliminan los datos, no la estructura de la tabla.

• Sólo DELETE permite la eliminación condicional de los registros, TRUNCATE no lo permite.

• TRUNCATE es más rápida que DELETE.

• TRUNCATE reiniciará el contador para una tabla que contenga una clave autoincrementada. Si

en nuestra tabla agenda tuviéramos un campo id autoincremental 1, 2, 3, 4, 5 … n (hasta el

número de registros existentes) al hacer TRUNCATE el contador volverá a empezar en 1. En

cambio DELETE mantendrá el contador de la tabla para una clave autoincrementada. Es decir, si

borramos todos los registros de una tabla que tenía un campo contador autoincremental cuyo

último valor era 3257, al insertar un dato después del borrado el valor del contador será 3258

en lugar de 1.

• TRUNCATE recrea una tabla, es decir, la tabla desaparece completamente y luego es creada de

nuevo, mientras que DELETE no hace que desaparezca la tabla, sólo elimina sus registros.

Page 165: PHP Desde Cero

Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.

© aprenderaprogramar.com, 2006-2013

CUÁNDO USAR DELETE Y TRUNCATE

• Usar TRUNCATE es más rapido que DELETE si vas a borrar toda una tabla y no te importan los

indices (claves autoincrementadas) o bien quieres resetearlos (hacer que vuelvan a empezar

desde 1).

• Usar DELETE para borrados selectivos (borrar determinados registros manteniendo otros).

• Aunque esto puede no entenderse en este momento del curso, usar DELETE en caso de tener

clave foránea a otra tabla, es decir, usarla en caso de borrados en cascada. No te preocupes por

entender esto ahora, lo irás comprendiendo a medida que avances en conocimientos de

programación y bases de datos.

EJERCICIOS PROPUESTOS

1. Eliminar todos los registros de la tabla agenda cuyo campo edad sea mayor o igual a 34.

2. Insertar dos nuevos registros con los datos que queramos.

3. Eliminar todos los registros de la tabla agenda usando TRUNCATE.

4. Insertar dos nuevos registros con los datos que queramos.

5. Eliminar todos los registros de la tabla agenda usando DELETE.

Consulta en los foros aprenderaprogramar.com si tienes dudas.

Próxima entrega: CU00842B

Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193