Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PHP es un lenguaje potente de alto nivel cuyo cdigo podemos introducir en pginas web HTML. PHP
se ejecuta en el servidor (no podemos ejecutarlo en nuestro ordenador a no ser que lo hagamos
funcionar como servidor). PHP, una vez es interpretado por el servidor, genera una salida HTML que
permite visualizar los resultados en los navegadores. Este curso permite aprender los fundamentos
para la creacin de pginas web usando PHP.
Destinatarios
Cualquier persona con inters en aprender fundamentos que le permitan crear pginas web usando PHP.
Para realizar este curso, debes tener conocimientos bsicos de ofimtica: saber copiar, pegar, mover y
abrir archivos. Adems debes tener conocimientos bsicos de HTML.
Contenidos
Duracin
El curso est dirigido por Enrique Gonzlez Gutirrez, responsable del Departamento Tcnico del
portal web aprenderaprogramar.com. Se oferta bajo la modalidad web (gratuito).
Para ms informacin: contacto@aprenderaprogramar.com C/Los Guanches, 41 38205 La Laguna Tenerife Espaa CIF 54042040K
Indice del curso Tutorial bsico programador web: PHP desde cero.
4. FUNCIONES EN PHP
4.1. Declaracin y llamadas a funciones en PHP.
4.2. Funciones bsicas propias de PHP.
Para ms informacin: contacto@aprenderaprogramar.com C/Los Guanches, 41 38205 La Laguna Tenerife Espaa CIF 54042040K
Indice del curso Tutorial bsico programador web: PHP desde cero.
Para ms informacin: contacto@aprenderaprogramar.com C/Los Guanches, 41 38205 La Laguna Tenerife Espaa CIF 54042040K
Orientacin curso Tutorial bsico programador web: PHP desde cero
ORIENTACIN SOBRE EL CURSO PASO A PASO TUTORIAL BSICO DEL PROGRAMADOR WEB: PHP
DESDE CERO
PHP es un lenguaje de programacin de alto nivel, diseado originalmente para la creacin de pginas
web dinmicas. Por pgina web dinmica entendemos aquella que puede mostrar informacin cambiante
sin necesidad de que sea el programador quien haga estos cambios: con webs dinmicas podemos por
ejemplo hacer que se muestren noticias enviadas por un usuario sin necesidad de intervencin del
programador.
PHP tiene un gran parecido en su sintaxis con lenguajes de programacin estructurada, como C,
permitiendo a los programadores crear aplicaciones complejas con un corto periodo de aprendizaje.
Tambin permite crear aplicaciones de contenido dinmico sin necesidad de aprender un gran volumen
de funciones.
Este curso, que estamos comenzando, va dirigido a aquellas personas que quieran adquirir unos
fundamentos bsicos para crear pginas web dinmicas con vistas a poder desarrollar en el futuro
pginas web atractivas y de cierta complejidad. No vamos a desarrollar un manual de referencia de PHP,
sino un curso bsico paso a paso. No vamos a contemplar todos los aspectos del lenguaje PHP, sino
aquellos que consideramos bsicos desde el punto de vista didctico, con vistas a que posteriormente la
persona que lo desee ample sus conocimientos. Nuestro objetivo es ser claros, sencillos y breves, y para
eso tenemos que centrarnos en determinadas cuestiones de PHP y dejar de lado otras.
Como conocimientos previos para iniciar este curso recomendamos (seguir la recomendacin o no queda
a criterio del alumno y/o profesor que vayan a seguir el curso) los siguientes: Ofimtica bsica (saber
copiar, pegar, mover y abrir archivos). Adems es necesario tener conocimientos bsicos sobre HTML (si
no conoces HTML, recomendamos seguir el curso bsico de HTML de aprenderaprogramar.com).
Aprender PHP requiere tiempo y esfuerzo. Para hacer ese recorrido ms llevadero, te recomendamos
que utilices los foros de aprenderaprogramar.com, herramienta a disposicin de todos los usuarios de la
web (http://www.aprenderaprogramar.com/foros/), y que te servir para consultar dudas y recabar
orientacin sobre cmo enfrentarte a los contenidos. Entre los miembros del portal web y otros usuarios,
trataremos de ayudarte para que el estudio te sea ms llevadero y seas capaz de adquirir los
conocimientos necesarios y avanzar como programador.
El tiempo necesario (orientativamente) para completar el curso incluyendo prcticas con ordenador,
suponiendo que se cuenta con los conocimientos previos necesarios, se estima en 150 horas de
dedicacin efectiva o aproximadamente tres meses con una dedicacin de 2,5 horas diarias de lunes a
viernes. Aprender a crear pginas web requiere dedicacin y esfuerzo.
El curso ha sido generado paso a paso usando Windows como sistema operativo y por ello contiene
algunas indicaciones especficas para usuarios de Windows, pero tambin puede ser utilizado en otros
entornos (Linux, Macintosh, etc.).
Para ms informacin: contacto@aprenderaprogramar.com C/Los Guanches, 41 38205 La Laguna Tenerife Espaa CIF 54042040K
Orientacin curso Tutorial bsico programador web: PHP desde cero
Estamos seguros de que con tu esfuerzo y la ayuda que te podamos brindar este curso te resultar de
gran utilidad.
Para ms informacin: contacto@aprenderaprogramar.com C/Los Guanches, 41 38205 La Laguna Tenerife Espaa CIF 54042040K
Qu es PHP? Para qu sirve PHP? Potente lenguaje de programacin
PHP es un lenguaje de cdigo abierto muy popular, adecuado para desarrollo web y que puede ser
incrustado en HTML. Es popular porque un gran nmero de pginas y portales web estn creadas con
PHP. Cdigo 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 cdigo PHP con
cdigo HTML, siguiendo unas reglas.
PHP se utiliza para generar pginas web dinmicas. Recordar que llamamos pgina esttica a aquella
cuyos contenidos permanecen siempre igual, mientras que llamamos pginas dinmicas 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 bsquedas o aportaciones de los usuarios, etc.
Cmo trabaja PHP? El lenguaje PHP se procesa en servidores, que son potentes ordenadores con un
software y hardware especial. Cuando se escribe una direccin tipo
http://www.aprenderaprogramar.com/index.php en un navegador web como Internet Explorer, Firefox
o Chrome, qu ocurre? Se envan los datos de la solicitud al servidor que los procesa, rene los datos
(por eso decimos que es un proceso dinmico) y el servidor lo que devuelve es una pgina HTML como
si fuera esttica.
El esquema es:
Peticin de pgina web al servidor --> El servidor recibe la peticin, rene la informacin necesaria
consultando a bases de datos o a otras pginas webs, otros servidores, etc --> El servidor responde
enviando una pgina web normal (esttica) pero cuya creacin ha sido dinmica (realizando procesos
de modo que la pgina web devuelta no siempre es igual).
En resumen:
En un sitio dinmico, la informacin generalmente est contenida en una base de datos. Cada vez que
mostramos la pgina, como por ejemplo una pgina de noticas, buscamos en la base de datos las
ltimas noticias que tenemos ingresadas para mostrar en el navegador del visitante. Ahora bien, cmo
se consigue que la pgina vaya mostrando noticias nuevas? Simplemente cargando las mismas en la
base de datos, por ejemplo, a travs 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 pgina web y el servidor consulte la base de datos, encontrar esta
nueva informacin y mostrar nuestra pgina de forma distinta a como se vea anteriormente.
aprenderaprogramar.com, 2006-2029
Qu es PHP? Para qu sirve PHP? Potente lenguaje de programacin
Por regla general este tipo de lenguaje suele ser utilizado para crear contenido dinmico y poder
interactuar con el usuario.
Veamos un ejemplo del contenido de una pgina web php, que habremos de almacenar en un archivo
que termina con la extensin .php y que contiene texto:
Como podrs comprobar el contenido del archivo incluye cdigo HTML y en un momento dado aparece
una etiqueta <?php que significa que ah empieza el cdigo PHP. Por eso decimos que el cdigo PHP
est embebido (incluido o incrustado) en cdigo HTML.
Por tanto las pginas PHP contienen HTML con cdigo PHP incluido en ellas para hacer "algo" (en este
caso, mostrar Bienvenidos a aprenderaprogramar.com. El cdigo PHP est comprendido entre etiquetas
de comienzo y final especiales: <?php y ?>
Estas etiquetas especiales nos permitirn entrar y salir del "modo PHP". Le sirven al servidor web para
saber que tiene que interpretar el cdigo incluido entre esas etiquetas como PHP.
Lo que distingue a PHP de JavaScript es que el cdigo es ejecutado en el servidor, generando HTML y
envindolo al cliente como si fuera una pgina web esttica. El cliente recibir los resultados que el
servidor devuelve despus de interpretar el cdigo PHP, sin ninguna posibilidad de determinar qu
cdigo ha producido el resultado recibido. Es decir, a travs de nuestro navegador podramos ver el
cdigo HTML, pero nunca el cdigo PHP que dio lugar al resultado HTML. El servidor web puede ser
incluso configurado para que los usuarios no puedan saber si ests o no utilizando PHP.
Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece
muchas caractersticas avanzadas para los programadores profesionales y ms avanzados.
Con PHP puedes procesar la informacin de formularios, generar pginas con contenidos dinmicos, o
enviar y recibir cookies, entre muchas ms cosas. PHP lo utilizan desde pequeas pginas web hasta
grandes empresas. Muchas aplicaciones web estn construidas usando PHP. Podemos citar Joomla y
Drupal (gestores de contenido de pginas web), osCommerce y Prestashop (tiendas on-line para
comercio electrnico), phpBB y SMF (sistemas de foros para pginas web), Moodle (plataforma
educativa para educacin on-line), etc.
aprenderaprogramar.com, 2006-2029
Qu es PHP? Para qu sirve PHP? Potente lenguaje de programacin
Entre las habilidades de PHP se incluye la creacin de imgenes a partir de datos. Por ejemplo,
supongamos que tenemos una academia con 20 alumnos matriculados en un curso de informtica, 50
alumnos matriculados en un curso de matemticas y 30 alumnos matriculados en un curso de qumica.
Con PHP podemos generar automticamente imgenes similares a esta:
PHP tambin puede utilizar y presentar resultados en otros estndares 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 dinmico. Es decir, el contenido dinmico puede surgir de otros sitios
adems de desde bases de datos.
Tambin se puede interactuar con otros servidores usando cualquier protocolo. Por ltimo, PHP puede
enlazarse con otros lenguajes muy potentes como Java.
En resumen, PHP es un lenguaje potente, muy usado y de gran inters para los desarrollos web.
aprenderaprogramar.com, 2006-2029
Comunicacin entre el cliente y el servidor sin PHP y con PHP
Intentaremos explicar ahora cuales son las diferencias entre una peticin a un servidor sin PHP y con
PHP. Esto nos permitir ver cuales son las principales diferencias entre una pgina web esttica en
HTML y una pgina web dinmica en PHP.
Estas definiciones son definiciones simplificadas y muy someras, pero para los objetivos de este curso
nos resultarn suficientes.
En primer lugar, lo que hacemos es escribir en la barra de direcciones del navegador, la url de la pgina
web que queremos ver. Despus el navegador enva el mensaje a travs de internet al ordenador
remoto (servidor), de acuerdo con un protocolo estandarizado, solicitando la pgina en cuestin
(ejemplo: www.aprenderaprogramar.com/index.html). El servidor comprueba que la peticin es vlida
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 enva 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 pginas estticas (coloquialmente, pginas que
no cambian). Cualquiera que sea el cliente que solicita la pgina, 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.
aprenderaprogramar.com, 2006-2029
Comunicacin entre el cliente y el servidor sin PHP y con PHP
COMUNICACIN ENTRE EL CLIENTE Y EL SERVIDOR CON PHP. INTRPRETE PHP Y GESTORES DE BASES
DE DATOS.
Empezamos escribiendo en la barra de direcciones del navegador la url de la pgina web que queremos
ver. En segundo lugar, el navegador enva el mensaje a travs de internet al ordenador remoto
(servidor), de acuerdo con un protocolo estandarizado, solicitando la pgina (archivo) index.php.
(ejemplo: www.aprenderaprogramar.com/index.php).
El servidor web recibe el mensaje, comprueba que se trata de una peticin vlida, y al ver que la
extension es "php" solicita al intrprete de PHP (que es otro programa que se ejecuta en el servidor
web) que le enve el archivo.
En este caso la situacin ha variado: no se trata de una simple extraccin de un archivo desde el disco
duro, sino que est actuando un agente intermediario: el intrprete PHP. El intrprete PHP lee desde el
disco duro del servidor el archivo index.php y empieza a procesar las instrucciones (cdigo de
programacin) que contenga dicho archivo. Decimos que el intrprete 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 comunicacin con base de datos no siempre se
produce, pero es algo muy frecuente cuando trabajamos con PHP. Tenemos pues otra diferencia con las
webs estticas: interviene otro agente ms, el gestor de base de datos, que es capaz de devolver la
informacin contenida en lugares determinados de una base de datos. Y una base de datos podemos
verla simplemente como un gran almacn de informacin organizada en tablas.
Una vez el intrprete PHP termina de ejecutar el cdigo contenido en el archivo y ha recibido toda la
informacin necesaria del gestor de base de datos, enva los resultados al servidor web. El servidor web
enva la pgina al cliente que la haba solicitado y el navegador muestra en pantalla la informacin que
le enva el servidor web.
Una cuestin interesante, y curiosa, es preguntarnos sobre cul es la diferencia entre el cdigo HTML
que le llega al cliente cuando solicita una pgina esttica y el cdigo HTML que le llega cuando solicita
una pgina dinmica. La respuesta es que no hay diferencia: ambos son cdigo HTML. Cmo
podramos saber si un cdigo HTML proviene de un archivo html, esttico, o si proviene de una
respuesta de un intrprete PHP? Pues digamos que si simplemente nos dan el cdigo no podramos
saber de dnde viene.
Y otra cuestin que se puede plantear: si tanto con PHP como sin PHP lo que obtenemos es cdigo
HTML, para qu nos sirve el PHP? Bien, PHP es un lenguaje de programacin, mientras que HTML no lo
es. Con HTML podemos enviar cierta informacin siempre igual, pero no podemos hacer clculos, no
podemos tomar decisiones, no podemos repetir procesos cierto nmero de veces. En definitiva, PHP
aporta toda la potencia que supone la programacin de ordenadores al mundo de las pginas web.
aprenderaprogramar.com, 2006-2029
Comunicacin entre el cliente y el servidor sin PHP y con PHP
Pongamos un ejemplo muy sencillo: queremos que en una pgina web se produzca un proceso de venta
a travs de una tarjeta de crdito. Una vez el cliente elige el producto, nmero de unidades que quiere
y lugar de envo necesitaremos realizar unos clculos: esto lo podemos hacer con PHP (tambin con
otros lenguajes, pero vamos a centrarnos en el objeto de este curso). Una vez realizados los clculos, le
mostraremos al cliente el importe total y los datos de su compra y le pediremos que introduzca el
nmero de su tarjeta de crdito y su clave personal. Ahora hay que tomar una decisin: para esto no
nos sirve el HTML. Sin embargo, usando PHP podemos consultar a una base de datos donde estn
almacenados los nmeros de tarjetas de crdito vlidas del banco y sus claves. Una vez hecha esta
consulta, usando PHP podemos mostrar al usuario un resultado distinto segn la situacin que se haya
producido, por ejemplo:
Php es un lenguaje de programacin y HTML no lo es, esta es una gran diferencia. Si PHP es mucho
ms potente, por qu no prescindir de HTML? Digamos que cada lenguaje cumple su funcin: HTML es
un lenguaje muy ordenado que permite enviar informacin de forma rpida para que se muestre algo
en un ordenador. En este sentido, es ms rpido enviar la informacin 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 envo de
informacin. Cmo se haya generado esa informacin es otra cuestin.
aprenderaprogramar.com, 2006-2029
Comunicacin entre el cliente y el servidor sin PHP y con PHP
EJERCICIO
Responde a las siguientes preguntas indicando verdadero o falso y justicando brevemente tu respuesta:
a) Todos los servidores web trabajan con PHP, ya que es la nica manera de conseguir que se muestre
una pgina web en el computador cliente.
b) El cdigo HTML generado con PHP no es distinguible del cdigo HTML generado manualmente, a no
ser que contemos con alguna informacin adicional.
c) HTML es un lenguaje de programacin que permite decidir y repetir, pero carece de funcionalidades
de acceso a bases de datos.
d) Para crear pginas web dinmicas HTML es un lenguaje obsoleto. Para su creacin usaremos PHP u
otro lenguaje de ltima generacin.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Diferencia entre pginas web estticas y pginas web dinmicas con PHP.
DIFERENCIA ENTRE PGINAS WEB ESTTICAS Y PGINAS WEB DINMICAS CON PHP
Vamos a repasar algunos conceptos que ya hemos mencionado y que es importante que queden claros.
Las pginas web estticas o planas son aquellas en las que la informacin se presenta en forma
predefinida y sin cambios. No hay manera de que pueda cambiar el contenido de la pgina. En caso de
que se quiera actualizar una pagina esttica, se tendr que acceder directamente al servidor en el que
se encuentra alojada para hacer la edicin del archivo correspondiente.
En los inicios de Internet predominaban las pginas estticas, pero con el paso del tiempo y ante la
necesidad de agilizar el manejo de la informacin, surge un nuevo concepto de pginas web que hoy
sobresale y es el ms utilizado. Estas son denominadas pginas dinmicas: dentro de la programacin
dinmica para pginas web hay distintos lenguajes (entre los que cabe destacar PHP, ASP y JSP), siendo
php uno de los ms usados.
Normalmente, las pginas estticas estn compuestas por cdigo HTML. Cuando la pgina (archivo) es
solicitada por el navegador, el servidor la enva y no realiza ninguna operacin ms. Todos los visitantes
vern el mismo contenido.
Las pginas web dinmicas son aquellas en que la informacin que presentan se genera a partir de
alguna accin o peticin del usuario en la pgina o mediante consultas al contenido de bases de datos
que normalmente cambian con frecuencia. Contrariamente a las pginas estticas, en las que su
contenido se encuentra predeterminado, en las dinmicas la informacin aparece inmediatamente
despus de una solicitud hecha por el usuario o de una consulta a bases de datos. Una pgina dinmica
permite visualizar la informacin contenida en una base de datos, as como almacenar y hacer
actualizaciones de cierta informacin en bases de datos a travs 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 informacin introducida se almacena en una base de datos. Ahora
cuando otro usuario entra en FaceBook, esa informacin introducida por un usuario se le muestra a
otro usuario gracias a que se est rescatando de una base de datos. La programacin dinmica tiene
mltiples aplicaciones, entre las que podemos citar los sistemas de foros (los mensajes, imgenes, etc.
se almacenan en bases de datos). Otra aplicacin consiste en que el usuario tiene la posibilidad de
cambiar a su gusto el diseo y el contenido de una pgina, por ejemplo la pgina de inicio personalizada
de Google, gracias a que sus opciones se almacenan en una base de datos.
Queda claro entonces que para la creacin de este tipo de pginas dinmicas, adems de etiquetas
HTML es necesaria la utilizacin de algn lenguaje de programacin que se ejecute del lado del servidor
aprenderaprogramar.com, 2006-2029
Diferencia entre pginas web estticas y pginas web dinmicas con PHP.
(es decir, que el servidor realice un proceso antes de enviar la informacin 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 pginas webs dinmicas, estas pginas son procesadas por el servidor
antes de ser enviadas al navegador.
Una pgina .php contiene cdigo PHP que al ser ejecutado generar cdigo HTML. En ese proceso de
ejecucin de cdigo, pueden hacerse consultas a bases de datos u otros archivos. Adems, pueden
realizarse clculos o tomarse decisiones gracias a la potencia de la programacin.
El resultado final es que se enva al navegador cdigo 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 configuracin o solicitudes especficas del usuario. Otras personas podrn obtener
diferentes resultados si acceden en un momento en que la base de datos haya cambiado, o si tienen
opciones de configuracin o realizan una solicitud distinta. Ten en cuenta que aunque la URL nos
muestre una extensin .php, lo que recibe el usuario es cdigo HTML. Por ejemplo la URL siguiente:
http://www.aprenderaprogramar.com/index.php
Siempre devuelve cdigo HTML. Pero no siempre devuelve el mismo cdigo HTML porque para generar
ese cdigo existen procesos en el servidor que hacen que los resultados puedan variar.
Cmo reconocer si una web que visitamos es dinmica o esttica? En general, es dinmica aquella que
puede interactuar con el visitante y/o administrador web, pudindose modificar el contenido de la
pgina segn 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 fotografas,
etc. En este caso SI se utilizan bases de datos y se requiere programacin web dinmica.
Las pginas web dinmicas ofrecen muchas ventajas en comparacin con las pginas web estticas,
como una mayor interactividad con el usuario y facilidad para el cambio y actualizacin de contenidos.
A las personas que administran las pginas web (webmasters, programadores, gestores de contenidos),
la programacin dinmica les permite una reduccin en tiempo y costos, as como una mayor facilidad
en el mantenimiento de un sitio web.
Ante todas las ventajas de este tipo de pginas cabe citar una desventaja histrica en cuanto a los
resultados obtenidos en buscadores como Bing, Google o Yahoo. Hasta hace unos aos, los buscadores
consideraban que una web dinmica era no indexable (no registrables sus contenidos de cara a
bsquedas) debido a que no se poda ofrecer como resultado de un buscador algo que cambiaba con
frecuencia. Es frecuente oir el trmino URL amigable en referencia a una direccin web que es
sencilla y recuerda un texto simple, por ejemplo:
http://www.aprenderaprogramar.com/cursos/cursophp/paginas-dinamicas-y-estaticas.htm
aprenderaprogramar.com, 2006-2029
Diferencia entre pginas web estticas y pginas web dinmicas con PHP.
Por el contrario, muchas veces se dice que cuando las pginas contienen .php y numerosos parmetros
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 situacin en la actualidad puede considerarse superada: los buscadores se han sofisticado y son
capaces de indexar URLs dinmicas sin problemas. Algunas aplicaciones de software libre como
Joomla, Drupal, WordPress, etc. siguen manteniendo sistemas que permiten convertir las URLs
dinmicas en URLs amigables, pero en general podemos decir que esto es cada vez menos necesario.
Desde nuestro punto de vista, es ms importante tener una pgina web con un buen diseo, bien
estructurada en cuanto a mens y contenidos, que se actualice con frecuencia y que ofrezca contenidos
de calidad, ms que tener o no tener URLs amigables.
EJERCICIO
Responde a las siguientes preguntas indicando verdadero o falso y justicando brevemente tu respuesta:
a) Hoy da ya no tiene sentido crear una pgina web esttica, ya que los navegadores dejarn de
admitirlas en un futuro prximo.
b) Podemos reconocer si una pgina web es dinmica en base a si es capaz de almacenar informacin
que el usuario proporciona y rescatarla posteriormente. Por ejemplo: los comentarios en un blog.
c) La mayor parte de los sitios web y gestores de contenidos hoy da se basan en pginas web
dinmicas, pero muchos sitios siguen siendo webs estticas.
d) Si creamos un sitio web dinmico no podremos ser indexados por buscadores como Bing, Google o
Yahoo.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Es PHP un buen lenguaje de programacin? Versiones. Historia.
Los orgenes de PHP estn fechados en torno al ao 1995. Sin embargo, fue a partir del ao 1999 con la
publicacin de PHP 4 cuando este lenguaje de programacin tom un verdadero auge. En sus primeros
estadios de desarrollo, PHP se denominaba tambin Zend Engine, nombre que provena del nombre
de sus creadores: Zeev Suraski y Andi Gutmans.
En el ao 2004 fue lanzada la versin 5 de PHP basada en el nuevo motor Zend Engine 2.0. Esta nueva
versin ofreca mejoras para aplicaciones en servidores dedicados como por ejemplo un mejor soporte
para la programacin orientada a objetos y una extensin completamente nueva para el uso de MySQL,
una de las bases de datos ms usadas en servidores.
La versin 6 de PHP ha estado en preparacin durante largo tiempo en formato de borrador, sin llegar a
publicarse. Por ello se propuso que la nueva versin de PHP se llamara PHP 7, dejando PHP 6 como una
versin no publicada.
Algunas estadsticas 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
programacin que goza de gran popularidad y difusin. A esta circunstancia hay que aadir el hecho de
que pginas 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 pequeas pginas web hasta
para grandes portales.
En lo referente a si PHP es un buen lenguaje de programacin hay que tener en cuenta muchos
factores ya que el resultado final de un desarrollo web o de una aplicacin web no slo depende de la
herramienta sino de quin la maneja y cmo la maneja. Podemos afirmar que PHP utilizado
correctamente es un muy buen lenguaje de programacin.
aprenderaprogramar.com, 2006-2029
Es PHP un buen lenguaje de programacin? Versiones. Historia.
Lo que est claro es que, aunque tiene ventajas e inconvenientes, es uno de los lenguajes de
programacin ms difundidos en Internet y se encuentra disponible en prcticamente la totalidad de
los servidores dedicados. Cuando algo tiene xito y amplia difusin, por algo ser.
PHP 3
PHP 3.0, liberada en 1998, era la primera versin que se pareca fielmente al PHP tal y como lo
conocemos hoy en da.
Una de las mejores caractersticas de PHP 3.0 era su gran extensibilidad. Cuando hablamos de
extensibilidad nos referimos a la existencia de un ncleo o core al que se le pueden ir aadiendo
fragmentos de cdigo que permiten hacer ms cosas. Se tratara de algo parecido a tener una base
sobre la que podemos ir aadiendo piezas. Veamos una imagen:
En esta imagen, correspondiente a los juegos de nios armables Lego, vemos cmo existe una base
verde. Esa base sera el core o ncleo de PHP. Luego, aprovechando que esa base tiene preparados los
anclajes para seguir poniendo piezas, vemos que se le han aadido extensiones. Por ejemplo, la primera
extensin que tiene una base azul podra ser una extensin que permita la gestin de correos
electrnicos. La segunda extensin, que tiene una base verde, podra ser una extensin para gestionar
imgenes, y as sucesivamente
Adems de facilitar el trabajo con muchas bases de datos, protocolos y sistemas informticos, las
caractersticas de extensibilidad de PHP 3.0 atrajeron a muchos programadores a unirse al proyecto y
enviar nuevos mdulos de extensin. 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.
aprenderaprogramar.com, 2006-2029
Es PHP un buen lenguaje de programacin? Versiones. Historia.
Todo el nuevo lenguaje fue liberado con el nombre de 'PHP', con el significado de ser un acrnimo
juego de las letras iniciales de Hypertext Preprocessor.
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 fraccin 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 intrprete del lenguaje PHP. Con la nueva versin se lograron
aumentos de entre 5 y 10 veces en la velocidad de ejecucin de pginas PHP respecto a la versin
anterior, lo cual fue un salto muy importante.
Otra nueva caracterstica de PHP 4 fue que poda soportar hilos cosa que en PHP 3 no era posible. Un
hilo es bsicamente 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 inclua un depurador. Un depurador viene siendo un asistente que nos
ayuda a detectar dnde se encuentran los errores en los programas o cdigo de desarrollo. Esto ayuda
mucho al programador y le evita quebraderos de cabeza por no poder localizar errores. Gracias al
depurador, se podan seguir con mayor profundidad esos errores misteriosos que hacan perder
mucho tiempo.
La orientacin a objetos es una manera de programar que es muy usada hoy en da. No entraremos en
detalles sobre ella de momento, porque es algo avanzado dentro de la programacin y en este curso
trataremos de avanzar poco a poco desde lo ms bsico hasta lo ms complejo.
aprenderaprogramar.com, 2006-2029
Es PHP un buen lenguaje de programacin? Versiones. Historia.
El principal objetivo de PHP 5 ha sido mejorar los mecanismos de programacin orientada a objetos
para solucionar las carencias de las anteriores versiones. El resultado ha sido un lenguaje ms potente,
que cada vez es ms popular y que cada vez se usa ms, tanto a nivel profesional en empresas como a
nivel de usuarios que quieren construir pequeas pginas o portales web.
Algunas personas dicen que PHP se parece cada vez ms a Java, que es quizs el lenguaje de
programacin ms usado en el mundo, y que tambin es un lenguaje de programacin orientado a
objetos.
La versin 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 versin de PHP a usar. Es
decir, cada aplicacin debe ir con su versin de PHP adecuada al igual que a un vehculo a motor
debemos echarle el tipo de combustible adecuado. Si a un coche diesel le echamos gasolina, no
funcionar bien. Si una aplicacin que fue concebida para PHP 4 la intentamos ejecutar usando PHP 5,
probablemente ocurra lo mismo: no funcionar bien.
Tambin debemos tener en cuenta que usar siempre la ltima versin 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 algn parche.
En nuestra opinin la versin de PHP que debemos usar es la que mejor se adapte a nuestras
necesidades y, dentro de sta, la que sea ms estable. Para este curso recomendaremos usar PHP 5.x
(al escribir 5.x nos referimos a cualquier versin de PHP 5). Tambin es posible seguirlo usando PHP 4.x
No te preocupes ahora por la versin pues de cara al aprendizaje bsico no es importante. En cambio, s
debers prestar atencin a la versin si tratas de instalar aplicaciones como Joomla, Drupal o
WordPress en un servidor, pues hay que asegurarse de que la versin de la aplicacin sea compatible
con la versin de PHP en el servidor.
EJERCICIO
Busca informacin en internet sobre el actual estado de desarrollo de las versiones PHP. Cul es la
ltima versin estable publicada? En qu versiones se est trabajando como borrador?
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Qu necesito para escribir cdigo PHP y crear pginas web dinmicas?
Los requisitos indispensables para poder escribir y crear pginas PHP son los siguientes:
Disponer de un editor de textos con el que escribir el cdigo de la pgina PHP. Por ejemplo el
Notepad++ es ms que suficiente (el Bloc de notas de Windows tambin valdra pero es
mucho ms limitado).
En vez de un editor de textos podramos usar un programa ms avanzado (entorno de desarrollo), pero
en este curso vamos a centrarnos en el manejo bsico de PHP, por lo que utilizaremos un editor de
textos.
Un servidor dnde nuestras pginas PHP sean interpretadas y devueltas despus de dicha
interpretacin.
Un navegador web, como por ejemplo Google Chrome. Puede valer cualquier otro como
Mozilla Firefox, Internet Explorer, Safari, etc.
OPCIN 1 OPCIN 2
aprenderaprogramar.com, 2006-2029
Qu necesito para escribir cdigo PHP y crear pginas web dinmicas?
Cul de estos paquetes es mejor? Esta pregunta es de difcil 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 vlido.
Ms 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 cmo hacerlo se expondrn
en prximas entregas. Por ahora, debemos conocer simplemente las alternativas.
aprenderaprogramar.com, 2006-2029
Qu necesito para escribir cdigo PHP y crear pginas web dinmicas?
EJERCICIO
Responde a las siguientes preguntas indicando verdadero o falso y justicando brevemente tu respuesta:
a) Para escribir cdigo PHP necesitamos un IDE con un compilador, por ejemplo Aptana Studio.
b) No es posible visualizar pginas php en local a no ser que utilicemos un emulador de servidor como
Wamp, Xampp o similar.
c) Trabajar en local quizs sea ms rpido si tenemos una conexin a internet lenta, pero por el
contrario no emulamos de forma exacta las condiciones de un servidor real.
d) Si trabajamos en local slo podremos crear cdigo HTML, teniendo que posponer la creacin de
cdigo PHP a un momento posterior.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
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 pginas 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 direccin siguiente: http://notepad-plus-plus.org
Cuando la pgina haya terminado de cargar, hacemos click en la seccin download del men. Ten en
cuenta que la apariencia de la pgina web puede cambiar cada pocos meses.
En la pgina web que nos aparecer, descargamos la versin Installer actual. El installer es el paquete
de instalacin automtica ms fcil y rpido para instalar Notepad++.
aprenderaprogramar.com, 2006-2029
Preparando el entorno de desarrollo. Descargar e instalar Notepad++
Una vez descargado el archivo, lo ejecutamos para instalarlo en nuestro ordenador haciendo doble
click sobre l. El proceso de instalacin es muy simple y no entraremos a explicarlo con ms detalle,
simplemente vete aceptando para ir cumpliendo los pasos de la instalacin.
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.
Una vez creada la carpeta, entramos en ella. Abrimos Notepad++ y pulsamos en Archivo -- > Guardar.
Como nombre de archivo escibimos CU00808B.php (este nombre de archivo es solo un ejemplo,
puedes ponerle el que t quieras) y lo guardamos dentro de la carpeta creada. Paso seguido, cierra el
programa. Para editar este archivo (o cualquier otro) con el programa Notepad++, podemos hacer dos
cosas. Bien abrir Notepad++ y elegir Archivo -- > Abrir y seleccionar el archivo, o bien hacemos lo
siguiente:
Clickamos sobre el archivo con el botn derecho del ratn y se mostrar un menu similar a ste (Nota:
en algunos casos aparecen conflictos entre la versin de Notepad++ y la versin de Windows y este
men contextual no se muestra. En este caso, tendremos que abrir primero Notepad++ y luego la
opcin Abrir del men Archivo.)
aprenderaprogramar.com, 2006-2029
Preparando el entorno de desarrollo. Descargar e instalar Notepad++
De una forma u otra, habremos abierto el archivo php con nuestro editor Notepad++.
<?php
echo "Curso bsico de PHP. ";
?>
Una vez realizados los pasos anteriores debemos seguir preparando el entorno de desarrollo antes de
poder visualizar la pgina PHP creada porque todava no disponemos de un servidor PHP que interprete
nuestro cdigo PHP. Es decir, no podrs ver la pgina web simplemente haciendo doble click sobre el
archivo.
Ten cuidado porque si copias el cdigo en vez de escribirlo es posible que tengas problemas: hay
muchos tipos de comillas: curvadas, sin curvar, etc. En el cdigo 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
tambin con otros caracteres. Esto no significa que no puedas cortar y copiar cdigo 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 instalacin de Notepad++, que es el editor que vamos a usar
durante el curso (aunque si lo deseas tambin puedes seguir el curso usando otro editor). 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.
EJERCICIO
Cuando instalamos Notepad++, ste se instala dentro de una carpeta en nuestro computador, y dentro
de esa carpeta habr un archivo ejecutable (normalmente Notepad++.exe) que es el que se invoca cada
aprenderaprogramar.com, 2006-2029
Preparando el entorno de desarrollo. Descargar e instalar Notepad++
vez que se quiere ejecutar el programa. Responde a la siguiente pregunta: Cul es la ruta del archivo
ejecutable de Notepad++ dentro de tu computador?
La respuesta depende del computador y sistema operativo que ests utilizando. Un ejemplo de
respuesta puede ser la siguiente: C:\Program Files\Notepad++\Notepad++.exe
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Configuracin bsica de Notepad++ para crear pginas PHP
Antes de poder comenzar a crear pginas PHP, necesitaremos realizar una configuracin bsica de
nuestro entorno de desarrollo. En nuestro caso, la configuracin ser bastante simple y consistir en
elegir la codificacin 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 codificacin con la que trabajaremos durante todo el curso, en la pestaa Formato,
hacemos click sobre Codificar en UTF-8 sin BOM, tal y como se indica en la imagen siguiente.
Comprueba peridicamente que la opcin de codificacin sea siempre Codificar en UTF-8 sin BOM. Si
no es as, puedes tener problemas y no obtener los resultados deseados.
Ahora tendremos que indicar que vamos a utilizar el lenguaje de etiquetas PHP. Para ello, en la pestaa
lenguaje abrimos P y seleccionamos PHP de entre todas las opciones posibles. Sera algo similar a lo que
se muestra en la imagen siguiente.
aprenderaprogramar.com, 2006-2029
Configuracin bsica de Notepad++ para crear pginas PHP
Ya tenemos todo listo para poder empezar a crear nuestras pginas PHP.
Para facilitar la escritura de cdigo Notepad++ cuenta con una opcin de autocompletar, la cual se
activa en la pestaa Configurar --> Preferencias. En la ventana que nos aparecer, dentro de la pestaa
Copia de seguridad/Autocompletar Autocompletar (autocompletion) debemos activar la casilla
Habilitar autocompletar en cada entrada (Enable autocompletion on each input) y Pistas para los
parmetros de la funcin (Function parameters hint on input). Ten en cuenta que la situacin de los
mens y opciones puede variar de una versin a otra de Notepad++, por lo que no siempre encontrars
estas opciones en el mismo sitio que las estamos describiendo.
aprenderaprogramar.com, 2006-2029
Configuracin bsica de Notepad++ para crear pginas PHP
Para activar el autocerrado inteligente de etiquetas HTML, en men superior seleccionamos TextFX -->
TextFX Settigns --> Autoclose XHTML/XML tag
En algunas versiones de Notepad++ no aparece TextFX en el men superior. En este caso, debemos:
a) En el men Configurar -- > Preferencias. En la ventana que nos aparecer, tenemos que buscar la
opcin Autocompletar (autocompletion) como hicimos anteriormente y marcar la opcin html/xml
close tag
b) O bien instalar el plugin TextFX Characters accediendo a Plugins, elegir TextFX Characters y pulsar
Install. Una vez instalado el plugin, activar Autoclose XHTML/XML tag.
Tambin es de inters activar TextFX --> TextFX Settigns --> Autoclose {([.
En caso de no tener TextFX usaramos en el men Configurar - > Preferencias, Activar autoinsert {([.
Estas opciones nos permiten en general una escritura ms rpida, aunque si en algn momento nos
resultan molestas las podemos desactivar.
aprenderaprogramar.com, 2006-2029
Configuracin bsica de Notepad++ para crear pginas PHP
Quizs 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 sobrecargars tu ordenador porque el programa es al mismo
tiempo que potente, ligero.
- Dispone de la funcin autocompletar que ya hemos citado, que nos facilita ayuda mientras estamos
escribiendo el cdigo.
- Permite abrir mltiples archivos simultneamente, y reemplazar un texto en todos los archivos
abiertos a la vez si as lo deseamos.
- Permite abrir dos archivos y realizar una comparacin lnea a lnea entre ellos, indicndonos en qu
lneas existen diferencias entre un archivo y otro.
- El cdigo 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 codificacin.
- Permite ampliar sus posibilidades mediante la instalacin de plugins gratuitos disponibles en internet.
- Tiene muchsimas ms 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 vers Notepad++ nos parece un buen editor de cdigo para programacin. Esto no quiere decir
que no haya otras editores igual de buenos y potentes. De hecho, si ya eres usuario de algn otro editor
puedes seguir este curso usndolo.
EJERCICIO
En el men Ayuda (?) aparecer una opcin Acerca de Notepad (About Notepad++). Consulta la
informacin sobre Notepad++ y responde a esta pregunta: Qu versin de Notepad++ tienes instalada
en tu computador?
Una opcin interesante de Notepad++ es que dispone de numerosos plugins. Busca algn plugin que te
resulte de inters, instlalo (consulta antes la documentacin sobre el plugin y comprueba que sea un
aprenderaprogramar.com, 2006-2029
Configuracin bsica de Notepad++ para crear pginas PHP
plugin actualizado y compatible con tu versin de Notepad++) y prebalo. Para la instalacin puedes
utilizar el men Plugins - > Plugins Manager o hacerlo de otras maneras. Una vez instalado y probado el
plugin responde:
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el Cliente FTP Filezilla. Trabajar remotamente.
En general, los desarrollos web se hacen sobre servidores remotos y para trabajar con ellos tenemos
que trabajar remotamente. Para esto, lo que tenemos que hacer en primer lugar es instalar un cliente
FTP. Un cliente FTP es un programa que nos permite conectarnos a un servidor FTP para transferir
archivos y realizar otras tareas (renombrar archivos, crear directorios, asignar permisos, etc.).
Nosotros vamos a usar en este curso un cliente ftp gratuito y de gran popularidad porque es muy til y
potente. Para descargar este programa gratuito, lo primeros que vamos a hacer es ir a la direccin web
siguiente: http://filezilla-project.org/
Aparecer una web similar a la que se muestra en la siguiente imagen (aunque ten en cuenta que el
aspecto puede ir variando cada pocos meses).
Ahora tendremos que descargar el cliente haciendo click en Download FileZilla Client. Busca el link de
descarga y ten cuidado de elegir Filezilla Client y no Filezilla Server, ya que es el client el que buscamos.
Tras realizar este paso, se nos abrir una nueva pgina web con los links de descarga (el aspecto de la
web puede cambiar cada pocos meses).
aprenderaprogramar.com, 2006-2029
Descargar e instalar el Cliente FTP Filezilla. Trabajar remotamente.
Para que comience la descarga del programa, haremos click en Download Now comprobando que sea la
versin adecuada para nuestro sistema operativo (lee lo que indica junto al link de descarga).
Una vez descargado, si usamos Windows lo instalaremos como cualquier otro programa de Windows.
Tener en cuenta que si en vez de Windows estamos usando Linux o Macintosh, existen versiones de
Filezilla propias de estos sistemas y debemos elegir la adecuada segn el sistema que estemos usando.
Una vez instalado el programa lo abrimos visualizando una imagen que ser similar a la siguiente.
Ahora tendremos que crear una conexin con nuestro servidor FTP y conectarnos. Para ello hacemos
click en Archivo -> Gestor de Sitios
aprenderaprogramar.com, 2006-2029
Descargar e instalar el Cliente FTP Filezilla. Trabajar remotamente.
Y en la pantalla que se nos mostrar, seleccionamos nuevo sitio. Aqu sera donde introduciramos los
datos de acceso si los tuviramos. Como ahora no los tenemos, cerramos la ventana.
Para establecer una conexin con un servidor remoto en general tendremos que:
- Especificar el nombre de servidor: para conocerlo tenemos que consultar al proveedor que
ofrece el servicio del servidor, o que nos hayan facilitado este dato.
- Especificar como modo de acceso Normal
- Introducir un nombre de usuario que nos habr facilitado el proveedor que ofrece el servicio
del servidor (o que habremos establecido nosotros mismos).
- Introducir una contrasea que nos habr facilitado el proveedor que ofrece el servicio del
servidor (o que habremos establecido nosotros mismos).
Ten en cuenta que en algunos servidores antes de establecer una conexin ftp hay que dar un paso
previo que consiste en crear una cuenta ftp. Si no sabes si dispones de una cuenta ftp, consulta a tu
proveedor.
Una vez introducidos los datos de la conexin le daramos a conectar y aparecera una pantalla similar a
la siguiente, donde, como podemos observar, tenemos un explorador de archivos.
Esto nos permitir modificar directamente en el propio servidor los archivos deseados (antes de hacer
modificaciones en el servidor es conveniente hacer copia de seguridad y guardarla en local de modo
que si cometemos algn error o borrado accidental podamos recuperar los archivos) y subir o descargar
los archivos locales que queramos.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el Cliente FTP Filezilla. Trabajar remotamente.
Nota: explicaremos ms adelante dentro de este mismo curso cmo crear una cuenta de hosting en un
servidor, lo que nos permitir conectar con el servidor usando Filezilla. Si no dispones de una cuenta
con nombre de servidor, nombre de usuario y password no intentes conectarte usando Filezilla porque
no podrs. En este momento del curso, lo nico necesario es que compruebes que tienes Filezilla
instalado en tu computador y que puedas abrir el programa sin problemas.
EJERCICIO
Si has instalado Filezilla, ste se ejecuta gracias a que existe un archivo ejecutable localizado en una
carpeta de nuestro computador. Responde a las siguientes preguntas:
b) Consulta la opcin de men Ayuda (Help) y responde a las siguientes preguntas. Cul es la versin
de Filezilla que has instalado? Cules son los datos de tu sistema operativo? Puedes usar la opcin
<<Copy to clipboard>> para recuperar estos datos desde la ventana de la ayuda de Filezilla.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el navegador Google Chrome. Visualizar webs PHP.
En este curso vamos a usar Google Chrome, pero si lo prefieres por algn motivo como tenerlo ya
instalado, Mozilla Firefox tambin nos parece una opcin recomendable, y puedes seguir este curso
tambin con este navegador.
Otros navegadores como Internet Explorer tambin se pueden usar, pero en principio no es lo ms
recomendable por diversos motivos. Uno de ellos es que no dispone de las mismas herramientas que
Chrome o Firefox, que son los navegadores ms usados por programadores y desarrolladores web.
a) El navegador se abre muy rpidamente en comparacin con otros navegadores. Google Chrome es
muy ligero, por eso tarda poco en abrirse.
b) El navegador tiene una buena velocidad de carga de las pginas web por las que vamos navegando.
Esto se debe a su estructura interna, que tambin es ligera.
c) Por el mero hecho de instalarlo, ya disponimos de una potente herramienta de anlisis y depuracin
de pginas web o Inspeccionador de elementos. Mozilla Firefox tambin viene con herramientas de
anlisis incorporadas, y adems dispone de la extensin Firebug, muy valorada por los
programadores.
d) Si tenemos abiertas varias pestaas y una de ellas se tiene que cerrar debido a algn error o bloqueo,
no se nos quedar colgado el programa al completo, sino nicamente la pestaa o pestaas afectadas.
Para poder visualizar nuestras pginas web, vamos a instalar el navegador Google Chrome. Lo primero
que tenemos que hacer para instalar dicho navegador, es descargarlo de la web oficial de Google en la
direccin: http://www.google.com/chrome?hl=es
Tambin puedes acceder simplemente escribiendo descargar google chrome en un buscador (Google,
Yahoo, Bing, etc.) Una vez accedamos hemos de buscar el link de descarga.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el navegador Google Chrome. Visualizar webs PHP.
Hacemos click en Descargar Google Chrome. Nos aparecer una pgina donde se nos pide que
aceptemos las condiciones. Aceptamos para instalar el navegador.
El proceso normalmente comienza mostrando una pantalla que indica Gracias por probar Google
Chrome y de forma automtica, comienza a su vez el proceso de instalacin en nuestro ordenador (si
te pide permiso para la instalacin acepta para permitir el proceso).
Una vez descargardo e instalado, ya podremos ver pginas web con ste navegador. Para acceder a
Google Chrome, nos iremos a Inicio --> Todos los programas --> Google Chrome. Tambin podremos
acceder desde el escritorio a travs de un enlace directo.
Al abrir el navegador Google Chrome se nos mostrar una ventana similar a la siguiente. Ten en cuenta
que el aspecto puede variar segn la versin de Chrome que estemos usando, por tanto tendremos que
buscar las opciones segn aparezcan en nuestro computador, que puede diferir en algunos detalles de
lo que indicamos aqu.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el navegador Google Chrome. Visualizar webs PHP.
Una vez abierto Chrome podremos abrir tantas pestaas como queramos, introducir una direccin URL
en la barra de direcciones, recargar la pgina actual (tambin podremos pulsar F5 como atajo de
teclado para conseguir recargar una pgina) y acceder al men de opciones de Google Chrome entre
otras operaciones.
Para cambiar la pgina web de inicio que viene por defecto en nuestro navegador Google Chrome (la
que aparece cada vez que abrimos el navegador), procederemos de la siguiente forma:
a) En algunas versiones de Chrome, tendremos que hacer click en Llave inglesa y dentro del men
desplegable que nos aparece en la opcin opciones. Se nos abrir una nueva pestaa donde en la
opcin Pagina de inicio pondremos por ejemplo http://aprenderaprogramar.com ( o la pgina que
queramos). Otras versiones no traen llave inglesa.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el navegador Google Chrome. Visualizar webs PHP.
b) En otras versiones de Chrome, haremos click en el icono a la derecha de la barra de direcciones para
desplegar el men y elegimos Configuracin. En la opcin Iniciar sesin, elegimos la opcin Abrir
una pgina especfica o un conjunto de pginas -- > Establecer pginas, introducimos la URL de la
queramos sea nuestra pgina de inicio, por ejemplo http://aprenderaprogramar.com ( o la pgina que
queramos) y pulsamos aceptar.
c) Otra opcin para acceder a la configuracin es escribir en la barra de direcciones lo siguiente (como si
fuera una direccin web): chrome://settings/
Para limpiar la cach del navegador tenemos que hacer lo siguiente: Llave inglesa o icono para
desplegar el men --> Herramientas --> Eliminar (borrar) datos de navegacin. Tambin podemos
acceder escribiendo directamente en la barra de direcciones chrome://settings/clearBrowserData como
si se tratara de una direccin web.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el navegador Google Chrome. Visualizar webs PHP.
En la pantalla que se nos muestra a continuacin seleccionamos todas las opciones, y para definir desde
cundo en la opcin Eliminar elementos almacenados desde: elegimos el origen de los tiempos (es
decir, borrarlo todo sin dejar nada).
Para guardar una pgina web en local debemos simplemente ir a llave inglesa o icono de despliegue de
men y seleccionar Guardar pgina como y seleccionar el nombre y ubicacin donde queremos
guardar la pgina HTML.
Para aadir una pgina a favoritos debemos clickar sobre marcadores (normalmente un icono con
forma de estrella a la derecha de la barra de direcciones) y elegir el nombre y carpeta donde
guardaremos el nuevo marcador favorito. Esto sirve para ir manteniendo una coleccin de enlaces a
pginas web que visitamos con frecuencia, de forma que pulsando sobre el enlace accedemos
directamente a la web sin necesidad de escribir la url en la barra de direcciones. Para visualizar esa
coleccin de enlaces tenemos que desplegar el men y elegir la opcin Marcadores -- > Mostrar barra
de marcadores.
Si queremos ver las propiedades de una imagen clickamos sobre la imagen con el botn derecho del
ratn y pulsamos en Inspeccionar elemento en el men desplegable que se nos abre. As veremos el
tamao de la imagen.
aprenderaprogramar.com, 2006-2029
Descargar e instalar el navegador Google Chrome. Visualizar webs PHP.
Para hacer zoom basta con utilizar los siguientes atajos de teclado: Ctrl + + (ms zoom, es decir,
pulsando la tecla CTRL y al mismo tiempo la tecla +, logramos acercar la vista), Ctrl + - (menos zoom,
es decir, alejar la vista). O si lo preferimos usar Ctrl + ruleta o rueda del ratn hacia arriba o hacia
abajo, para acercar o alejar la vista.
En cualquier caso, para volver a ver la pgina con su tamao original slo tenemos que pulsar Ctrl + 0.
Google Chrome se actualiza automticamente cuando detecta que hay una nueva versin del
navegador. El proceso de actualizacin se produce en segundo plano y no es necesario que realices
ninguna accin. No obstante, puedes comprobar si el navegador est actualizado pulsando sobre llave
inglesa o icono para desplegar el men --> Informacin de Google Chrome. Ah te aparecer un mensaje
con la versin que ests usando actualmente, y te indicar si el navegador est actualizado o no.
Tambin puedes acceder a esta informacin escribiendo chrome://chrome/ en la barra de direcciones
como si fuera una direccin web. Que el navegador se mantenga actualizado sirve para tratar de evitar
posibles fallos de seguridad y ataques de virus o programas maliciosos.
EJERCICIO
Consulta la opcin de men Ayuda (Help) de tu navegador y responde a las siguientes preguntas. Qu
navegador y qu versin de navegador ests empleando?
Indica si las siguientes afirmaciones son verdaderas o falsas y justifica brevemente tu respuesta:
a) Cuando creamos una pgina web con php y la visualizamos, al guardar la pgina con la opcin
Guardar como del navegador, guardaremos el cdigo PHP que la gener.
b) Cuando creamos una pgina web con php y la visualizamos, al guardar la pgina con la opcin
Guardar como del navegador, guardaremos el cdigo HTML que la gener.
c) Con la opcin Guardar como del navegador no podemos guardar una pgina web debido a que el
cdigo PHP llega encriptado al navegador y ste no lo muestra al usuario.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Trabajar en local o o con un servidor remoto PHP. Qu es mejor?
En este artculo vamos a intentar mostrar las diferencias entre trabajar en local (en nuestro
computador) o trabajar en un servidor remoto. Ambas opciones pueden ser vlidas, aunque nosotros
vamos a recomendar seguir este curso trabajando en remoto.
En un primer planteamiento podramos pensar que sera mucho mejor trabajar en remoto porque el
trabajo de la instalacin de las herramientas y tecnologas necesarias ya estara hecho. Pero esto puede
ser algo no deseado porque no tendremos control total sobre esas herramientas y tecnologas, siendo
el proveedor del hosting el que controlar las actualizaciones, configuraciones y herramientas
instaladas. Aunque siempre podremos ponernos en contacto con dicho proveedor y indicarle que
deseamos unas u otras configuraciones y ver si es posible el cambio por su parte.
Adems de las anteriores, otra de las diferencias entre estas dos formas de trabajar, es la actualizacin
de los cambios en el servidor. Si trabajamos en remoto directamente sobre nuestro sitio web, los
cambios se hacen instantneamente ya que los archivos que modificamos son los que un usuario que
navega por Internet puede observar. Esto tiene unos pros y unos contras. Como ventaja podemos
indicar que, sabiendo lo que estamos haciendo y no cometiendo errores, tendremos una pgina
actualizada al instante. Si cometemos errores y la pgina, con esos errores, no puede visualizarse, los
usuarios de Internet tampoco podrn verla y esto es una desventaja.
Qu pasara si trabajamos en local? Pues si trabajamos en local tendremos la ventaja de poder probar
y visualizar todos los cambios en nuestro computador y hasta que esos cambios no sean de nuestro
agrado, nadie ms tendr acceso a ellos, teniendo siempre nuestro servidor sin cambios. De esta
manera, la pgina web no se vera modificada hasta que nosotros lo decidamos una vez hayamos
probado los cambios. Ahora bien, cuando estos cambios sean de nuestro agrado y quedemos
totalmente conformes, para que stos sean visibles en Internet, tendremos que sobrescribir los
archivos modificados localmente al servidor remoto. Es decir, hacemos un trabajo extra: primero, hacer
las modificaciones en local, luego, trasladar esas modificaciones al servidor remoto.
Si no tienes una buena conexin a Internet, lo ms recomendable es trabajar en local y subir la pgina
cuando est terminada, ya que trabajar en remoto requiere una buena conexin a internet para poder
guardar nuestro trabajo en el servidor remoto a medida que lo vayamos desarrollando.
Estas diferencias que hemos comentado seran las diferencias ms claras entre estas dos formas de
trabajar.
aprenderaprogramar.com, 2006-2029
Trabajar en local o o con un servidor remoto PHP. Qu es mejor?
La mejor forma de trabajo es la que mejor se adapta a nuestras necesidades y/o conocimientos.
Las personas que estn dando sus primeros pasos en programacin PHP pueden elegir entre una opcin
u otra, y quizs ambas sean vlidas. Nosotros vamos a recomendar que se trabaje en remoto por las
siguientes razones:
a) Se asemeja ms a lo que va a ser el trabajo con desarrollos web reales. Aunque ahora se trate de
aprendizaje, ser un aprendizaje ms cercano a lo que es la realidad.
b) Nos podemos despreocupar (en cierta medida) de cuestiones de configuracin del servidor e
instalacin de herramientas.
c) Existen proveedores que ofrecen hosting gratuito, por lo que no habremos de contar con un dominio
de internet propio ni una cuenta de hosting (alojamiento de archivos, bases de datos, etc.) de pago. Es
cierto que las ofertas de servicio de hosting gratuito tienen limitaciones importantes, pero de cara al
aprendizaje nos resultarn suficiente.
Las grandes empresas no suelen hacer modificaciones sustanciales de sus sitios web directamente
sobre el sitio, sino que disponen de un servidor de pruebas (al que se denomina servidor de desarrollo)
donde ensayan los cambios que, una vez contrastados, son trasladados al servidor de acceso pblico al
que se suele denominar servidor de produccin. Es decir, las grandes empresas no suelen trabajar en
local (alojando todo en sus propios computadores) entre otras cosas porque buscan emular con la
mayor fiabilidad posible lo que van a ser los ambientes y circunstancias de los servidores donde
finalmente se van a alojar sus sitios web.
En este curso vamos a explicar cmo trabajar sobre un servidor remoto. No obstante, si ya tienes
instalado un servidor local (como Wamp Xampp) y ests acostumbrado a l tambin podrs seguir el
curso usando cualquiera de estas plataformas.
EJERCICIO
Indica si las siguientes afirmaciones son verdaderas o falsas y justifica brevemente tu respuesta:
a) Trabajar en remoto en desarrollos web alude a que la persona que crea la pgina web realiza el
trabajo desde distintos puntos de conexin, lo que permite por ejemplo que cree una pgina web
mientras est viajando.
aprenderaprogramar.com, 2006-2029
Trabajar en local o o con un servidor remoto PHP. Qu es mejor?
b) Hoy da es posible disponer de forma gratuita de una direccin web y servicio de hosting gratuito,
con lo cual podemos crear pginas web basadas en PHP sin necesidad de contratar un servicio de
hosting.
c) Las grandes empresas siempre trabajan en local (en sus propios computadores) antes de trasladar los
cambios a los servidores de produccin, con el fin de evitar cadas del servicio.
d) WampServer permite emular un servidor en nuestro propio computador. Tambin hara posible que
nuestro computador funcionara como servidor remoto para servir contenidos a travs de internet.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Crear una cuenta de hosting gratuita en un servidor PHP.
CREAR UNA CUENTA DE HOSTING GRATUITA EN UN SERVIDOR PHP Y ACCEDER VA CPANEL Y VA FTP
En esta entrega vamos a crear una cuenta de hosting gratuita en un servidor web que nos permita
trabajar con PHP y accederemos a ste va Panel de Control (Cpanel) y va FTP.
En Internet hay muchas pginas web que permiten crear una cuenta de hosting gratuito en un servidor
php: por ejemplo www.000webhost.com, www.byethost.com, www.agilityhoster.com y varios ms.
Creando una cuenta en un hosting gratuito, disponemos de un servidor (que compartimos con otros
usuarios) donde podemos alojar una pgina web. Para este curso, vamos a utilizar un servidor gratuito
porque es adecuado para aprender. En concreto usaremos el servidor de Byethost (byethost.com),
aunque podramos usar cualquier otro porque todos ellos son similares. Tambin, si dispones de una
cuenta de hosting de pago y de un dominio, puedes utilizar cualquier servidor siempre que ofrezca
soporte php y base de datos MySql.
En nuestro caso, en primer lugar crearemos la cuenta de hosting gratuita. Para ello, accedemos a la
pgina web de Byethost, introduciendo en nuestro navegador la siguiente direccin:
www.byethost.com. Hazlo y vete siguiendo los pasos que indicamos.
Nos aparecer una pgina que ofrece diferentes opciones (ten en cuenta que el aspecto puede variar
cada pocos meses):
Buscamos el enlace donde diga Free hosting (alojamiento gratuito) y pulsamos sobre l. Ahora
debemos buscar la opcin para crear una cuenta (sign up):
aprenderaprogramar.com, 2006-2029
Crear una cuenta de hosting gratuita en un servidor PHP.
Una vez accedemos a la pgina de creacin de una cuenta, se nos mostrar un formulario donde
tendremos que rellenar una serie de datos. Aqu tendremos que tener en cuenta que el nombre de
usuario que insertemos, estar ligado a la url de acceso a nuestro sitio. Es decir, si como nombre de
usuario (username) introducimos lacocinademarco, la direccin de nuestro sitio Web ser similar a la
siguiente http://lacocinademarco.byethost31.com:
En nuestro caso introduciremos una serie de datos a modo de ejemplo tal y como podemos ver en la
imagen que se muestra a continuacin.
Una vez hayamos finalizado de introducir los datos solicitados, haremos click sobre el botn Registrar
(Register) y nos aparecer una pgina Web indicndonos que se nos ha enviado un correo electrnico a
la direccin de correo que hayamos facilitado en el formulario y en ese correo nos indicarn un enlace
web (direccin url) donde debemos activar nuestra cuenta.
aprenderaprogramar.com, 2006-2029
Crear una cuenta de hosting gratuita en un servidor PHP.
El ltimo paso que nos quedara para crear nuestra cuenta de hosting gratuita sera entrar a nuestro
correo y hacer click en el enlace de activacin del correo de Byethost que nos acaba de llegar.
Please click on the link below to activate your account. If the page does not display, you may copy and paste the link to your
browser.
http://securesignup.net/activate.php?user=b7_1022999&email=contacto@aprenderaprogramar.com&hash=8ggfg8sfdfd17c9
8efdghj99638c764&token=-576345454
While you wait for your account to activate, please 'like' us at http://www.facebook.com/free.byethost
Acto seguido se nos indicar que la activacin fue realizada con xito y se nos enviar un nuevo correo
electrnico con la informacin detallada de nuestros datos de acceso.
El correo que nos enva Byethost con la informacin de acceso detallada tiene ms o menos el siguiente
contenido:
Adems nos envan los datos de acceso (los que ponemos aqu son a modo de ejemplo, t debes haber
recibido tus propios datos de acceso):
Estos datos son importantes pues son los que nos permitirn gestionar todo lo necesario relativo a
nuestra pgina web. Conviene imprimirlos adems de mantenerlos bien localizados en un archivo de
texto dentro de nuestro ordenador.
aprenderaprogramar.com, 2006-2029
Crear una cuenta de hosting gratuita en un servidor PHP.
Para acceder va Cpanel, debemos ir a la url que nos hayan facilitando, en este ejemplo
http://cpanel.byethost7.com, e introducir el nombre de usuario y la contrasea.
Una vez comprobados que los datos sean correctos, se nos abrir el Panel de Control (Cpanel en este
hosting, pero puede ser otro panel similar si estamos usando otro hosting)
Dentro de Cpanel existen distintas reas. Podemos ver un rea de informacin de la cuenta, un rea de
administrador de archivos que nos proporciona un explorador de archivos parecido al de Windows o
Filezilla pero que adems nos permitir descomprimir archivos .zip y, una tercera rea con el que
podremos acceder a las bases de datos previamente creadas.
aprenderaprogramar.com, 2006-2029
Crear una cuenta de hosting gratuita en un servidor PHP.
El proceso es el explicado en la anterior entrega del curso dedicada a Filezilla, con la salvedad que los
datos necesarios son los que encontraremos en el Cpanel en el rea marcada de informacin del
sistema, que sern los mismos que hayamos recibido por correo electrnico. Una vez abierto Filezilla,
introducimos nombre de servidor, nombre de usuario y contrasea y de esta manera accedemos al
sistema de archivos de nuestro servidor. Te recomendamos que guardes los datos de la conexin, para
ello accede a FileZilla y haz en Archivo -> Gestor de Sitios para almacenar el acceso.
Accede al servidor usando FileZilla para comprobar que est todo correcto.
Si logras acceder debes ser capaz de visualizar el sistema de carpetas y archivos en el servidor:
Si no logras acceder a Cpanel o no logras acceder al sistema de archivos remoto usando FileZilla, escribe
una consulta en los foros aprenderaprogramar.com.
EJERCICIO
Cuando se trabaja con un servidor es importante saber cmo visualizar el sistema de archivos en el
servidor, cmo subir, bajar y borrar archivos:
aprenderaprogramar.com, 2006-2029
Crear una cuenta de hosting gratuita en un servidor PHP.
b) Borra el archivo del servidor remoto usando FileZilla. Para ello pincha encima del nombre de archivo
y pulsa la tecla Supr (borrar Del).
c) Tambin se puede acceder al sistema de archivos mediante un file manager o similar desde el panel
de control (Cpanel o similar) del servidor. Accede al file manager y sube el archivo prueba.txt al
servidor.
Si se te han presentado problemas para realizar alguna de estas tareas puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Preparar el entorno para trabajar en remoto. Mi primera pgina en PHP.
En entregas anteriores ya se indic como acceder va FTP al servidor remoto. Por lo tanto, no vamos a
volver a explicar como conectarnos a nuestro servidor mediante FTP y daremos por supuesto que ya
estamos conectados.
Una vez estemos conectados, nos aparecer una imagen similar a la siguiente
Ahora debemos entrar en el directorio remoto htdocs (en otros servidores el nombre del directorio de
trabajo suele ser public_html www). Este directorio es en el que debemos crear nuestras pginas en
PHP ya que ser el directorio que el servidor use para servir las pginas web. Los archivos en este
directorio sern accesibles escribiendo la direccin web raz de nuestro sitio. Si tenemos un dominio
propio, accederemos escribiendo http://www.nombreDominio/index.php. Si hemos creado una cuenta
de hosting gratuito ser accesible desde el navegador escribiendo la direccin web que nos haya
indicado el proveedor del servicio, por ejemplo: http://apr2.byethost7.com/index.php
Esta direccin nos la indica el proveedor del servicio de hosting gratuito: recordar la entrega donde
explicamos la creacin de la cuenta de hosting gratuito donde indicbamos que el dominio una vez
registrada nuestra cuenta en el hosting era http://apr2.byethost7.com. (Esta direccin es un ejemplo.
En tu caso, si has creado tu cuenta gratutita, tendrs tu propia direccin que te permita acceder).
Esto indica que dentro del directorio htdocs, tenemos creado un fichero en PHP llamado index.php y su
contenido ser el mostrado en el navegador al acceder a la URL anteriormente indicada.
Nota: Si no ponemos el nombre del fichero en la ruta del navegador, es decir, si simplemente
escribimos http://apr2.byethost7.com, por defecto el servidor buscar un fichero llamado index.php,
aprenderaprogramar.com, 2006-2029
Preparar el entorno para trabajar en remoto. Mi primera pgina en PHP.
Al entrar en el directorio htdocs, es posible que veamos que ya existe una pgina index.htm (
index.html similar). La razn de esto es que en algunos servidores cuando creamos una cuenta
gratuita, el proveedor de hosting automticamente nos crea dicho fichero que por ejemplo puede
contener un mensaje de bienvenida.
Antes de crear nuestra primera pgina en PHP, borraremos la pgina index.html ya que su contenido no
nos interesa. Para esto, haremos click con el botn derecho del ratn sobre el fichero que deseamos
borrar y en el men desplegable, que nos aparecer, pulsaremos en borrar.
Una vez borrado el archivo, crearemos en local (en nuestro ordenador) un archivo al que llamaremos
index.php. Para ello usaremos Notepad++. Una vez creado el archivo, lo subiremos al servidor remoto,
arrastrndolo desde el directorio local donde lo hayamos creado, al directorio remoto actual, es decir,
trasladamos el archivo desde nuestro ordenador hasta el servidor.
Una vez realizados estos pasos, tendremos en el servidor remoto un archivo llamado index.php que
estar vaco y que editaremos haciendo click con el botn derecho del ratn sobre el archivo que
deseamos editar.
Hay que aclarar que el archivo index.php lo podemos editar tanto en local como en remoto. Se puede
hacer de ambas maneras, siendo ambas correctas. La diferencia radicar en que si trabajamos en local
cada vez que queramos ver los cambios en la pgina web tendremos que subir el archivo al servidor, y
cada vez que lo subamos sobreescribir el archivo.
aprenderaprogramar.com, 2006-2029
Preparar el entorno para trabajar en remoto. Mi primera pgina en PHP.
Si trabajamos editando en remoto, una vez editado el archivo y guardados los cambios, directamente
quedar modificado el archivo en el servidor, con lo cual directamente veremos los cambios en la
pgina web.
Supongamos que hemos hecho click sobre el archivo en remoto y pulsado el botn derecho, y a su vez
la opcin Ver/Editar (View/Edit):
Ahora, normalmente, al ser la primera vez que editamos con FileZilla un archivo con extensin PHP, nos
dar la opcin de seleccionar el programa con el que queremos abrir dicho archivo. Indicaremos que
queremos abrirlo con el Notepad++. Si no nos pide el programa con el que queremos editar, podemos
establecerlo manualmente de la siguiente manera: desplegar el men Edicin (Edit) de Filezilla y
pulsar sobre Opciones (Settings). En la ventana que se abre, en el lateral izquierdo seleccionamos
Edicin de archivo -- > Asociaciones de tipo de archivo (File editing -- > Filetype associations), y en el
lado derecho en el cajetn de texto escribimos: php C:\Program Files\Notepad++\Notepad++.exe,
donde la ruta entre comillas representa la ruta donde se encuentra el fichero ejecutable del Notepad++.
Esta ruta puede ser diferente segn el sistema operativo e instalacin que hayamos hecho. Comprueba
cul es la ruta en tu computaor e introduce la ruta correcta para tu caso.
aprenderaprogramar.com, 2006-2029
Preparar el entorno para trabajar en remoto. Mi primera pgina en PHP.
Una vez establecido Notepad++ como editor para trabajar en remoto con Filezilla, cuando pulsamos
sobre un archivo en remoto y con botn derecho elegimos Ver/Editar (View/Edit), se nos abrir
Notepad++ para editar el archivo correspondiente. En nuestro caso vamos a editar el archivo index.php
que habamos subido al servidor anteriormente.
Ahora slo nos falta crear nuestra primera pgina PHP. Para ello simplemente aadiremos este cdigo
en el archivo index.php (ms adelante se explicarn los conceptos propios de PHP y entenderemos
mejor lo que hacemos ahora mismo; no te preocupes ahora si tienes dudas, las iremos solucionando
poco a poco).
<?php
echo "Mi primera pgina en PHP - aprenderaprogramar.com";
?>
Cuando terminemos de editar el archivo, lo guardamos (para ello podemos usar la combinacin de
teclas Ctrl + s hacerlo a travs del Men archivo --> Guardar de Notepad++). Una vez guardado en
Notepad++ hacemos click sobre el programa FTP FileZilla que tenamos en segundo plano.
Automticamente nos indicar que el archivo ha cambiado (a file previosly opened has been changed) y
nos preguntar si deseamos subir los cambios (Volve a subir este archivo al servidor? Upload this file
back to the server?). Contestaremos que s (yes).
aprenderaprogramar.com, 2006-2029
Preparar el entorno para trabajar en remoto. Mi primera pgina en PHP.
Y ahora visualizaremos nuestra pgina en el navegador escribiendo la direccin web que es nuestro
dominio raz. Si hemos creado una cuenta gratuita, esta direccin web nos la habr facilitado el
proveedor del servidio de hosting gratuito y podr ser (esto es un ejemplo) similar a:
Con este sencillo ejemplo hemos creado nuestra primera pgina web usando el lenguaje de
programacin PHP.
EJERCICIO
Crea los siguientes archivos y sbelos mediante ftp al directorio raz de tu sitio web:
a) Crea un archivo denominado curso.php donde aparezca el siguiente texto. <<Curso php de
aprenderaprogramar.com comenzado el 24/09/2083>> donde la fecha a incluir sea la fecha en que
hayas subido el archivo. Comprueba que el archivo se visualiza al escribir la direccin web correcta que
ser similar a http://apr2.byethost7.com/curso.php (en tu caso, tendrs que utilizar la direccin web
que vayas a utilizar para el curso). Responde a esta pregunta: Cul es el cdigo que contiene el
archivo? Cul es la direccin web para acceder al archivo y visualizar el texto?
b) Crea un archivo denominado alumno.php donde aparezca el siguiente texto. <<Curso php de
aprenderaprogramar.com alumno Juan Perez desde el pas: Colombia>> donde el nombre a incluir ser
tu nombre y el pas tu pas. Comprueba que el archivo se visualiza al escribir la direccin web correcta
que ser similar a http://apr2.byethost7.com/alumno.php (en tu caso, tendrs que utilizar la direccin
web que vayas a utilizar para el curso). Responde a esta pregunta: Cul es el cdigo que contiene el
archivo? Cul es la direccin web para acceder al archivo y visualizar el texto?
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Conceptos bsicos de PHP. Estructura bsica de una pgina PHP.
Un archivo PHP normalmente suele contener HTML y trozos de cdigo PHP. Por ello antes de estudiar
PHP es necesario haber estudiado HTML. A veces, se dice que PHP es un lenguaje embebido en HTML,
es decir, incrustado en cdigo HTML. Todos los fragmentos de cdigo PHP deben comenzar con la
siguiente cadena de caracteres: <?php ,y finalizar con ?>
Los smbolos <?php y ?> se dice que son los delimitadores del cdigo PHP. Normalmente, una pgina
PHP bsica sera algo as:
- La primera lnea es una etiqueta relativa a la versin/variante de HTML que declaramos usar.
Esta primera etiqueta no es estrictamente necesaria. Sirve nicamente para indicar qu
estndar de HTML es el que declaramos usar.
- Las etiquetas de apertura y cierre de html que delimitan el cdigo HTML.
- Las etiquetas de apertura y cierre head que delimitan la cabecera del cdigo HTML.
- Las etiquetas body que delimitan el cuerpo del cdigo HTML y que es donde suele ir el
contenido central de un documento HTML (texto, imgenes, formularios, etc.).
- Dentro de las etiquetas body, adems de cdigo HTML, podemos tener cdigo PHP embebido.
En este caso hemos incluido nicamente un fragmento de cdigo PHP, pero en el cuerpo del
documento HTML podramos incluir diversos fragmentos de cdigo HTML mezclados con
diversos fragmentos de cdigo PHP. Cada fragmento de cdigo PHP tiene que ir escrito con sus
delimitadores.
aprenderaprogramar.com, 2006-2029
Conceptos bsicos de PHP. Estructura bsica de una pgina PHP.
Esta estructura no se repite siempre. De hecho, ms adelante veremos que el cdigo PHP puede ir en
ms lugares adems de dentro de las etiquetas body. Por otro lado, decir que es habitual que el cdigo
PHP vaya embebido dentro de cdigo HTML en un archivo con extensin .php, pero como ya hemos
visto, un archivo con extensin .php podra contener exclusivamente cdigo PHP.
Escribe el cdigo que mostramos a continuacin en el editor Notepad++ y gurdalo con el nombre
prueba1.php.
A continuacin sbelo al servidor como ya explicamos en una entrega anterior, y ahora escribe en tu
navegador la direccin web correspondiente al archivo (que ser similar a
http://apr2.byethost7.com/prueba1.php). Debes de visualizar algo parecido a esto.
aprenderaprogramar.com, 2006-2029
Conceptos bsicos de PHP. Estructura bsica de una pgina PHP.
EJERCICIO
Crea el siguiente archivo y sbelo mediante ftp al directorio raz de tu sitio web. El archivo llevar por
nombre curso2.php y en l debe existir la estructura de un documento HTML, aparecer en la parte
superior de la pgina un ttulo h1 con el texto <<Cursos aprenderaprogramar.com>>, seguido de un
ttulo h2 con el texto <<Curso php desde cero>>, y a continuacin hacer que se muestre insertando php
el siguiente texto. <<Curso php de aprenderaprogramar.com comenzado el 24/09/2083>> donde la
fecha a incluir sea la fecha en que hayas subido el archivo. Debajo de este texto debes crear un
contenedor div con color de fondo amarillo donde pueda leerse Este es el pie de pgina. Comprueba
que el archivo se visualiza al escribir la direccin web correcta que ser similar a
http://apr2.byethost7.com/curso2.php (en tu caso, tendrs que escribir la direccin web que vayas a
utilizar para el curso). Responde a esta pregunta: Cul es el cdigo que contiene el archivo? Cul es la
direccin web para acceder al archivo y visualizar el texto?
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Tipos de variables en PHP. Declaracin y asignacin. Instruccin echo.
VARIABLES EN PHP
Las variables en PHP son representadas con un signo de dlar ($) seguido por el nombre de la variable.
El nombre de la variable es sensible a minsculas y maysculas. Es decir, las siguientes declaraciones de
variables son distintas entre ellas:
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 numrico (slo nmeros, con su
valor de clculo) o alfanumrico (slo texto o texto con nmeros, sin valor de clculo).
Para declarar un nombre de variable vlido, ste tiene que empezar con una letra (o si no empieza con
una letra, tendr que hacerlo con un carcter de subrayado), seguido de cualquier nmero de letras,
nmeros y caracteres de subrayado, sin espacios. Veamos algunos ejemplos:
Cuando el intrprete PHP detecta un error en la sintaxis al declarar una variable, cuando tratamos de
accecer a la pgina php nos aparecer un mensaje de error. Por ejemplo si en un archivo php incluimos
una lnea como $ A B C = 5; donde el nombre de variable es invlido ya que tiene espacios intermedios,
nos aparecer un mensaje de error:
aprenderaprogramar.com, 2006-2029
Tipos de variables en PHP. Declaracin y asignacin. Instruccin echo.
Asignacin (=)
El operador de asignacin es "=". Se podra pensar que es como un "igual a". No lo es. El operador igual
en programacin no tiene el mismo sentido que en matemticas. En programacin, significa que el
valor de la expresin de la derecha se establece en el operando de la izquierda.
<?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 operacin lgica de 'igual
a' tal y como podemos apreciar en el siguiente ejemplo.
Ejemplo
<?php
$a = 3;
$b = 3;
$a == $b; // El resultado de la comparacin es TRUE porque $a es igual a $b
$a = 3;
$b = 4;
$a == $b; // El resultado de la comparacin es FALSE porque $a no es igual a $b
?>
TIPOS DE DATOS
En PHP no es obligatorio indicar el tipo de datos al que pertenece una variable como en otros lenguajes,
sino que los tipos de datos son establecidos directamente por el intrprete PHP, que es el encargado de
interpretar el cdigo.
Ahora veremos en una tabla los distintos tipos de datos que se pueden usar en PHP.
aprenderaprogramar.com, 2006-2029
Tipos de variables en PHP. Declaracin y asignacin. Instruccin echo.
Los integers, o enteros, pueden tener distintos valores numricos enteros que se expresan
con diferentes notaciones.
Este tipo de datos son los nmeros de punto flotante a los que normalmente llamamos
nmeros decimales, por ejemplo, 9.876. Ambos tienen mucha precisin, pero double es el
float o double ms preciso (con ms decimales). La sintaxis para utilizarlos es bastante simple:
$variable = 9.876;
El tipo de datos string, tambin conocido como cadena de caracteres, se expresa con la
string siguiente sintaxis:
$variable = "Yo soy una cadena";
Se trata de un tipo lgico. Sus posibles valores son true (verdadero) o false (falso).
$variable = false;
INSTRUCCIN ECHO
Esta instruccin muchas veces se dice que sirve para que se muestre por pantalla un texto, una variable,
o una combinacin de texto y variables. Pero realmente no es as: echo no es una instruccin que sirva
para mostrar algo por pantalla (aunque podemos usarla para esto), sino que sirve para insertar texto
dentro del documento HTML subyacente al cdigo PHP.
Por ejemplo: echo "salida por pantalla. "; har que se inserte este texto en el documento html. Si lo
hacemos entre las etiquetas <body> y </body> lo veremos por pantalla porque cualquier texto
insertado en ese lugar se mostrar por pantalla, no porque la instruccin echo d lugar a que se
muestre por pantalla.
Sin embargo echo "<h1>Salida por pantalla. </h1> "; no har que se muestren por pantalla las etiquetas
h1 y el texto, sino que introducir en el documento HTML las etiquetas con el texto, stas etiquetas
funcionarn como cdigo HTML y lo que se mostrar por pantalla ser Salida por pantalla con
formato de ttulo h1 (letras ms grandes de lo normal).
En general en php son vlidas tanto las comillas dobles como las comillas simples, por lo que se puede
escribir tanto echo "<h1>Salida por pantalla. </h1> "; como echo '<h1>Salida por pantalla. </h1>';
aprenderaprogramar.com, 2006-2029
Tipos de variables en PHP. Declaracin y asignacin. Instruccin echo.
Los parntesis no son necesarios (echo en realidad no es una funcin sino que es lo que se denomina
una <<construccin del lenguaje>>, de ah que no sean estrictamente necesarios los parntesis), pero
se pueden incluir si se desea. Ejemplo:
Crea un archivo php con el siguiente cdigo, ponle un nombre como usoDeEcho.php y sbelo al
servidor. Luego invcalo usando la ruta adecuada segn la direccin web con la que ests trabajando
(ser similar a http://apr2.byethost7.com/usoDeEcho.php.)
<?php
$a = 5;
echo $a;
?>
La visualizacin en tu navegador deber ser similar a esta. Puede variar ligeramente dependiendo del
navegador que uses.
Ten en cuenta que $a se muestra por pantalla como 5 porque el intrprete de PHP considera que debe
mostrarse siempre el valor de la variable, incluso si va dentro de un texto. Prueba a escribir la siguiente
lnea: echo " El valor de la variable \$a es $a.";
Comprobars que se muestra por pantalla salida por pantalla. 5 El valor de la variable $a es 5.
Cuando antecedemos un nombre de variable del carcter \ hacemos que se interprete como texto en
lugar de como una variable. El carcter \ se suele llamar carcter de escape porque permite que se
considere texto algo que en principio se iba a interpretar como otra cosa (como una variable por
ejemplo).
aprenderaprogramar.com, 2006-2029
Tipos de variables en PHP. Declaracin y asignacin. Instruccin echo.
Crea ahora un archivo php con el siguiente cdigo, ponle un nombre como usoDeEcho2.php y sbelo al
servidor. Luego invcalo usando la ruta adecuada segn la direccin web con la que ests trabajando
(ser similar a http://apr2.byethost7.com/usoDeEcho2.php.)
<html>
<head>
<title> Ejemplo php aprenderaprogramar.com </title>
<meta charset="utf-8">
</head>
<body>
<?php
echo 'con comillas simples<br/>';
echo ('con parntesis y comillas simples<br/>');
echo ("con parntesis y comillas dobles<br/>");
echo '<h1>Salida por pantalla</h1><br/>';
echo "salida por pantalla. ";
$a = 5;
echo $a;
echo " El valor de a es $a.";
?>
</body>
</html>
Puedes comprobar que <br/> no se muestra por pantalla porque es cdigo HTML, y el navegador
cuando detecta este cdigo HTML introduce un salto de lnea en lugar de mostrarlo por pantalla.
<body>
<? php <body>
echo '<h1>Cuzco</h1>' - - - - - - - - Equivale a - - - - - - - > <h1>Cuzco</h1>
?> </body>
</body>
El navegador recibe el HTML equivalente generado y lo interpreta, dando lugar a los resultados que
se mostrarn por pantalla.
aprenderaprogramar.com, 2006-2029
Tipos de variables en PHP. Declaracin y asignacin. Instruccin echo.
EJERCICIO 1
Crea el siguiente archivo y sbelo mediante ftp al directorio raz de tu sitio web. El archivo llevar por
nombre curso3.php y en l debe existir la estructura de un documento HTML, aparecer en la parte
superior de la pgina un ttulo h1 con el texto <<Cursos aprenderaprogramar.com>>, seguido de un
ttulo h2 con el texto <<Curso php desde cero>>, y a continuacin hacer que se muestre usando echo el
siguiente texto dentro de un div con color de fondo amarillo: <<Curso php de aprenderaprogramar.com
usando la instruccin echo>>. Debajo de este texto debes usar echo para crear un contenedor div con
color de gris donde pueda leerse Este es el pie de pgina. Comprueba que el archivo se visualiza al
escribir la direccin web correcta que ser similar a http://apr2.byethost7.com/curso3.php (en tu caso,
tendrs que escribir la direccin web que ests utilizando para el curso). Responde a esta pregunta:
Cul es el cdigo que contiene el archivo? Cul es la direccin web para acceder al archivo y visualizar
el texto?
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Crea un archivo php donde no exista html directamente pero que genere una pgina web con todo el
cdigo html que lleva normalmente (introduce las etiquetas html, head, title, meta charset, body,
algunos prrafos de texto y algunas imgenes). Para hacer esto toda la estructura de la pgina web
debe ser insertada a travs de instrucciones echo. Responde a esta pregunta: Cul es el cdigo que
contiene el archivo? Cul es la direccin web para acceder al archivo y visualizar el texto?
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
ESTRUCTURAS CONDICIONALES
En PHP existen una serie de instrucciones que permiten tomar decisiones lgicas cuando programamos:
if...else
if...elseif...else
switch
Estas instrucciones son quizs las ms usadas de todos los lenguajes de programacin, ya que son las
ms bsicas. IF (en espaol: si) ELSE (en espaol: sino).
if(expresin) {
... sentencias 1, 2, 3 ;
} else {
... sentencias A, B, C ;
}
En este trozo de cdigo estaramos diciendo que si la expresin se cumple se ejecutan las sentencias 1,
2, 3, y en caso de que no se cumpliese la expresin se ejecutaran las sentencias que estn dentro del
else, es decir, las sentencias A, B, C
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo1.php. A continuacin, 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, introducindolo en la expresin del condicional. Tal cual est, este ejemplo producira el resultado
'Hay galletas', aunque si cambisemos $galletas = true; por $galletas = false dara como resultado la
segunda sentencia.
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
Escribe ahora este otro cdigo gurdalo con un nombre de archivo como ejemplo2.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
<?php
$galletas = true;
if($galletas == true){
?>
<br/>
<p> ---------------------------------</p>
<?php
echo ' Hay galletas';
echo '<br/>';
echo '<br/>';
echo ' ---------------------------------';
} else {
echo 'No hay galletas';
}
?>
Como podrs comprobar, el cdigo produce el mismo resultado. Unicamente hemos introducido
algunos caracteres para mejorar la forma en que se ve (recordar que equivale a un espacio en
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
blanco en HTML). Compara las similitudes y diferencias entre los dos cdigos que hemos escrito. En
nuestro ejemplo2 podrs comprobar que hemos escrito un fragmento de cdigo php, luego un
fragmento de cdigo html y luego otro fragmento en php. Si te fijas, no hemos utilizado las etiquetas de
apertura y cierre de html, aunque hubiera sido quizs ms correcto hacerlo, es decir, escribir:
<html>
<?php
$galletas = true;
if($galletas == true){
?>
<br/>
<p> ---------------------------------</p>
<?php
echo ' Hay galletas';
echo '<br/>';
echo '<br/>';
echo ' ---------------------------------';
} else {
echo 'No hay galletas';
}
?>
</html>
Como comprobars, a veces los navegadores son capaces de interpretar el cdigo aunque falten
algunas etiquetas o contenga algunos errores. Esta es una de las cuestiones que diferencia HTML de
lenguajes de programacin en sentido estricto como C, Java o Visual Basic, donde la sintaxis es mucho
ms estricta.
Usamos el cdigo que en HTML significa un espacio. Recuerda que HTML omite los
espacios antes y despus de una cadena de texto. Por ello hemos de especificar que se
introduzcan espacios con .
Un salto de lnea, que introducimos gracias a la etiqueta <br/>, podemos escribirlo tanto fuera
del cdigo 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 cdigo html.
Qu pasara si introdujramos una etiqueta html como <br/> directamente dentro del cdigo php?
Prubalo y comprobars que en el navegador se muestra un mensaje de error de este tipo:
Esta es una cuestin que debes de tener en cuenta: para introducir html debes de cerrar un bloque php
o usar una instruccin echo dentro del bloque php. La instruccin echo viene significando dar salida
html a lo que va a continuacin.
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
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
<?php
if(expresin) {
... sentencias 1, 2, 3, ;
} else if(expresin) {
... sentencias A, B, C, ;
} else {
... sentencias M, N, O, ;
}
?>
Esta es la sntaxis 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 estn siempre dentro de un if y terminarn con un else (slo
uno) final.
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo3.php. A continuacin, 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.";
}
?>
Si el valor de $test se cambia a 22, la respuesta sera: No, 22 es menor que 40, 35 y 30.
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
La sintaxis y significado del operador condicional ternario (vlida para diferentes lenguajes, como PHP,
JavaScript, Java, etc.) es la siguiente:
Expresin Resultado
A==5 ? A=20: A=1; Si A vala 5 ahora vale 20, caso contrario ahora vale 1.
B = B==3 ? B*10: B*100; Se trata de una asignacin: si B vala 3, ahora B vale 10 veces lo
que vala, caso contrario ahora B vale 100 veces lo que vala.
El operador ternario puede ser insertado en sentencias de ejecucin donde no se permite la insercin
de if, por ejemplo en una operacin de asignacin o en la variable de control de un bucle. Usar el
operador condicional ternario tiene ventajas e inconvenientes.
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
Permite la escritura compacta, permitiendo Obliga a escribir ms sentencias para conseguir el mismo
ahorrar escritura de cdigo. resultado.
Resulta ms difcil de leer, entender y depurar Resulta ms fcil de leer, entender y depurar
No todos los programadores lo usan, algunos ni Todos los programadores lo usan y lo conocen.
siquiera lo conocen.
Se admite en la sintaxis de los lenguajes en No es vlido en ciertas ubicaciones donde slo se admiten
lugares donde no se admite la sentencia if expresiones, pero puede hacerse la evaluacin antes del
punto donde sea necesario el condicional.
aprenderaprogramar.com, 2006-2029
Estructuras condicionales en PHP: if, else y elseif. Ejercicios resueltos.
EJERCICIO 1
b) Modifica el cdigo sustituyendo el operador ternario por if else para que el resultado obtenido sea el
mismo.
<?php
$haceFrio = 15;
$respuesta ="";
$temperatura = ($haceFrio<20) ? $respuesta = "Hace frio" : $respuesta = "No hace frio";
echo $respuesta;
?>
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Define las variables $tipo, $grosor, $diametro y $marca. Establece que el tipo sea Rueda de camin, el
grosor 0.33, el dimetro 1.25 y la marca Kimashuki. Crea el cdigo PHP donde a travs de
condicionales if realices la siguiente comprobacin: si el dimetro es superior a 1.4 debe mostrarse por
pantalla el mensaje La rueda es para un vehculo grande. Si es menor o igual a 1.4 debe mostrarse por
pantalla el mensaje La rueda es para un vehculo pequeo. En otro caso, debe mostrarse No existe
un tamao de rueda vlido.
Modifica los valores de dimetro y comprueba que los resultados obtenidos por pantalla sean
correctos. Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Operadores de comparacin y lgicos en PHP. Ejemplos y ejercicios.
Los operadores de comparacin permiten comparar dos valores, tal y como su nombre indica. En
general, esto nos servir para tomar decisiones. Por ejemplo, quizs tenemos que decidir si autorizar
una operacin segn exista saldo suficiente en su cuenta bancaria o no. Para ello en PHP disponemos
de los operadores que se indican en la siguiente tabla.
$a <> $b
true si $a es diferente a $b
Diferente
false en caso contrario
$a != $b
true si $a es igual a $b
Igual $a == $b
false en caso contrario
Adems de los operadores habituales existen los operadores === que se interpreta como es
estrictamente igual y !== que se interpreta como no es estrictamente igual. Estos operadores
resultan un poco ms complejos de comprender por lo que volveremos a hablar de ellos ms adelante.
De momento tener en cuenta que si una variable contiene $texto1= 1 y hacemos la comparacin
$texto1 === 1 , obtendremos false, es decir, que no es igual (porque un texto no es igual a un nmero).
Sin embargo una comparacin como $texto == 1 devolver true ya que esta comparacin no es estricta
y trata de realizar automticamente conversiones para comprobar si se puede establecer una
aprenderaprogramar.com, 2006-2029
Operadores de comparacin y lgicos en PHP. Ejemplos y ejercicios.
equivalencia entre los dos valores. En este caso se busca el equivalente numrico del texto y luego se
hace la comparacin, motivo por el cual se obtiene true.
Es decir, si se compara un nmero con una cadena de caracteres o la comparacin implica cadenas de
caracteres numricas, cada cadena de caracteres es convertida en un nmero y la comparacin se
realizar numricamente excepto cuando el operador utilizado es === o == porque, en estos casos,
tambin comparamos el tipo.
Los operadores lgicos, nos permiten crear condiciones para las distintas estructuras en PHP, tanto en
estructuras condicionales como en estructuras repetitivas. Los operadores lgicos ms importantes son
and (en espaol: y) y or (en espaol: o)
true si $a no es true
not ! !$a
false en caso contrario
Una condicin puede ser tan larga como se quiera o necesite y usar tantos operadores lgicos como se
quiera o necesiten. El uso de los parntesis otorgar la prioridad de la ejecucin de unas operaciones y
otras (como en matemticas).
Las expresiones donde se utilizan operadores lgicos y relacionales devuelven un valor booleano, es
decir, verdadero (true) o falso (false). Por ejemplo si $a = 7 y $b = 5 la expresin $a < $b devuelve false
(es falsa). Si $a = true y $b = false la expresin $a && $b devuelve false (es falsa porque no se cumple
que $a y $b sean verdaderas). Si $a = true y $b = false la expresin $a || $b devuelve true porque uno
de los dos operandos es verdadero. Si $a = true la expresin !a devuelve false (el opuesto o contrario).
El operador || se obtiene en la mayora de los teclados pulsando ALT GR + 1, es decir, la tecla ALT GR y
el nmero 1 simultneamente.
En un caso como ( $a < $b || $c != $d || $h <= $k) se evala si a es menor que b. Si se cumple esta
condicin el resultado de la expresin es verdadero y no se evalan las otras dos condiciones
posteriores.
aprenderaprogramar.com, 2006-2029
Operadores de comparacin y lgicos en PHP. Ejemplos y ejercicios.
El operador ! recomendamos no usarlo hasta que se tenga una cierta destreza en programacin. Una
expresin como (!$esVisible) devuelve false si ($esVisible == true), o true si ($esVisible == false). En
general existen expresiones equivalentes que permiten evitar el uso de este operador cuando se desea.
()
Parntesis
^
Exponenciacin
*,/
Multiplicacin, divisin
+,
Suma, resta
Mod , \ (div)
Resto, Cociente
No (Not)
No se cumple que
y (And)
Y se cumple que
o (Or)
O se cumple que
aprenderaprogramar.com, 2006-2029
Operadores de comparacin y lgicos en PHP. Ejemplos y ejercicios.
Una expresin como $A+$B == 8 && $A-$B == 1 siendo $A = 3 y $B = 5 supondr que se evala primero
$A+$B que vale 8, luego se evala $A-$B que vale -2. Luego se evala si se cumple que la primera
operacin es cierta y luego si la segunda tambin es cierta, resultando que no, por lo que la expresin
es falsa.
EJEMPLO
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo1.php. A continuacin, 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 condicin";
}else {
echo "No se cumple la condicin";
}
?>
aprenderaprogramar.com, 2006-2029
Operadores de comparacin y lgicos en PHP. Ejemplos y ejercicios.
EJERCICIO
Dadas las variables de tipo entero con valores $A = 5, $B = 3, $C = -12 indicar si la evaluacin de estas
expresiones dara como resultado verdadero o falso:
a) $A > 3 i) $C / $B < $A
b) $A > $C j) $C / $B == -10
c) $A < $C k) $C / $B == -4
d) $B < $C l) $A + $B + $C == 5
f) $A == 3 n) ($A+$B == 8) || ($A-$B == 6)
Crea el cdigo PHP donde declares estas variables, les asignes valores y muestres por pantalla el valor
de verdad que tienen cada una de las expresiones antes indicadas. Coincide lo que se muestra con
pantalla con lo que t esperaras que se mostrara? Puedes comprobar si tu cdigo y tus respuestas son
correctos consultando en los foros aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Operadores aritmticos en PHP: operadores bsicos y mdulo.
En PHP disponemos de los operadores habituales en los distintos lenguajes de programacin. Estos
operadores nos permiten realizar operaciones aritmticas: suma, resta, multiplicacin, divisin, etc. as
como obtener el mdulo o resto de una divisin entre dos enteros.
Ejemplo con
Nombre Ejemplo Resultado
$a = 8 y $b = 4
(1)
Nota: Los nmeros se convierten a enteros antes de efectuar la operacin. 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 mdulo es un operador til en algunos procesos repetitivos en programacin. Fjate
en los valores que toma cuando van progresando los valores que toma una variable. En el ejemplo que
mostramos a continuacin 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
aprenderaprogramar.com, 2006-2029
Operadores aritmticos en PHP: operadores bsicos y mdulo.
Destacar que el operador % es de uso exclusivo entre enteros. 7%3 devuelve 1 ya que el resto de dividir
7 entre 3 es 1. 8%2 devuelve 0 ya que el resto de dividir 8 entre 2 es cero. Al valor obtenido lo
denominamos mdulo (en otros lenguajes en vez del smbolo % se usa la palabra clave mod) y a este
operador a veces se le denomina operador mdulo.
Aunque en otros lenguajes existe un operador de exponenciacin para calcular potencias, en PHP no es
as. Para calcular una potencia podemos hacer varias cosas:
a) Recurrir a multiplicar n veces el trmino. Por ejemplo min3 lo podemos calcular como
min*min*min. Obviamente esto no es prctico para potencias de exponentes grandes.
b) Usar un bucle que d lugar a la repeticin de la operacin multiplicacin n veces. Estas opciones
las comentaremos ms adelante.
c) Usar herramientas propias del lenguaje que permiten realizar esta operacin. Esta opcin es la
ms sencilla. Basta con escribir pow(base, exponente) para que PHP realice el clculo de la
potencia. Por ejemplo pow(2, 3) devuelve dos elevado a 3 que resulta 8.
Las operaciones con operadores siguen un orden de prelacin o de precedencia que determinan el
orden con el que se ejecutan. Con los operadores matemticos la multiplicacin y divisin tienen
precedencia sobre la suma y la resta. Si existen expresiones con varios operadores del mismo nivel, la
operacin se ejecuta de izquierda a derecha. Para evitar resultados no deseados, en casos donde pueda
existir duda se recomienda el uso de parntesis para dejar claro con qu orden deben ejecutarse las
operaciones. Por ejemplo, si dudas si la expresin 3 * a / 7 + 2 se ejecutar en el orden que t deseas,
especifica el orden deseado utilizando parntesis: por ejemplo 3 * ( ( a / 7 ) + 2 ).
++ y -- son slo vlidos para variables numricas y sirven para incrementar una unidad el valor de la
variable. Dependiendo de dnde se coloquen (antes o despus de la variable) el resultado del clculo
puede diferir debido al momento en que se ejecuta la adicin de la unidad.
Tener en cuenta que ++, --, +=, -= y *= son expresiones que siempre se aplican sobre variables. Por
ejemplo no es vlido escribir 2++ porque 2 no es una variable. Todas estas operaciones pueden
sustituirse por otra equivalente ms evidente. Muchos programadores prefieren no usar estos
aprenderaprogramar.com, 2006-2029
Operadores aritmticos en PHP: operadores bsicos y mdulo.
operadores porque hacen menos legible el cdigo. A otros programadores les gusta usarlos porque les
ahorra escribir. Nosotros preferimos no usarlos, pero es cierto que los puedes encontrar cuando tengas
que revisar el cdigo escrito por otra persona.
EJEMPLO
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo1.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
<?php
$a = 8;
echo ++$a;
echo "<br />";
echo $a;
?>
Escribe este otro cdigo y gurdalo con un nombre de archivo como ejemplo2.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
<?php
$a = 8;
echo $a++;
echo "<br />";
echo $a;
?>
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.
aprenderaprogramar.com, 2006-2029
Operadores aritmticos en PHP: operadores bsicos y mdulo.
OPERADORES DE ASIGNACIN
Con el uso de los operadores de asignacin, podremos simplificar (escribir abreviadamente) algunas
expresiones de asignacin. No te recomendamos que utilices expresiones abreviadas durante el
aprendizaje bsico de php. No obstante, es adecuado conocer el significado de estas expresiones por si
te enfrentas a tener que interpretar cdigo escrito por otras personas.
Los operadores +=, -= y *= son formas abreviadas de escribir operaciones habituales. Tener en cuenta
que ++, --, +=, -= y *= son expresiones que siempre se aplican sobre variables.
EJERCICIO 1
Crea un cdigo PHP donde crees las variables $primerNumero y $segundoNumero y asigna valor 8 al
primer nmero y 5 al segundo nmero:
Para comprobar si tu cdigo y respuestas son correctas puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Crea un cdigo PHP donde crees las variables $a y $b y usando los operadores adecuados haz que se
muestren los siguientes mensajes por pantalla. Nota: para mantener los valores iniciales de las variables
y poder volver a emplearlos usa variables auxiliares, por ejemplo $inicio = $a; te permitir mantener en
aprenderaprogramar.com, 2006-2029
Operadores aritmticos en PHP: operadores bsicos y mdulo.
%inicio el valor original de $a y volver a recuperar el valor inicial de $a antes de hacer una nueva
operacin.
Operadores de incremento
Valores iniciales: a = 4, b = 2
Operador ++ (anterior): ++a * b == 10
(Ahora el valor de a es: 5)
Operador ++ (posterior): a++ * b == 8
(Ahora el valor de a es: 5)
Operador -- (anterior): --a * b == 6
(Ahora el valor de a es: 3)
Operador -- (posterior): a-- * b == 8
(Ahora el valor de a es: 3)
Valores iniciales: a = 4, b = 2
Asignacin compuesta de suma: a += b equivale a = a + b
(Ahora el valor de a es: 6)
Asignacin compuesta de resta: a -= b equivale a = a - b
(Ahora el valor de a es: 2)
Asignacin compuesta de multiplicacin: a *= b equivale a = a * b
(Ahora el valor de a es: 8)
Asignacin compuesta de divisin: a /= b equivale a = a / b
(Ahora el valor de a es: 2)
Asignacin compuesta de mdulo: a %= b equivale a = a % b
(Ahora el valor de a es: 0)
Para comprobar si tu cdigo y respuestas son correctas puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Switch, case, break. Ejemplos de uso y ejercicios resueltos.
SWITCH PHP
Las instrucciones if...else if...else if permiten resolver prcticamente todas las decisiones que haya que
tomar en programacin, pero en ocasiones nos encontraremos con casos en que queremos evaluar
condiciones con una estructura que hacen ms cmodo usar una instruccin alternativa: switch.
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 accin determinada segn el
valor tomado por una variable. Para estos casos la mayora de los lenguajes de programacin incluyen
una instruccin que permite "seleccionar" entre los posibles valores de una variable: la instruccin
switch (en espaol: seleccionar).
La instruccin switch es una forma de expresin de un anidamiento mltiple de instrucciones if ... else.
Su uso no puede considerarse, por tanto, estrictamente necesario, puesto que siempre podr ser
sustituida por el uso de if. No obstante, a veces resulta til al introducir eficiencia y mayor claridad en el
cdigo.
La sintaxis ser (expresin ser normalmente una variable cuyo contenido queremos evaluar, pero
puede ser una operacin matemtica, una expresin booleana, etc.):
switch (expresin) {
case valor1:
instrucciones;
break;
case valor2:
instrucciones;
break;
aprenderaprogramar.com, 2006-2029
Switch, case, break. Ejemplos de uso y ejercicios resueltos.
.
.
.
default:
sentencias;
break;
switch (expresin) {
case valor1:
case valor2:
case valor3:
instrucciones;
break;
case valor4:
instrucciones;
break;
.
.
.
default:
sentencias;
break;
Inicio
E
Caso, =1 Caso, =2 Caso, =3 Caso, =4 Caso, =5 Caso,
SiNo
Instruccin 3 Instruccin 9
Instruccin 4 Instruccin 10
default y Fin
aprenderaprogramar.com, 2006-2029
Switch, case, break. Ejemplos de uso y ejercicios resueltos.
break es opcional (pero en general recomendable) y provoca que una vez encontrada una coincidencia
termine la evaluacin de casos (provoca un salto pasando el control del programa o flujo de ejecucin a
la instruccin inmediata siguiente fuera del switch). Si no se incluye, se evaluaran el resto de casos
(ejecutndose si fueran ciertos). De no incluirse break, podra producirse que se ejecuten dos o ms
casos.
La clusula default es opcional y representa las instrucciones que se ejecutarn en caso de que no se
verifique ninguno de los casos evaluados. El ltimo break dentro de un switch (en default si existe esta
clusula, o en el ltimo caso evaluado si no existe default) tambin es opcional, pero lo incluiremos
siempre para ser metdicos.
Se permite evaluar tanto nmeros como cadenas de texto o valores booleanos. switch solo permite
evaluar valores concretos de la expresin: no permite evaluar intervalos (pertenencia de la expresin a
un intervalo o rango) ni expresiones compuestas.
EJEMPLO
Vamos a ver ahora cmo podemos obtener un mismo resultado usando if o usando switch. Escribe
ahora el cdigo de ejemplo de uso de if que mostramos a continuacin y gurdalo con un nombre de
archivo como ejemplo1.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
<?php
<?php $variable=2;
$variable=2; case 1:
} default:
aprenderaprogramar.com, 2006-2029
Switch, case, break. Ejemplos de uso y ejercicios resueltos.
Escribe ahora el cdigo de ejemplo de uso de switch hemos mostrado y gurdalo con un nombre de
archivo como ejemplo2.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
Si cambiamos $variable=2 por $variable=5 al inicio de cdigo el resultado sera: $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
instruccin break para salir del switch al terminar las instrucciones correspondientes a un case. Slo
podemos especificar un valor en cada case, no se admite indicar ms 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 ms claro con un ejemplo.
Escribe ahora estos otros cdigos y gurdalos con nombres de archivo como ejemplo3.php y
ejemplo4.php. A continuacin, sube los ficheros al servidor y visualiza el resultado.
<?php
$variable=2;
switch($variable) {
<?php case 1:
//Ejemplo uso if else aprenderaprogramar.com //Se ejecuta si $variable vale 1
$variable=2; echo '$Variable es igual a 1.';
if($variable==1) { break;
echo '$Variable es igual a 1.'; case 2:
} else if($variable==2 OR $variable==3) { case 3:
echo '$Variable es igual a 2 o 3.'; //Se ejecuta si $variable vale 2 o 3
}else { echo '$Variable es igual a 2 o 3.';
echo '$Variable no es igual a 1, 2 o 3.'; break;
} default:
?> //Se ejecuta en cualquier otro caso
echo '$Variable no es igual a 1, 2 o 3.';
}
?>
aprenderaprogramar.com, 2006-2029
Switch, case, break. Ejemplos de uso y ejercicios resueltos.
En cualquiera de las dos formas mostradas, la salida obtenida sera: $variable es igual a 2 o 3.
En este caso, al evaluarse la segunda instruccin case no se encuentra ningn break por lo que se
siguen ejecutando las instrucciones siguientes al tercer case, an cuando $variable es diferente de 3, ya
que al no existir un break anterior los casos 2 y 3 quedan agrupados. Ms an, si borramos el break
del tercer case tambin se ejecutarn las instrucciones siguientes a default, y la salida sera 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 instruccin switch pongas break en todos los case,
o bien que si dejas algn break sin escribir sea porque conscientemente quieras hacerlo y no por olvido.
EJERCICIO 1
b) Completa el cdigo de forma que aadas las etiquetas y definas el valor de $mes = 1. Sube el fichero al
servidor y comprueba el resultado. Cul es el cdigo completo? Cul es el resultado obtenido por
pantalla?
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Switch, case, break. Ejemplos de uso y ejercicios resueltos.
EJERCICIO 2
Considera ests desarrollando una web donde trabajas con tipos de motor (suponemos que se trata del
tipo de motor de una bomba para mover fluidos). Define una variable $tipoMotor y asgnale valor 3. Los
valores posibles son 1, 2, 3, 4. A travs de un condicional switch haz lo siguiente:
f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje No existe un valor vlido
para tipo de bomba.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Funciones de cadenas PHP. Concatenacin, funciones strlen, substr.
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 tambin $cadena = 'George
Wasington';
Para la manipulacin de estas variables o cadenas de caracteres nos ser til conocer las funciones
bsicas de manipulacin. No vamos a entrar a describir cada una de las funciones para cadenas de
caracteres que PHP posee, que son muchas. Simplemente veremos las ms bsicas y de uso ms
comn.
FUNCIN STRLEN
La funcin strlen obtiene la longitud de una cadena y devuelve un nmero entero. Es decir, obtenemos
el nmero de caracteres que forman la cadena completa.
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo1.php. A continuacin, 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";
?>
FUNCIN SUBSTR
La funcin substr devuelve una subcadena de la cadena original, es decir, una parte de la cadena
original. Esta funcin tiene 3 parmetros:
aprenderaprogramar.com, 2006-2029
Funciones de cadenas PHP. Concatenacin, funciones strlen, substr.
3. Nmero que indica la cantidad de caracteres que sern extrados. Este argumento es opcional.
Si se omite se tomar hasta el final de la cadena original.
Tener en cuenta que la numeracin de la posicin de los caracteres empieza por cero. Por ejemplo para
la cadena 'GPS', que tiene 3 caracteres, el carcter en posicin 0 es G, en posicin 1 es P y en posicin 2
es S. No existe la posicin 3 debido a que se comienza a contar por el cero.
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo2.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
<?php
$cad = "cadena";
$sub1 = substr($cad, 2);
$sub2 = substr($cad, 2, 2);
echo "La subcadena nmero uno es la siguiente: $sub1 <br />";
echo "La subcadena nmero dos es la siguiente: $sub2";
?>
Escribe este otro ejemplo y visualzalo en tu navegador (nota: & nbsp representa un espacio en blanco):
aprenderaprogramar.com, 2006-2029
Funciones de cadenas PHP. Concatenacin, funciones strlen, substr.
OPERADOR DE CONCATENACIN
La concatenacin es el proceso de unir varias porciones de texto en una sola cadena. Este operador se
expresa como un punto '.'
<?php
$cad1 = "aprendera";
$cad2 = "programar";
$cadt = $cad1 . $cad2;
echo "La cadena nmero uno concatenada con la cadena nmero 2 es: $cadt <br />";
// Ahora concatenaremos la cadena ejemplo con la concatenacin de $cad2 y $cad1
echo "Ejemplo: " . ($cad2 . $cad1);
?>
aprenderaprogramar.com, 2006-2029
Funciones de cadenas PHP. Concatenacin, funciones strlen, substr.
En este ejemplo vemos cmo las cadenas se pueden concatener en el orden que nosotros deseemos.
EJERCICIO
a) Declara una variable cuyo contenido sea la cadena "Didctica y divulgacin de la programacin"
b) Usando la funcin substr extrae cada una de las palabras de la cadena anterior a una variable. Como
tenemos 6 palabras, debes tener 6 variables con las subcadenas.
c) Usando la concatenacin muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son:
Didctica, divulgacin, programacin>>
d) Usando strlen muestra por pantalla lo siguiente: <<La palabra primera es Didctica y tiene 9 caracteres,
la palabra tercera es divulgacin y tiene 11 caracteres. La palabra sexta es programacin y tiene 12
caracteres>>
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Estructuras repetitivas bsicas en PHP: while, for y do/while.
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 nmero
de veces definido. Las instrucciones bsicas que permiten construir este tipo de estructuras son while,
do ... while y for.
LA INSTRUCCIN WHILE
La instruccin while (que en castellano se traducira como mientras) ejecuta una porcin de
programa mientras se cumpla una cierta condicin.
Mientras la condicin sea verdadera, se ejecutan las instrucciones contenidas en el while. Cuando deja
de cumplirse la condicin, se sale del ciclo y se contina ejecutando el resto del programa.
Si la condicin no se cumple ni la primera vez que se comprueba, las lneas en el interior del while no se
ejecutarn ni una vez.
<?php
while (condicin) {
... sentencias;
}
?>
En este fragmento de cdigo estaramos indicando que mientras se cumpla la condicin se realizan las
sentencias, y en este caso si no se cumpliese la condicin se seguira ejecutando el programa o
mostrando los contenidos de la pgina web justo despus del cierre de la instruccin while (que queda
determinado por el smbolo de cierre } ).
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo1.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
<?php
$galletas = 0;
while ($galletas < 10){
echo "$galletas, ";
$galletas++;
}
?>
aprenderaprogramar.com, 2006-2029
Estructuras repetitivas bsicas en PHP: while, for y do/while.
En este ejemplo, las instrucciones dentro del while se ejecutaran 10 veces, mostrando los nmeros 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 condicin del while se cumplira siempre y tendramos un problema porque
habramos creado un bucle infinito, quedando el programa atascado en dicho while.
EJERCICIO 1
a) Un bucle while que cuente desde 50 hasta 40 (fjate 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.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
LA INSTRUCCIN DO WHILE
La estructura repetitiva do-while (en castellano equivaldra a hacer mientras) es muy similar a la
estructura while, excepto que la expresin verdadera es verificada al final de cada iteracin 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 verificacin de si se tiene que repetir el proceso se
realiza al final de la repeticin de la estructura.
<?php
do {
sentencias
} while(condicin);
?>
aprenderaprogramar.com, 2006-2029
Estructuras repetitivas bsicas en PHP: while, for y do/while.
En este fragmento de cdigo estaramos indicando que se ejecute una primera vez s o s las
sentencias, y que despus se evale la condicin para comprobar si se deben ejecutar nuevamente las
sentencias. Como vemos, aunque no se cumpla la condicin las sentencias se ejecutaran al menos una
primera vez.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo2.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
<?php
$galletas = 0;
do {
echo "$galletas, ";
$galletas++;
} while ($galletas < 10);
?>
EJERCICIO 2
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
LA INSTRUCCIN FOR
La estructura repetitiva for (en castellano se traducira 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 instruccin una variable de control, la cual se incrementa o decrementa de
forma automtica. La estructura de estas instrucciones viene a ser muy similar a la anterior.
aprenderaprogramar.com, 2006-2029
Estructuras repetitivas bsicas en PHP: while, for y do/while.
<?php
for ($variable=valor_inicial; condicin; incremento) {
... sentencias;
}
?>
En este fragmento de cdigo estaramos indicando que mientras se cumpla la condicin se realizan las
sentencias, y en este caso si no se cumpliese la condicin se seguira ejecutando el programa justo
despus del cierre de la instruccin for (}). Todo esto es igual a la instruccin while anteriormente
citada, salvo que en la propia declaracin de la estructura se encuentra la variable de control, que en
cada repeticin se incrementa automticamente.
Escribe ahora este otro cdigo gurdalo con un nombre de archivo como ejemplo3.php. A continuacin,
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 informacin que mostraba la instruccin while. Como
podemos observar, el valor inicial y el incremento de la variable $galletas, van en la propia instruccin.
aprenderaprogramar.com, 2006-2029
Estructuras repetitivas bsicas en PHP: while, for y do/while.
EJERCICIO 3
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
Crea el siguiente cdigo, gurdalo con un nombre de archivo como ejemplo4.php y visualiza los
resultados en tu navegador.
<?php
for ( $i = 0; $i < 50; $i+=5 ){
echo " $i <br/> ";
}
?>
Fjate 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.
aprenderaprogramar.com, 2006-2029
Estructuras repetitivas bsicas en PHP: while, for y do/while.
Otra cosa interesante es que usando la instruccin += conseguimos que la variable contadora no vaya
de uno en uno, sino que el paso (step) de la variable sea el nmero que nosotros deseemos. En este
caso, hemos utilizado un incremento de 5 unidades en cada repeticin del bucle. Tambin podemos
lograr el mismo efecto pero con decrementos usando =.
EJERCICIO 4
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Arrays bsicos en PHP. Vectores y Matrices. Ejemplos.
Un array es un conjunto de variables de una misma clase. Se accede a cada elemento individual del
array mediante un nmero entero denominado ndice. 0 es el ndice o localizador del primer elemento
y n-1 es el ndice del ltimo elemento, siendo n, la dimensin, tamao o longitud del array. As
$empleado[23] representara al empleado con localizador 23 como veremos a continuacin.
Los arrays son muy utilizados en la programacin. Dependiendo de la cantidad de dimensiones que
tengan pueden ser:
Para acceder a los elementos del array se utilizan los corchetes [], dentro de los cuales existir un
localizador o ndice que es un nmero entero. Adems, podemos guardar valores de cualquier tipo de
variable (string, entero, punto flotante, booleano) dentro de un array. Por ejemplo $empleado[23]
podra tomar como valor $empleado[23] = "Juan Prez Surez". En este caso se tratara de un array de
cadenas de texto, es decir, un array de string. En otro caso $empleado[23] podra tomar como valor
$empleado[23] = 2312. En este caso se tratara de un array de valores numricos.
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 automticamente que se trata de
un array sin necesidad de declaracin previa.
Los vectores son los arrays que slo contienen una dimensin (un ndice). Escribe este cdigo y
gurdalo con un nombre de archivo como ejemplo1.php. A continuacin, sube el fichero al servidor y
visualiza el resultado en tu navegador.
<?php
$estacion[0] = "Primavera";
$estacion[1] = "Verano";
$estacion[2] = "Otoo";
$estacion[3] = "Invierno";
echo $estacion[2];
$numero[0] = 7;
$numero[1] = 11;
$numero[2] = 15;
?>
aprenderaprogramar.com, 2006-2029
Arrays bsicos en PHP. Vectores y Matrices. Ejemplos.
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 tambin otra posibilidad que no admiten otros lenguajes: se pueden usar arrays sin
especificar los nmeros de los ndices, ya que PHP los puede colocar automticamente.
Escribe ahora este otro cdigo y gurdalo con un nombre de archivo como ejemplo2.php. A
continuacin, sube el fichero al servidor y visualiza el resultado.
<?php
$ciudad[] = "Sevilla";
$ciudad[] = "Madrid";
$ciudad[] = "Barcelona";
$ciudad[] = "Valencia";
echo $ciudad[3];
?>
Fjate que PHP ha colocado automticamente 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 numerndose desde
cero.
aprenderaprogramar.com, 2006-2029
Arrays bsicos en PHP. Vectores y Matrices. Ejemplos.
<?php
$color = array("azul", "verde", "negro", "marrn");
echo $color[1];
?>
Como ves, esta es una forma abreviada cuya forma general es:
El trmino array es una palabra clave en PHP cuyo significado es equivalente a decir los elementos que
aparecen en la lista a continuacin son elementos de un array.
EJERCICIO
Crea el cdigo PHP de 3 archivos en cada uno de los cuales debes hacer lo siguiente:
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 continuacin muestra por pantalla el elemento con localizador 5. Debers
obtener por pantalla que se visualiza -3.
b) Declara un array de numricos decimales tipo double de nombre $importe e introduce en l cuatro
elementos que sean 32.583, 11.239, 45.781, 22.237. A continuacin muestra por pantalla el elemento
con localizador 1. Debers 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 continuacin muestra por pantalla el elemento con localizador 0.
Debers obtener por pantalla que se muestra true.
d) Declara un array de strings de nombre $jugador e introduce en l 5 elementos que sean "Crovic",
"Antic", "Malic", "Zulic" y "Rostrich". A continuacin usando el operador de concatenacin haz que se
muestre la frase: <<La alineacin del equipo est compuesta por Crovic, Antic, Malic, Zulic y Rostrich.>>
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.
Las matrices decimos que son arrays (arreglos) de dos dimensiones. Tambin podemos verlas como
tablas donde cada elemento tiene una fila y una columna. Para comprenderlas mejor podemos recordar
las matrices matemticas de 2 dimensiones. Un ejemplo de matriz en matemticas podra ser esta:
1 14 8 3
6 19 7 2
3 13 4 1
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 podramos decir que tenemos 3 filas (fila 0, fila 1 y fila 2) y cuatro
columnas (columna 0, columna 1, columna 2, columna 3). Podramos decir que el elemento de la fila 1,
columna 3 es igual a 2. De la misma manera podramos 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 cdigo y gurdalo con un nombre de archivo como ejemplo3.php. A continuacin,
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] = "Murcilago";
$animal[2][1] = "Cocodrilo";
echo $animal[2][1];
echo $animal[0][0];
?>
aprenderaprogramar.com, 2006-2029
Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.
Hay que recordar que los arrays siempre comienzan numerndose desde cero.
Otra forma de asignar valores a un array matriz es similar a la que ya describimos para los vectores.
Escribe este cdigo y gurdalo con un nombre de archivo como ejemplo4.php. A continuacin, sube el
fichero al servidor y visualiza el resultado.
<?php
$animal = array(
array("Perro", "Gato"),
array("Lombriz", "Burro"),
array("Murcilago", "Cocodrilo")
);
echo $animal[2][1];
echo $animal[0][0];
?>
De ah que por pantalla se muestre "Cocodrilo" y "Perro", al igual que en el ejemplo anterior.
Tambin obtenemos el mismo resultado usando este cdigo, que es una mezcla de ambos tipos de
sintaxis:
<?php
$animal[0] = array("Perro", "Gato");
$animal[1] = array("Lombriz", "Burro");
$animal[2] = array("Murcilago", "Cocodrilo");
echo $animal[2][1];
echo $animal[0][0];
?>
La visualizacin obtenida es la misma: por pantalla se muestra "Cocodrilo" y "Perro", al igual que en el
ejemplo anterior..
aprenderaprogramar.com, 2006-2029
Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.
ARRAYS MULTIDIMENSIONALES
Los arrays multidimensionales son los que tienen ms de dos dimensiones. Estos tipos de arrays se
definen como las matrices pero aadiendo ms ndices.
Escribe este cdigo, guarda el archivo php, sbelo 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] = "Murcilago";
$animal[1][0][2] = "Cocodrilo";
echo "<br/> " . $animal[1][0][1];
echo "<br/> " . $animal[0][0][3];
?>
En este ejemplo hemos incluido una lnea que tiene poco sentido, o podra interpretarse como un error:
Fjate que estamos invocando un localizador [0][0][3] que no existe, o al que an no le hemos asignado
valor. Dependiendo del lenguaje y de la versin 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 vaco,
que en este caso supondra que en la pantalla no se muestra nada asociado a esta variable. Por eso en
la pantalla vemos nicamente Murcilago y nada ms.
Escribe el cdigo que incluimos ms abajo y visualiza el resultado. Si te fijas, cuando declaramos un
array dentro de otro array lo que hacemos es aadir una dimensin ms al array. Por ejemplo, si
quisiramos declarar un array de tres dimensiones de nombre $miFecha podramos escribir:
aprenderaprogramar.com, 2006-2029
Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.
<?php
$miFecha = array( //Declara array
array( //Dimensin [0][][]
array("13 de enero de 2015", "11 de febrero de 2018"),//[0][0][]
array("13 de enero de 2020", "11 de febrero de 2015"),//[0][1][]
),
array( //Dimensin [1][][]
array("3 de agosto de 2017", "1 de octubre de 2016"),//[1][0][]
array("3 de agosto de 2013", "1 de octubre de 2019"),//[1][1][]
),
array( //Dimensin [2][][]
array("10 de junio de 2020", "11 de marzo de 2019"), //[2][0][]
),
array(//Dimensin [3][][]
array("22 de marzo de 2020", "28 de mayo de 2019"), //[3][0][]
array("22 de marzo de 2019", "28 de mayo de 2018"), //[3][1][]
array("22 de marzo de 2018", "28 de mayo de 2017"), //[3][2][]
array("22 de marzo de 2017", "28 de mayo de 2016"), //[3][3][]
)
);
echo "<br/> " . $miFecha[3][2][0];
?>
En este ejemplo hemos definido valores para los siguientes ndices de array:
Comprubalo solicitando la visualizacin de todas estas variables, como vemos en este ejemplo.
aprenderaprogramar.com, 2006-2029
Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.
<?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/> " . $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>";
?>
aprenderaprogramar.com, 2006-2029
Matrices y arrays multidimensionales en PHP. Ejercicios resueltos.
EJERCICIO
Queremos almacenar en una matriz el nmero de alumnos con el que cuenta una academia, ordenados
en funcin del nivel y del idioma que se estudia. Tendremos 3 filas que representarn al Nivel bsico,
medio y de perfeccionamiento y 4 columnas en las que figurarn los idiomas (0 = Ingls, 1 = Francs, 2 =
Alemn y 3 = Ruso). Se pide realizar la declaracin de la matriz y asignarle los valores indicados en la
siguiente imagen a cada elemento de las siguientes maneras (crea un archivo php por cada una de estas
maneras):
1 14 8 3
6 19 7 2
3 13 4 1
a) Con una sintaxis basada exclusivamente en ndices, y mostrar por pantalla los alumnos que existen
en cada nivel e idioma.
b) Con una sintaxis basada en el uso anidado de la palabra array, y mostrar por pantalla los alumnos
que existen en cada nivel e idioma.
c) Con una sintaxis que combine el uso de array y el uso de ndices, y mostrar por pantalla los alumnos
que existen en cada nivel e idioma.
Nota: por ejemplo, debe mostrarse por pantalla que el nmero de alumnos en el nivel bsico, idioma
ingls, hay 1 alumno; en el nivel bsico, idioma francs, hay 14 alumnos, etc.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Arrays asociativos en PHP. Ejemplos y ejercicios resueltos.
Anteriormente hemos visto lo que son los arrays tradicionales en PHP y cmo 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 estn 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 numeracin 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 numrico 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 cdigo y gurdalo con un nombre de archivo como ejemplo1.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
echo $colores_vehiculos['moto'];
?>
aprenderaprogramar.com, 2006-2029
Arrays asociativos en PHP. Ejemplos y ejercicios resueltos.
Para declarar arrays asociativos, en el parntesis de definicin del array, tenemos que asociar el ndice
con el valor por medio del operador =>. Fjate que el ndice debe ir escrito entre comillas simples.
Despus, 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
nmero, pero tambin podemos poner cadenas de texto, como en el ejemplo anterior e incluso
variables. Escribe este cdigo y comprueba el resultado en tu servidor.
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 tambin pueden usarse en la forma de declaracin habitual
escribiendo $nombreVariable [indice] = valor. Escribe este ejemplo de cdigo, gurdalo con un nombre
de archivo y sbelo al servidor.
aprenderaprogramar.com, 2006-2029
Arrays asociativos en PHP. Ejemplos y ejercicios resueltos.
EJERCICIO
Crea el cdigo PHP de dos archivos que den respuesta al siguiente planteamiento:
Queremos almacenar en una matriz el nmero de alumnos con el que cuenta una academia, ordenados
en funcin del nivel y del idioma que se estudia. Tendremos 3 niveles: Nivel bsico, medio y de
perfeccionamiento, que se corresponden con las filas de la matriz, y 4 idiomas (Ingls, Francs, Alemn
y Ruso), que se corresponden con las columnas de la matriz. Se pide realizar la declaracin de la matriz
y asignarle los valores indicados en la siguiente imagen cumpliendo con:
1 14 8 3
6 19 7 2
3 13 4 1
a) Con una sintaxis ejemplo de uso de arrays asociativos donde el primer ndice del array (niveles) es un
nmero y el segundo un texto indicativo del idioma. Se debe mostrar por pantalla los alumnos que
existen en cada nivel e idioma. Ejemplo: numeroAlumnos[0]['frances'] representar el nmero de
alumnos que existen en el nivel bsico, idioma francs.
b) Con una sintaxis ejemplo de uso de arrays asociativos donde tanto el primer ndice del array (niveles)
como el segundo (idiomas) sea un texto indicativo. Se debe mostrar por pantalla los alumnos que
existen en cada nivel e idioma. Ejemplo: numeroAlumnos['basico']['frances'] representar el nmero de
alumnos que existen en el nivel bsico, idioma francs.
Nota: en ambos casos debe mostrarse por pantalla que el nmero de alumnos en el nivel bsico, idioma
ingls, hay 1 alumno; en el nivel bsico, idioma francs, hay 14 alumnos, etc.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
FUNCIN COUNT
Antes de poder recorrer un array, debemos saber cul es su tamao para poder recorrerlo.
Supongamos que un array tiene tres elementos: tenemos que dar una instruccin para que se extraiga
el valor asociado a cada uno de los elementos del array, que normalmente ser algo similar a para
cada uno de los tres elementos del array, extraer su valor.
Sin embargo, si el array tiene 24 elementos, la instruccin ser del tipo para cada uno de los
veinticuatro elementos del array, extraer su valor. Como vemos, muchas veces nos es necesario saber
el nmero de elementos que hay en el array para poder recorrerlo, y para ello nos va a resultar til la
funcin count.
La funcin count devuelve el nmero de elementos que hay en el array. Es decir para un array de 4
elementos, la funcin count devolver el nmero 4. Recuerda que si se trata de valores numricos de
ndices, los cuatro valores numricos sern normalmente 0, 1, 2 y 3 en lugar de 1, 2, 3 y 4.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo2.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
echo count($estacion);
?>
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
Ahora que ya conocemos qu son los arrays, debemos conocer cmo recorrerlos para extraer o
comprobar los valores que contiene cada uno de los elementos del array. Esta es una tarea habitual en
programacin que en general va a tener gran utilidad para nosotros.
Lo arrays se pueden recorrer de muchas formas, nosotros no las explicaremos todas. Trataremos de ver
en principio las ms habituales y sencillas.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo3.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
for($i=0;$i<count($array);$i++) {
echo $array[$i].'<br />';
}
?>
Como ejercicio y teniendo en cuenta lo explicado en las entregas anteriores sobre los distintos tipos de
instrucciones de repeticin, escribe el cdigo que d lugar al mismo resultado que el ejemplo anterior
pero usando la instruccin while y comprueba que obtienes el mismo resultado.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
CONOCER COUNT
Analicemos lo que est ocurriendo. El array $array no tiene definidos cules son sus elementos de
ndice 0, 1, 2, 3 y 4. En cambio s tiene definidos valores para sus elementos de ndice 5, 6, 7, 8, 9, 10, 11
y 12. Hay 8 elementos con valores definidos pero sus ndices no son 0, 1, 2, 3, 4, 5, 6, 7 como es lo
habitual, sino que son 5, 6, 7, 8, 9, 10, 11 y 12.
Al ejecutar el for comenzando con un valor de la variable de control igual a cero, se ejecuta echo
$array[0].<br/>; Al no tener un valor asignado, $array[0] devuelve vaco y simplemente se muestran
tres puntos por pantalla. Lo mismo ocurre con los ndices 1, 2, 3, 4 y slo es al llegar al ndice cinco
cuando se muestran valores por pantalla.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
Sin embargo, slo se mostrarn los elementos con ndice 5 a 8 del array, quedando el resto de
elementos sin ser mostrado.
Adems comprobamos que podemos invocar a elementos del array por encima del ndice mximo
definido sin obtener error, y que incluso podemos invocar a un nombre de array que no hemos
declarado ni utilizado, con cualquier ndice, sin obtener error.
En este ejemplo podramos mostrar todos los elementos del array realizando un pequeo cambio:
for($i=5;$i<count($array)+5;$i++)
Sin embargo esta solucin no es satisfactoria porque no la podemos aplicar como solucin para
recorrer cualquier array.
Si los ndices del array no son secuencialmente 0, 1, 2, 3 , etc. el recorrido con un for tradicional puede
resultar no satisfactorio, por lo que habremos de pensar en otras alternativas para recorrer el array.
Hablaremos de esto ms adelante.
En el caso de arrays de ms de una dimensin, la funcin count devuelve el nmero de elementos que
hay en un nivel del array definido y para un ndice definido. Llamamos nivel del array a cada uno de los
corchetes existentes en el array. Por ejemplo si hemos definido $ejem[2][5][1][6][2] = 33; y
$ejem[2][5][3][1][9] = 55; decimos que en el primer nivel del array, correspondiente al primer ndice,
hay un solo ndice: el 2. En el segundo nivel del array para ndice 2 hay un solo ndice: el 5. En el tercer
nivel del array con ndice 1 hay un solo ndice: el 6. En el tercer nivel del array con ndice 3 hay un solo
ndice: el 1. En el cuarto nivel del array con ndice 6 hay un solo ndice: el 2. En el cuarto nivel del array
con ndice 1 hay un solo indice: el 9.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
$array2[0][0][2] = "Prueba3";
$array2[0][1][0] = "Prueba4";
$array2[0][1][1] = "Prueba5";
$array2[1][0][1] = "Prueba6";
$array2[1][1][2] = "Prueba7";
$array2[1][2][1] = "Prueba8";
$array2[2][0][0] = "Prueba9";
$array2[2][0][1] = "Prueba10";
$array2[5][0][1] = "Prueba11";
echo '<br/>Numero de indices en el primer nivel: '.count($array2);
echo '<br/>Numero de indices en el segundo nivel de array[0]: '.count($array2[0]);
echo '<br/>Numero de indices en el segundo nivel de array[1]: '.count($array2[1]);
echo '<br/>Numero de indices en el segundo nivel de array[2]: '.count($array2[2]);
echo '<br/>Numero de indices en el segundo nivel de array[3]: '.count($array2[3]);
echo '<br/>Numero de indices en el segundo nivel de array[5]: '.count($array2[5]);
echo '<br/>Numero de indices en el tercer nivel de array[0][0]: '.count($array2[0][0]);
echo '<br/>Numero de indices en el tercer nivel de array[0][1]: '.count($array2[0][1]);
echo '<br/>Numero de indices en el tercer nivel de array[1][0]: '.count($array2[1][0]);
echo '<br/>Numero de indices en el tercer nivel de array[1][1]: '.count($array2[1][1]);
echo '<br/>Numero de indices en el tercer nivel de array[1][2]: '.count($array2[0][0]);
echo '<br/>Numero de indices en el tercer nivel de array[2][0]: '.count($array2[2][0]);
echo '<br/>Numero de indices en el tercer nivel de array[5][0]: '.count($array2[5][0]);
?>
Fjate que por ejemplo count($array2[0][1]) nos devuelve el nmero de elementos existentes de tipo
$array2[0][1][x] donde x es cualquier ndice, es decir, el nmero de elementos de tercer nivel del array
para los ndices iniciales 0 y 1.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
Para recorrer un array multidimensional, tendremos que ir anidando tantas estructuras repetitivas
como dimensiones tenga el array. Con un ejemplo se ver todo mucho ms claro.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo4.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
Fjate que para poder obtener el resultado deseado los elementos de los arrays deben estar definidos
usando ndices que comiencen en 0 y sean progresivamente 1, 2, 3, 4 Si no fuera as estos bucles, al
estar definidos partiendo de 0, no funcionaran.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
Fjate tambin en la lgica de los bucles, por ejemplo el primer bucle lo podramos leer as: para cada
elemento desde 0 hasta el nmero de elementos de primer nivel, y para cada elemento desde 0 hasta
el nmero de elementos de segundo nivel con el ndice extraido previamente, mostrar el contenido del
array. Si por ejemplo en el primer nivel tenemos dos ndices que son 0 y 1, comenzaremos con el ndice
0 y se ver para el ndice 0 cuntos ndices hay en el segundo nivel (son 2). De este modo lo primero
que se mostrar son los ndices [0][0] y [0][1]. Una vez completado el recorrido del ndice 0 se pasa al
ndice 1 y se sigue el mismo proceso.
Nota: en algunas versiones o situaciones pedir un elemento no definido de un array puede dar lugar a
que aparezca un error. Por ejemplo, si el elemento $array[2][3] no existe e hiciramos una llamada a
ese elemento como echo $array[2][3] podra aparecer un error tipo undefined offset similar a ste:
PHP incorpora una forma cmoda para poder recorrer todos los elementos de un array. Esta forma se
basa en el uso de la instruccin 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' => 'Gmez Gmez', 'telefono' => '675832145'),
array('nombre' => 'Pedro', 'apellidos' => 'Guilln Gastn', 'telefono' => '674562178'),
array('nombre' => 'Dolores', 'apellidos' => 'Candela Quema', 'telefono' => '689765432'),
.
.
.
.
array('nombre' => 'Rubn', 'apellidos' => 'Guardia Jurado', 'telefono' => '654213896'),
);
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
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 nmeros (se trata de
arrays tradicionales). En el primer caso los valores 0, 1 y 2 son asignados automticamente por php
porque no se ha especificado otra cosa.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo5.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
Como podemos observar, vamos a ir recorriendo todas las filas y mostrando el nombre.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
$valor es una variable temporal que slo existe durante la ejecucin de la instruccin foreach, y esta
variable va tomando en cada repeticin o iteracin 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.
Pero piensa que para recorrer un array de varios cientos de elementos no resultar prctico escribirlos
uno a uno
Como ejercicio escribe el cdigo que muestre los nombres y apellidos del array anterior.
Si te resulta un poco complicado el ejercicio anterior, prueba con este cdigo que es ms sencillo, y
luego vuelve a revisar el cdigo anterior.
<?php
$estacion[0] = "Primavera";
$estacion[1] = "Verano";
$estacion[2] = "Otoo";
$estacion[3] = "Invierno";
foreach($estacion as $valor) {
echo ' '. $valor.'<br/>';
}
?>
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 repeticin del bucle el contenido de los
elementos o items del array que estamos recorriendo.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
EJERCICIO 1
Crea un array con nombre paisLimitrofe donde los elementos del array sern cadenas de texto con los
pases limtrofes (con frontera) con el tuyo. Por ejemplo si vivimos en Per tenemos como pases
limtrofes Ecuador, Colombia, Brasil, Bolivia y Chile.
b) Utilizando un bucle for each, muestra por pantalla los pases limtrofes.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
foreach($equipo as $posicion=>$jugador) {
echo "El " . $posicion . " es " . $jugador;
}
c) Al ejecutar el cdigo obtienes un resultado por pantalla u obtienes un error? Qu es lo que hace el
cdigo?
EJERCICIO 3
Supn que quieres representar lo siguiente: hay 2 equipos espaoles, en el primero el portero es Frank,
el defensa Pepe, el medio Luis y el delantero Raul. En el segundo, el portero es Tiger, el defensa Mourin,
el medio Katz y el delantero Alberto. Hay 1 equipo mexicano, donde el portero es Suarez, el defensa
Koltz, el medio Fernandez y el delantero Ramirez. Hay 2 equipos argentinos. En el primero el portero es
Higuita, el defensa Mel, el medio Rubens y el delantero Messi. En el segundo el portero es
Kostenmeiner, el defensa Lenkins, el medio Marash y el delantero Juanes.
aprenderaprogramar.com, 2006-2029
Funcin count. Uso de for y for-each para recorrer arrays.
a) Representa los datos usando un array de tres dimensiones con ndices numricos donde el primer
ndice indica el pas, el segundo el equipo y el tercero la posicin del jugador. Presenta la informacin
del pas, equipo, posiciones y jugadores de cada equipo usando un bucle for.
b) Representa los datos usando un array de tres dimensiones con ndices numricos donde el primer
ndice indica el pas, el segundo el equipo y el tercero la posicin del jugador. Presenta la informacin
del pas, equipo, posiciones y jugadores de cada equipo usando un bucle for each.
c) Representa los datos usando arrays arrays asociativos donde el primer ndice indica el pas, el
segundo el equipo y el tercero la posicin del jugador (un ejemplo de cmo declarar un elemento sera
por ejemplo: $equipos['Mexico']['Equipo1']['defensa']="koltz"; ). A continuacin usando un bucle
foreach recorre los elementos del array mostrando la informacin del pas, equipo, posiciones y
jugadores de cada equipo.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Funciones en PHP: declaracin y llamada a funciones en PHP. Ejemplos.
FUNCIONES EN PHP
Una de las herramientas ms importantes en cualquier lenguaje de programacin son las funciones.
Una funcin 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 funcin. Las funciones
pueden ser llamadas y ejecutadas desde cualquier punto del programa.
Adems, una funcin puede recibir parmetros externos de los cuales dependa el resultado de dicha
funcin. Es decir, segn el parmetro o parmetros con los que se invoque a la funcin, sta devolver
un resultado u otro.
Las funciones deben estar definidas antes de realizar la llamada a la funcin (como es lgico).
Para llamar (hacer que se ejecute) la funcin usaremos esta sintaxis: nombre(par1, par2, par3, , parN);
donde par1, par2, par3, , parN son los parmetros (informacin) que le pasamos a la funcin. Una
funcin puede necesitar de ningn, uno o varios parmetros para ejecutarse.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo1.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
aprenderaprogramar.com, 2006-2029
Funciones en PHP: declaracin y llamada a funciones en PHP. Ejemplos.
En este ejemplo hemos visto cmo hemos definido una funcin cuyo nombre es mostrarTexto. Esta
funcin espera un parmetro cuando es invocada (parmetro que se ha denominado $texto). Una vez
se ejecuta, la funcin ejecuta una serie de instrucciones y devuelve el control al punto desde el que fue
invocada.
La utilidad fundamental de las funciones es no tener que repetir partes de cdigo comunes, que sera
necesario repetir varias veces. Esas partes de cdigo comunes se agrupan en funciones y simplemente
llamaremos a la funcin cada vez que necesitamos ejecutar ese cdigo. De esta manera, evitamos la
repeticin que hace ms largo y difcil de entender un programa o desarrollo web.
Tambin podemos crear funciones que devuelvan datos (valores concretos). Estas funciones, que
podramos denominar funciones en sentido estricto, son aquellas que ejecutan un cdigo y como
punto final de dicho cdigo incluyen una sentencia return seguida del resultado de la funcin. La
sentencia return indica que cuando se alcanza se ha llegado al final de la funcin y se devuelve como
resultado de la misma el contenido especificado a continuacin del return. Despus de un return puede
devolverse una variable, un nmero, una cadena de texto, etc.
Por ejemplo return "No dispone de permisos" significa que la funcin devuelve esta cadena de texto.
Otro ejemplo: return $calculo; indica que la funcin devuelve el contenido que se encuentre
almacenado en la variable $calculo. Otro ejemplo: return "Lo sentimos ".$usuario." pero no dispone de
permisos. Para solicitar informacin puede escribir a ".$emailAdministrador; hara que la funcin
devuelva una cadena de texto donde intervienen diversas variables.
aprenderaprogramar.com, 2006-2029
Funciones en PHP: declaracin y llamada a funciones en PHP. Ejemplos.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo2.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
Fjate que a diferencia de la funcin mostrarTexto, la funcin operaciones nos devuelve un valor
concreto, de forma que se sustituye su invocacin all donde aparece por el valor que devuelve. As, la
instruccin echo operaciones(15, 8, "Restar"); equivale a lo que sera escribir echo <<aqu el valor
devuelto por la funcin operaciones invocada con los parmetros 15, 8 y Restar >>, es decir, sera lo
mismo que escribir echo (15-8); echo 7;
Adems, fjate que la funcin mostrarTexto requera un parmetro, mientras que la funcin
operaciones requiere tres parmetros. Si invocas la funcin sin pasarle el nmero de parmetros
adecuado obtendrs un error del tipo <<Warning: Missing argument 3 for operaciones()>>.
Por ltimo, tener en cuenta que una funcin puede ser invocada sin parmetros.
aprenderaprogramar.com, 2006-2029
Funciones en PHP: declaracin y llamada a funciones en PHP. Ejemplos.
Esta funcin carece de parmetros. Para invocarla escribiramos mostrarTextoError(). Cada vez que
realizramos la invocacin se ejecutara el cdigo dentro de la funcin. Esta funcin podemos decir que
es tipo procedimiento porque no devuelve un resultado (no tiene sentencia return).
EJERCICIO
a) Una funcin que reciba cinco nmeros enteros como parmetros y muestre por pantalla el resultado
de sumar los cinco nmeros (tipo procedimiento, no hay valor devuelto).
b) Una funcin que reciba cinco nmeros enteros como parmetros y devuelva el resultado de sumar
los cinco nmeros (tipo funcin, hay un valor devuelto). Asigna el resultado de una invocacin a la
funcin con los nmeros 2, 5, 1, 8, 10 a una variable de nombre $tmp y muestra por pantalla el valor de
la variable.
c) Una funcin que reciba como parmetros el valor del radio de la base y la altura de un cilindro y
devuelva el volumen del cilindro, teniendo en cuenta que el volumen de un cilindro se calcula como
Volumen = nmeroPi * radio * radio * Altura siendo nmeroPi = 3.1416 aproximadamente.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Funciones bsicas en PHP: str_replace, strtolower, strtoupper...
PHP adems 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
ncleo php. Ya conocemos algunas de ellas como strlen y substr. Vamos a ver otras funciones muy
usadas relacionadas con el manejo de cadenas de caracteres (texto).
FUNCIN STR_REPLACE
Esta funcin se utiliza para reemplazar caracteres dentro de una cadena de caracteres. Es decir, nos
permite definir una cadena que debe ser reemplazada con otra dentro de una frase o palabra. La
funcin devuelve la frase original con todas las apariciones de la cadena a buscar reemplazadas con una
cadena de reemplazo especificada.
Vemoslo con un ejemplo para entenderla mejor. Escribe este cdigo y gurdalo con un nombre de
archivo como ejemplo1.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
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.
aprenderaprogramar.com, 2006-2029
Funciones bsicas en PHP: str_replace, strtolower, strtoupper...
Fjate que en el cdigo 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 funcin. Si
hubiramos escrito lo siguiente s hubiramos cambiado el contenido de la variable: $texto =
str_replace("Diego", "recortes", $texto);
La funcin permite pasar opcionalmente un parmetro adicional que permite saber a posteriori el
nmero de reemplazos que se han realizado:
Fjate que se reemplaza la cadena "es" indistintamente segn est separada por espacios o dentro de
una palabra. Si slo quisiramos reemplazar la cadena si est separada por espacios podramos indicar
los espacios dentro de la cadena: echo str_replace(" es ", " ** ", $texto, $reemplazos );
Si fuera necesario establecer reglas complejas de reemplazo, por ejemplo reemplazar todas las
palabras que empiecen por a y terminen por a con otra palabra, tendramos que usar lo que se
denominan expresiones regulares, pero no vamos a estudiar ahora la forma de definir y emplear
expresiones regulares con PHP.
Las funciones strtolower y strtoupper transforman una cadena de caracteres en la misma cadena en
minsculas o maysculas respectivamente. Escribe ahora este cdigo y gurdalo con un nombre de
archivo como ejemplo4.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
aprenderaprogramar.com, 2006-2029
Funciones bsicas en PHP: str_replace, strtolower, strtoupper...
Ten en cuenta que muchas veces para realizar comparaciones o para almacenar datos ser interesante
uniformizar la informacin 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.
La funcin count_chars sirve para contar el nmero de apariciones de un carcter en una cadena.
La sintaxis a emplear es la siguiente:
$opcModo es un entero opcional. Si no se especifica vale 0 por defecto. Sus valores admitidos son:
0: se devolver un array con el valor numrico ascii como ndice y la frecuencia de cada carcter ascii
como valor.
1: se devolver un array con el valor numrico ascii como ndice y la frecuencia de cada carcter que
aparezca al menos una vez como valor.
2: se devolver un array de caracteres que no aparecen en la cadena, con el valor numrico ascii como
ndice y la frecuencia de cada carcter ascii que no aparece como valor.
aprenderaprogramar.com, 2006-2029
Funciones bsicas en PHP: str_replace, strtolower, strtoupper...
Nota: los cdigos numricos ascii van de 0 a 255 y no todos son visibles por pantalla.
Ejemplo:
El resultado esperado es: Letra: , encontrada 1 veces. Letra: e , encontrada 3 veces. Letra: j , encontrada
1 veces. Letra: s , encontrada 2 veces. Letra: u , encontrada 1 veces. Letra: v , encontrada 1 veces
Otra funcin til es substr_count($cadena, $subcadena). Esta funcin nos devuelve el nmero de veces
que aparece la subcadena dentro de la cadena. Por ejemplo:
<meta charset="utf-8">
<?php //Ejemplo curso PHP aprenderaprogramar.com
$cadena1 = 'Pedro Juan Luis Marco Luis Pedro Juan Luis Pedro';
$cadena2 = 'Luis';
echo 'Luis aparece '.substr_count($cadena1, $cadena2). ' veces'
?>
PHP define numerosas funciones nativas para el manejo de cadenas de texto. Vamos a ver algunas:
aprenderaprogramar.com, 2006-2029
Funciones bsicas en PHP: str_replace, strtolower, strtoupper...
aprenderaprogramar.com, 2006-2029
Funciones bsicas en PHP: str_replace, strtolower, strtoupper...
Existen ms funciones para cadenas en PHP pero los programadores no las suelen conocer todas, ya
que algunas son para tareas muy especficas. No te preocupes por memorizar las funciones ni por
conocerlas todas, simplemente s consciente de su existencia y aprende a buscarlas cuando te resulten
necearias. Si en algn momento necesitas realizar tareas muy especficas con cadenas en PHP puedes
conocer todas las funciones existentes sobre cadenas acudiendo a la documentacin oficial de PHP
sobre funciones de cadenas, disponible en http://php.net/manual/es/ref.strings.php
EJERCICIO
a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",
indicar cuntas veces aparece cada vocal usando funciones para cadenas PHP.
b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",
indicar qu consonantes son las que aparecen y cuntas veces aparecen usando funciones para cadenas
PHP.
c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",
mostrar la cadena donde todas las a hayan sido sustitudas por el smbolo *. Por ejemplo en lugar de
<<El abecedario>> se habr de mostrar <<El *beced*rio>>
d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso",
mostrar la subcadena desde la primera aparicin de <<completo>> excluyendo completo, es decir,
deber mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias
funciones para cadenas PHP.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Comparar cadenas con PHP: strcmp. Rellenar cadenas: str_pad.
Cuando tengamos que comparar cadenas en PHP, se recomienda hacer uso de las funciones nativas del
lenguaje previstas para ello. Si se tratan de hacer comparaciones usando el operador == se pueden
obtener resultados extraos. Usar el operador === puede dar mejores resultados, pero en general
trataremos de usar funciones como strcmp previstas especficamente para esto.
FUNCIN STRCMP
Esta funcin realiza la comparacin segura de Strings y devuelve un valor numrico. Su sintaxis habitual
es la siguiente:
strcmp es sensible a maysculas y minsculas, es decir, no considera igual Martes que martes.
0: cuando ambas cadenas son iguales. En caso contrario el valor devuelto es distinto de cero, por lo que
si queremos saber si dos cadenas son distintas podemos usar if (strcmp ($cadena1 , $cadena2 ) !== 0) { }
Qu significa que una cadena sea mayor que otra? La comparacin se hace en funcin de los cdigos
numricos equivalentes de cada carcter. Por ejemplo la letra A tiene cdigo numrico 65 y la letra a
cdigo numrico 97. Debido a que los cdigos numricos no permiten una ordenacin alfabtica
precisa (al no ordenar correctamente maysculas y minsculas, palabras con tilde, caracteres como la
, etc.), ste no es un buen medio para ordenar alfabticamente palabras y slo tiene una utilidad
limitada.
Los parmetros aportados a la funcin deben ser Strings. En caso de que algn parmetro no sea una
cadena de texto, el resultado que devuelve la funcin puede ser impredecible.
aprenderaprogramar.com, 2006-2029
Comparar cadenas con PHP: strcmp. Rellenar cadenas: str_pad.
<meta charset="utf-8">
<?php //Ejemplos curso PHP aprenderaprogramar.com
$cadena1 = '1e3'; $cadena2 = '1000';
if ($cadena1 == $cadena2) {echo 'Segn == las dos cadenas son iguales';}
else {echo 'Segn == las dos cadenas NO son iguales'; }
echo '<br/>';
if ($cadena1 === $cadena2) {echo 'Segn === las dos cadenas son iguales';}
else {echo 'Segn === las dos cadenas NO son iguales'; }
echo '<br/>';
if (strcmp($cadena1, $cadena2) == 0) {echo 'Segn strcmp las dos cadenas son iguales';}
else {echo 'Segn strcmp las dos cadenas NO son iguales'; }
?>
El resultado ser similar a este: Segn == las dos cadenas son iguales, Segn === las dos cadenas NO son
iguales, Segn strcmp las dos cadenas NO son iguales.
Recordar que para hacer comparaciones seguras de cadenas de texto usaremos strcmp u otra funcin
PHP prevista para ello en lugar de los operadores == ===.
PHP define otras funciones nativas para comparar de cadenas de texto. Vamos a ver algunas de ellas:
$cadena1 = 'martes';
strncmp ($cadena1, Compara el nmero de caracteres numCaract
$cadena2 = 'Martes de feria';
$cadena2, entre la cadena 1 y la cadena 2 teniendo en cuenta
strncmp ($cadena1 , $cadena2 , 6)==0
$numCaract) maysculas y minsculas como diferentes.
// Devuelve false, no son iguales
$cadena1 = 'martes';
strncasecmp Compara el nmero de caracteres numCaract
$cadena2 = 'Martes de feria';
($cadena1 , $cadena2, entre la cadena 1 y la cadena 2 sin tener en cuenta
strncasecmp ($cadena1 , $cadena2 , 6)
$numCaract) maysculas y minsculas.
// Devuelve 0, son iguales
aprenderaprogramar.com, 2006-2029
Comparar cadenas con PHP: strcmp. Rellenar cadenas: str_pad.
Esta funcin realiza un relleno de cadenas ampliando la cadena hasta una longitud especificada y
rellenndola con el carcter o caracteres especificados hasta dicha longitud. La sintaxis es:
opcTipoDeRelleno es opcional e indica cmo se rellenar hasta alcanzar la nueva longitud: por la
derecha, por la izquierda o por ambos lados. Los valores que puede tomar son: STR_PAD_RIGHT,
STR_PAD_LEFT, o STR_PAD_BOTH. Si no se especifica por defecto se rellenar usando STR_PAD_RIGHT
(por la derecha).
<?php
$cadena='aprenderaprogramar.com';
echo '<p>'.str_pad($cadena,28,'*').'</p>';
echo '<p>'.str_pad($cadena,48,'cool!').'</p>';
echo '<p>'.str_pad($cadena,2,'a').'</p>';
echo '<p>'.str_pad($cadena,28,'*',STR_PAD_RIGHT).'</p>';
echo '<p>'.str_pad($cadena,29,'@',STR_PAD_BOTH).'</p>';
?>
Fjate que en este caso la longitud de la cadena es de 22 caracteres. Si le ponemos que la nueva
longitud es 29 y que rellene a ambos lados comienza colocando un carcter a derecha y otro a
izquierda, pero tras colocar 6 slo le queda 1 por colocar y ste carcter queda a derecha.
Existen ms funciones para cadenas en PHP pero los programadores no las suelen conocer todas, ya
que algunas son para tareas muy especficas. Si en algn momento necesitas realizar tareas muy
especficas con cadenas en PHP puedes conocer todas las funciones existentes acudiendo a la
documentacin oficial de PHP sobre funciones de cadenas, disponible en
http://php.net/manual/es/ref.strings.php
aprenderaprogramar.com, 2006-2029
Comparar cadenas con PHP: strcmp. Rellenar cadenas: str_pad.
EJERCICIO
a) Dadas las cadenas "aprender" y "aprende", mostrar por pantalla la cadena rellena con * a derecha e
izquierda en un nmero de asteriscos que ser siempre 5 a cada lado aunque se cambien las cadenas.
b) Dadas las cadenas "aprender" y "aprende", mostrar por pantalla si sus tres primeros caracteres son
iguales o no usando una funcin de comparacin de subcadenas.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
Con frecuencia cuando creamos webs o apps tenemos que trabajar con fechas y calendarios. Por
ejemplo en la pgina web de un hotel o un restaurante es posible que trabajemos con fechas y horas de
comienzo de reserva, de fin de reserva, etc. PHP dispone de funciones nativas para facilitar el trabajo
con fechas, horas y tiempos.
a) GMT o tiempo medio de Greenwich: ha sido un estndar ampliamente usado. GMT era el tiempo
medido en el observatorio britnico de Greenwich, que se defini como meridiano cero de la tierra. As
cada pas poda expresar su hora en funcin de la hora del meridiano de Greenwich. Por ejemplo
GMT+0 indicaba que la hora era la misma que la hora oficial en el meridiano de Greenwich, mientras
que GMT+3 indicaba que la hora eran 3 horas ms que en el meridiano de Greenwich (es decir, si es
Greenwich eran las 09:00 en un pas cuya hora fuera GMT+3 seran las 12:00).
b) UTC o tiempo universal coordinado: es el estndar que se ha adoptado como referencia que indica
un tiempo nico independientemente de en qu lugar del planeta nos encontremos, basado en las
mediciones de relojes atmicos distribuidos por distintos pases. Es el estndar que se est imponiendo
en los sistemas informticos.
La circunferencia terrestre se dividi en 24 husos horarios de modo que cada huso quedaba
referenciado a un tiempo comn (lo que se denominaba el tiempo de Greenwich).
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
Aunque desde el punto de vista de su definicin tcnica UTC y GMT no son lo mismo, a efectos
prcticos hablar de GMT+3 es lo mismo que hablar de UTC+3.
A pesar de este gran avance, el trabajo con el tiempo sigue presentando grandes dificultades en los
sistemas informticos, tanto por la falta de sincronizacin entre dispositivos como por la disparidad en
cuanto a cmo medir el tiempo y con qu grado de precisin, existencia de horarios de verano e
invierno, etc. Por ello encontrars que es relativamente frecuente encontrar que a medida que los
lenguajes de programacin evolucionan vayan introduciendo cambios en la forma de manejar el
tiempo.
Una cuestin a tener en cuenta es que el tiempo oficial de Greenwich, tiempo GMT UTC, no se
corresponde con el tiempo local en Greenwich debido a la existencia del horario de verano. Por
ejemplo, Lisboa se encuentra en el huso horario de Greenwich, pero en verano la hora local est
adelantada una hora respecto al tiempo oficial de Greenwich por motivos de ahorro energtico. Esto da
lugar a que el 5 de agosto a las 21:00 en Lisboa se corresponda con el 5 de agosto 20:00 UTC debido al
horario de verano, a pesar de que Lisboa se encuentre en el mismo huso horaria que Greenwich.
La funcin time devuelve la hora GMT actual medida como el nmero de segundos desde el 1 de Enero
de 1970 00:00:00 GMT (hora del meridiano de Greenwich) obtenidos a partir de la hora actual local del
servidor. Cuando hablamos de hora actual del servidor nos referimos a una hora local, que es distinta
segn el pas donde nos encontremos. En cambio la hora GMT es nica y no depende del pas. Hay que
tener cuidado con esta circunstancia. Por ejemplo, si trabajas con un servidor localizado en Estados
Unidos lo ms probable es que el servidor trabaje con la hora de Estados Unidos. Si quieres obtener la
hora local de tu pas, tendrs que tenerlo en cuenta para restarle o sumarle cierto nmero de horas a la
hora que te devuelva el servidor.
Por otro lado, la funcin date muestra la fecha en el formato que le indiquemos.
En general, te recomendamos que hagas pruebas para comprobar que los resultados de fecha y hora
obtenidos son los adecuados, ya que la configuracin de cada servidor y la versin de PHP empleada
puede afectar a los resultados.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo2.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
En este ejemplo hemos especificado como formato para mostrar la fecha d-m-Y (H:i:s) (donde d
representa da, m representa mes, Y representa ao, H representa hora, i representa minutos y s
representa segundos) desde el valor de time u otra fecha dada en segundos desde el 1 de Enero de
1970 00:00:00 GMT.
Como podemos observar, la funcin date da formato a la variable en segundos $time. Hay distintos
formatos para la funcin date, a continuacin indicaremos los ms importantes.
La funcin time() devuelve un valor numrico entero largo, por ejemplo 1335169779. Este nmero
representa el nmero de segundos transcurridos desde el 1 de enero de 1970 00:00:00 GMT.
Para transformar ese nmero en una fecha entendible por las personas usamos la funcin date, cuya
sintaxis general es: date (formato de salida, valorTimeValido)
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
La letra W mayscula para representar la semana del ao segn ISO-8601, considerando que las
semanas comienzan en lunes. Por ejemplo, un ao tiene 52 semanas y con este formato podemos
obtener que estamos en la semana 24 del ao.
La letra c minscula para representar la fecha y hora completa en formato ISO-8601 (tipo 2089-03-
12T12:19:21+03:00).
La letra r minscula para representar la fecha y hora completa con formato RFC-2822 (tipo Mon, 21 Jan
2089 11:41:05 -0300).
Escribe ahora este cdigo y gurdalo con un nombre de archivo como ejemplo2bis.php. A continuacin,
sube el fichero al servidor y visualiza el resultado.
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
Con este ejemplo podemos comprobar algunas cosas. En primer lugar, que la funcin time() devuelve
un nmero, mientras que la funcin date devuelve un String o cadena de texto.
En segundo lugar, que para obtener fechas anteriores al 1 de enero de 1970 debemos usar nmeros
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
maana 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 cmo responde el servidor con el que ests trabajando.
En cuarto lugar, que podemos hacer que la fecha se muestre en el formato u orden que queramos,
usando los trminos clave d, m, Y, H, i, s en el orden que queramos.
En quinto lugar, que podemos concatenar cmo se muestra una fecha (o almacenarla en otra variable si
quisiramos) concatenando el resultado de la funcin date con una cadena de texto cualquiera.
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
PHP define otras funciones nativas para manejo de fechas, horas y tiempo. Vamos a ver algunas de
ellas:
Nota: tener en cuenta que usamos UTC GMT como si fueran equivalentes.
Para entender cmo las funciones time y mktime trabajan con tiempo local hemos realizado la
siguiente prueba. Hemos colocado el siguiente cdigo en un servidor en Denver (USA), y en un servidor
en Madrid (Espaa):
La diferencia entre uno y otro tiempo es de 28800 segundos, que equivalen a 8 horas.
Hemos comprobado la hora en Denver en el momento de realizar el test y eran las 06:20:00 de la
maana, mientras que en Madrid eran las 14:20:00 horas. Como vemos, tenemos una diferencia
horaria de 8 horas entre Denver y Madrid.
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
Cuando en Madrid son las 12:00 horas del 15 de enero de 2089, en Denver sern las 04:00 horas del 15
de enero de 2089. Las 12:00 horas de un da tienen lugar en distintos instantes de tiempo en Denver y
en Madrid, por eso los resultados indican que cuando son las 12 horas en Denver ha transcurrido ms
tiempo desde las 0 horas del 1 de enero de 1970 GMT que cuando son las 12 horas en Madrid, o dicho
de otra manera, las 12 horas de un da tienen lugar antes en Madrid que en Denver. El tiempo Unix s
ser igual si pedimos el valor mktime(4,0,0,1,15,2089) en Denver: obtendremos 3756625200, el mismo
resultado que en Madrid a las 12 del medioda. Esto indica que ese instante de tiempo (4 de la maana
de 15 de enero de 2089 en Denver y 12 de la maana de la misma fecha en Madrid) es el mismo
instante, es decir, podramos estar hablando por telfono dos personas en ese momento, siendo las 4
de la maana en Denver y las 12 en Madrid.
Si pedimos la hora en Madrid para el 1 de enero de 1970 a las 00:00:00 de 1970 nos devuelve <<Tiempo
Unix para el 1 de enero de 1970 a las 00:00:00 = -3600>> Qu significa -3600? Este valor est referido
al tiempo UTC e indica qu adelanto o atraso (en segundos) tiene la hora local respecto al tiempo UTC.
O dicho de otro modo, cunto tiempo ha transcurrido desde las 00:00 horas del 1 de enero de 1970
UTC dada una fecha local. Cuando en Madrid son las 00:00:00 del 1 de enero de 1970 en el tiempo UTC
de referencia (podemos pensar que es la hora en Greenwich, meridiano de referencia, aunque esto no
es exacto) decimos que faltan 3600 segundos (1 hora) para llegar al 1 de enero de 1970. El valor
negativo indica que la fecha es anterior al 1 de enero de 1970 00:00:00 GMT, y en concreto en este caso
seran las 23 horas del 31 de diciembre de 1969 GMT cuando en Madrid son las 00:00:00 horas del 1 de
enero de 1970.
Si pedimos la hora en Denver para el 1 de enero de 1970 a las 00:00:00 de 1970 nos devuelve <<Tiempo
Unix para el 1 de enero de 1970 a las 00:00:00 = 25200>> Qu significa 25200? Este valor est referido
al tiempo UTC e indica que cuando en Denver son las 00:00:00 del 1 de enero de 1970 el tiempo UTC
de referencia est 7 horas por delante, es decir, a las 0 horas en Denver son las 7 horas UTC.
-3600 segundos equivalen a 1 hora por delante de GMT. En invierno en Madrid la hora local es
GMT+0100
25200 segundos equivalen a 7 horas por detrs de GMT. En invierno en Denver la hora local es GMT-
0700
Tener en cuenta que la hora UTC (GMT) es nica (la indicada por los organismos internacionales
encargados), mientras que las hora locales varan segn el pas, e incluso segn la zona de un pas en
que nos encontremos.
Existen ms funciones para fechas y tiempo en PHP pero los programadores no las suelen conocer
todas, ya que algunas son para tareas muy especficas. No te preocupes por memorizar las funciones ni
por conocerlas todas, simplemente s consciente de su existencia y aprende a buscarlas cuando te
resulten necearias. Si en algn momento necesitas realizar tareas muy especficas con tiempo y fechas
en PHP puedes conocer todas las funciones existentes sobre esta materia acudiendo a la
documentacin oficial de PHP sobre fecha y hora, disponible en
http://php.net/manual/es/ref.datetime.php
aprenderaprogramar.com, 2006-2029
Funciones de fecha, tiempo y hora PHP. time, date
EJERCICIO
Crea un documento HTML que conste de un ttulo h1 con el texto <<Calendario>>. En la pgina deber
mostrarse el mes y ao actuales (en el momento en que hagas el ejercicio) y para cada da del mes,
indicar si es lunes, martes, mircoles, jueves, viernes, sbado o domingo.
Ampliacin voluntaria del ejercicio: si tienes conocimiento de maquetacin con HTML y CSS te
proponemos que cambies el aspecto para que en lugar de mostrarse como texto, el calendario se
muestre con aspecto de calendario habitual. Para la maquetacin puedes usar una tabla de 7 columnas
por 7 filas (total 49 celdas) con ancho de tabla 300 pxeles y tamao de fuente en la tabla 24 pxeles. La
primera columna corresponder a lunes y la ltima a domingo como mostramos en el siguiente
ejemplo.
MAYO DE 2050
Lu Ma Mi Ju Vi Sa Do
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Ten en cuenta que debe generarse el calendario del mes en que te encuentres segn la hora local del
sistema (de tu servidor).
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
PHP es un lenguaje con marcada influencia anglosajona debido a sus orgenes y desarrollo. Pero cuando
estamos creando pginas web es frecuente que queremos obtener fechas expresadas en el lenguaje
con el que estamos desarrollando la web. Vamos a estudiar cmo hacerlo.
SETLOCALE
La funcin setlocale es una funcin PHP utilizada para indicar la configuracin regional que debe ser
usada para realizar determinadas tareas. Su sintaxis es la siguiente:
Esta funcin pretende que por ejemplo en lugar de 2089 July, Mon 21st pueda aparecer algo como 21
de julio de 2089 si lo deseamos. Para ello indicaramos que el proceso afectado es la fecha y que la
configuracin es el espaol: setlocale (LC_TIME, "es_ES");
b) Segn el servidor que estemos utilizando, ser posible usar unos lenguajes o no.
c) La comunicacin entre las aplicaciones web y otros entornos como bases de datos se puede ver
afectada y pueden surgir problemas.
En resumen, debes tener presente que el cambio de la configuracin local del servidor puede ser
compleja o no responder como cabra esperar: podrs ver miles de consultas en foros sobre este tipo
de problemas, y muchas de ellas sin respuesta. Es recomendable hacer pruebas y si es necesario
programar pequeos scripts o funciones para lograr el funcionamiento que nosotros deseamos. Con
esto queremos decir que puede resultar ms sencillo trabajar del modo natural tal y como est
configurado el servidor, en lugar de tratar de alterar esta configuracin para que el servidor trabaje en
nuestro idioma.
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
Nosotros en este curso vamos a limitarnos a estudiar y ver un ejemplo de uso para mostrar fechas
usando la funcin de php strftime que estudiaremos a continuacin combinada con el uso de setlocale
con LC_TIME. El uso de setlocale puede tener efectos colaterales (afectar a otros procesos) por lo que
recomendamos no usarlo sin hacer pruebas exhaustivas para verificar la respuesta esperada.
Los cdigos de pases dependen del sistema operativo con el que estemos trabajando. La funcin
setLocale admite que se introduzca una lista de cdigos de pases con la esperanza de que algunos de
ellos sea reconocido por el sistema (lo cual habla ya de las dificultades que se encuentran para realizar
este tipo de operaciones).
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
(*) Tener en cuenta que no todos los cdigos funcionarn, ya que depende del servidor con el que
estemos trabajando el que sean reconocidos o no. Recomendamos usar es_ES.UTF-8. Hay ms cdigos
aparte de los aqu indicados.
La funcin strftime es una funcin PHP utilizada para obtener una cadena de texto expresada en el
lenguaje de la configuracin local del servidor (por defecto o establecida a travs de setlocale). Su
sintaxis es la siguiente:
$valorTiempoEnSegundos indica los segundos transcurridos desde el 1 de enero de 1970 00:00:00 GMT.
Otro ejemplo: echo 'Fecha actual: '.strftime("%A, %d de %B de %Y").'<br/>'; devolver algo similar a
<<jueves, 04 de septiembre de 2089>> si la configuracin de idioma del servidor es espaol.
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
Adems de las marcas indicadas existen otras como %n para insertar un salto de lnea %t para insertar
una tabulacin.
Ten en cuenta que no todos los servidores disponen de todos los cdigos ni todos los servidores
respondern como se espera cuando trates de hacer que muestren una fecha en un formato dado. Por
ejemplo algunos servidores no admiten %p ni %P, en este caso si intentas que se muestre AM/PM no se
mostrar nada. Tendrs que resolverlo escribiendo cdigo especfico para lograrlo.
Para probar el funcionamiento de esta funcin, en combinacin con setlocale, escribe este cdigo y
comprueba qu resultados obtienes:
<meta charset='utf-8'>
<?php
$miFecha= gmmktime(12,0,0,1,15,2089);
echo 'Antes de setlocale strftime devuelve: '.strftime("%A, %d de %B de %Y",
$miFecha).'<br/>';
echo 'Antes de setlocale date devuelve: '.date("l, d-m-Y (H:i:s)", $miFecha).'<br/>';
setlocale(LC_TIME,"es_ES");
echo 'Despus de setlocale es_ES date devuelve: '.date("l, d-m-Y (H:i:s)",
$miFecha).'<br/>';
echo 'Despus de setlocale es_ES strftime devuelve: '.strftime("%A, %d de %B de %Y",
$miFecha).'<br/>';
setlocale(LC_TIME, 'es_ES.UTF-8');
echo 'Despus de setlocale es_ES.UTF-8 date devuelve: '.date("l, d-m-Y (H:i:s)",
$miFecha).'<br/>';
echo 'Despus de setlocale es_ES.UTF-8 strftime devuelve: '.strftime("%A, %d de %B de %Y",
$miFecha).'<br/>';
setlocale(LC_TIME, 'de_DE.UTF-8');
echo 'Despus de setlocale de_DE.UTF-8 date devuelve: '.date("l, d-m-Y (H:i:s)",
$miFecha).'<br/>';
echo 'Despus de setlocale de_DE.UTF-8 strftime devuelve: '.strftime("%A, %d de %B de %Y",
$miFecha).'<br/>';
?>
El resultado que nosotros hemos obtenido con un servidor ubicado en Denver (USA) es el siguiente:
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
Nota: comprueba que usas como codificacin para tu archivo php Codificacin UTF-8 sin BOM. Ten en
cuenta que los resultados que obtengas pueden ser distintos a estos ya que dependen de la
configuracin que tenga establecida tu servidor.
Hemos creado la variable $miFecha cuyo contenido es el nmero de segundos desde el 1 de enero de
1970 00:00:00 GMT para la fecha 15 de enero de 2089 12:00:00 GMT. Como la hora local tiene un
retraso de 7 horas respecto de la hora GMT, al pedir que se muestre por pantalla la fecha y hora con
strftime se nos muestra <<Saturday, 15 de January de 2089>>. Este valor nos viene en ingls porque la
configuracin local del servidor es idioma ingls.
Al cambiar la configuracin local de idioma con setlocale a es_ES obtenemos la fecha en espaol, pero
en lugar de sbado se nos muestra s?bado. La funcin date sigue devolviendo la fecha en ingls porque
esta funcin no es sensible a la configuracin local de idioma.
A modo de ejemplo, hemos cambiado la configuracin a alemn para comprobar lo que se visualiza (la
fecha escrita en alemn).
Como vemos, el trabajo relacionado con fecha, hora e idioma puede resultar problemtico y no
tenemos ms remedio que realizar pruebas hasta obtener el resultado deseado.
La funcin date_default_timezone_set es una funcin PHP utilizada para establecer una zona horaria
especfica como configuracin local para el servidor. De esta manera, podemos hacer que al pedir la
fecha y hora actual nos muestre la fecha y hora de un pas (o regin de un pas) concreto. Su sintaxis es
la siguiente:
date_default_timezone_set ($valorDeTimezone);
Los valores de $valorDeTimezone han de escogerse entre los valores admitidos. En la siguiente tabla se
muestran algunos de ellos (nota: algunos valores pueden no ser reconocidos, recomendamos hacer
pruebas para comprobarlo):
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
Para probar el funcionamiento de esta funcin, en combinacin con setlocale, escribe este cdigo y
comprueba qu resultados obtienes:
<meta charset='utf-8'>
<?php
$miFecha= gmmktime(12,0,0,1,15,2089);
setlocale(LC_TIME, 'es_ES.UTF-8');
echo 'Despus de setlocale es_ES.UTF-8 strftime devuelve: '.strftime("%A, %d de %B de %Y
%H:%M", $miFecha).'<br/>';
aprenderaprogramar.com, 2006-2029
setlocale y strftime php: mostrar fechas en espaol u otro idioma.
El resultado que nosotros hemos obtenido con un servidor ubicado en Denver (USA) es el siguiente:
Fjate cmo de obtener la hora local en Denver hemos pasado a obtener la hora local en Madrid (8
horas adelantada respecto a la de Denver) gracias al uso de date_default_timezone_set.
No siempre se obtienen los resultados deseados, por lo que es imprescindible realizar pruebas.
EJERCICIO 1
Crea una funcin php de nombre mostrarDiasMes que reciba como argumentos un mes (valor
numrico de 1 a 12) y un ao (valor numrico de 4 dgitos) y muestre por pantalla el texto extendido
correspondiente a la fecha en idioma espaol. Por ejemplo mostrarDiasMes(1, 2089) deber devolver:
1 de enero de 2089, 2 de enero de 2089, 3 de enero de 2089, 4 de enero de 2089 hasta 31 de enero
de 2089.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Repite el ejercicio anterior, pero en esta ocasin mostrando la fecha en formato de hora tal y como se
usa en Holanda y en idioma holands.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Envo de datos de un formulario. Mtodos GET y POST.
Cuando un usuario rellena un formulario en una pgina web los datos hay que enviarlos de alguna
manera. Vamos a considerar las dos formas de envo de datos posibles: usando el mtodo POST o
usando el mtodo GET. Debes conocer cmo se generan formularios HTML antes de leer esta entrega.
En el ejemplo anterior la accin que se ejecutar cuando el usuario pulse el botn Enviar (submit)
ser el envo de los datos a la url especificada usando el mtodo get.
Este formulario consta de varios campos que al usuario se le solicitan como Nombre, Apellidos, Correo
electrnico, Pas y Mensaje. Posiblemente los nombres de los campos en el cdigo HTML sean del tipo
nombre_user, apellidos_user, email_user, pais_user y msg.
aprenderaprogramar.com, 2006-2029
Envo de datos de un formulario. Mtodos GET y POST.
La diferencia entre los mtodos get y post radica en la forma de enviar los datos a la pgina cuando se
pulsa el botn Enviar. Mientras que el mtodo GET enva los datos usando la URL, el mtodo POST los
enva de forma que no podemos verlos.
http://www.aprenderaprogramar.com/newuser.php?nombre=Pepe&apellido=Flores&email=h52turam
%40uco.es&sexo=Mujer
aprenderaprogramar.com, 2006-2029
Envo de datos de un formulario. Mtodos GET y POST.
El smbolo ? indica dnde empiezan los parmetros que se reciben desde el formulario que ha enviado
los datos a la pgina.
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 smbolo ? y para las restantes el smbolo
&.
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 h52turam@uco.es. Como vemos, el carcter @ ha sido sustituido por los caracteres
%40. Estas equivalencias se introducen automticamente en la transmisin de datos debido a que las
URLs no admiten determinados caracteres como letras con tildes, arrobas y otros. No debes
preocuparte por esta codificacin, 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 estn ocurriendo cosas extraas o errores.
Hemos visto el resultado de un envo por el mtodo get. En el caso de un envo de datos usando el
mtodo POST, aunque estos datos tambin sern 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 envo con el mtodo post necesitaramos otras herramientas (por ejemplo valernos del lenguaje PHP
para recuperar el valor de esos campos).
El resultado final con ambos mtodos podemos decir que es el mismo: la informacin se transmite de
un lado a otro. La diferencia radica en que con el mtodo GET podemos ver directamente los
parmetros pasados ya que estn dentro de la URL mientras que con el mtodo POST los parmetros
quedan ocultos y para rescatarlos hay que usar otras herramientas.
Cuando usamos el mtodo post los datos enviados desde el formulario no son visibles, pero s son
recuperables usando las instrucciones adecuadas.
aprenderaprogramar.com, 2006-2029
Envo de datos de un formulario. Mtodos GET y POST.
EJERCICIO
Crea un archivo HTML que contenga un formulario que contenga un checkbox (Desea recibir factura?),
dos input radio (Varn/Mujer), tres input tipo texto (Nombre, Direccin, Email) y un combobox para
forma de envo (normal, por avin o urgente), junto con un botn de envo. Establece como url de envo
la direccin recibe.php y mtodo de envo get y comprueba que se recuperan los datos enviados
correctamente a travs de la url.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
Cuando un usuario pulsa el botn enviar de un formulario, la informacin que contenan sus campos es
enviada a una direccin 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 informacin del formulario viaja almacenada en variables que podremos recuperar y utilizar
mediante PHP.
La recuperacin de variables con PHP es bastante fcil, ya sean datos de un formulario enviado por el
mtodo post (parmetros no visibles) o por el mtodo get (parmetros en la URL s visibles). Antes que
nada hay que aclarar que hay varios mtodos para recuperar variables con PHP. Para los formularios
tenemos los mtodos GET, POST, y REQUEST.
GET nos permite recuperar parmetros desde la URL o desde formularios enviados con el mtodo GET.
Escribe este cdigo y gurdalo con un nombre de archivo como ejemplo1.html. A continuacin, sube el
fichero al servidor, introduce un nombre en el campo del formulario y visualiza el resultado.
Antes de pulsar sobre el botn enviar, debemos crear el fichero ejemploGet.php que es el indicado en
el formulario para el envo de los datos.
Escribe este cdigo y gurdalo con un nombre de archivo como ejemploGet.php. A continuacin, sube
el fichero al servidor en la misma carpeta donde subiste el ejemplo1.html
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
El primer archivo es un documento HTML. Para ser ms correctos, deberamos haberlo escrito de esta
manera:
Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un
cdigo HTML (o PHP) incluso cuando la sintaxis o la definicin del documento no es del todo correcta.
Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo ms correctos
posibles a la hora de escribir cdigo web.
Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el mtodo de envo de
los datos va a ser el mtodo get y que la URL de destino va a ser ejemploGet.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 lnea $nombre = $_GET['nombre']; que significa que creamos una
variable php denominada $nombre donde almacenamos la informacin del campo nombre que recibe
la URL a travs del mtodo get proviniente del formulario. Si tuviramos otros campos que hubiramos
definido como apellidos, telfono, edad, el tratamiento sera similar. Por ejemplo:
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
$apellidos = $_GET['apellidos'];
$telefono = $_GET['celular'];
$edadPersona = $_GET['edad'];
Fjate en que una cosa es la variable en la que almacenamos la informacin 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 informacin 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 informacin 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 eleccin del programador.
Como podemos observar, recuperar datos enviados por un formulario con el mtodo GET es bastante
simple usando PHP.
EJERCICIO RESUELTO N 1
Disear un formulario web que pida la altura y el dimetro de un cilindro en metros. Una vez el usuario
introduzca los datos y pulse el botn calcular, deber calcularse el volumen del cilindro y mostrarse el
resultado en el navegador.
SOLUCIN
1. Inicio
2. Mostrar Introduzca el dimetro, 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 cbicos
7. Fin
Esquematizar la solucin en pseudocdigo es una buena idea antes de realizar la programacin, pues
nos permite definir conceptualmente cmo va a ser nuestro cdigo antes de escribirlo. Es sobre todo
adecuado para personas que se estn iniciando en la programacin.
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
echo "<br/> El volumen del cilindro es de". $volumen. "metros cbicos";
?>
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
Fjate que hemos escrito la potencia del radio como $radio * $radio. En otros lenguajes existe el
operador de exponenciacin, pero en php esta operacin se tiene que realizar recurriendo a una
funcin matemtica. Esta funcin la estudiaremos en otro momento.
Finalmente obtenemos un resultado. Haz pruebas introduciendo como valores de dimetro 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 nmero es el punto.
EJERCICIO RESUELTO N 2
Disear 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
informacin se debe calcular y mostrar el precio medio del producto.
SOLUCIN
1. Inicio
2. Mostrar Introduzca el precio del producto en el establecimiento nmero 1, en
euros : Pedir Precio1
3. Mostrar Introduzca el precio del producto en el establecimiento nmero 2, en
euros : Pedir Precio2
4. Mostrar Introduzca el precio del producto en el establecimiento nmero 3, en
euros : Pedir Precio3
5. Media = (Precio1 + Precio2 + Precio3) / 3
6. Mostrar El precio medio del producto es, Media, euros
7. Fin
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrs
comprobar que los acentos o tildes no se ven bien.
Recordarte que la solucin a esto es, cuando estamos trabajando con Notepad++, elegir en el men
Formato la opcin Codificar en UTF-8 sin BOM. En caso de que por error el archivo est en otro
formato, elige la opcin Convertir en UTF-8 sin BOM para dejar correctamente la codificacin del
archivo. Tambin puede ser necesario introducir la etiqueta: <meta charset="utf-8"> entre las etiquetas
<head> </head> para lograr que la visualizacin sea correcta.
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
Por otro lado necesitamos el archivo php para mostrar los resultados:
echo "<br/> El precio medio del producto es de ". $media. " euros";
?>
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
Si has realizado el ejercicio anterior habrs comprobado que la URL una vez se pulsa el botn de envo
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 estn en la URL. Ahora bien, los datos venan del formulario.
Desde dnde se estn 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
Llegamos a una conclusin: los datos pasan del formulario a la URL, y desde la URL son recuperados por
el intrprete PHP usando $_GET[nombreDelParametro]. Por tanto los datos no vienen directamente
del formulario, sino que son recuperados a travs de la URL.
EJERCICIO PROPUESTO
Disear un desarrollo web simple con PHP que d respuesta a la necesidad que se plantea a
continuacin.
aprenderaprogramar.com, 2006-2029
Recuperar datos de formularios HTML con PHP. $_GET
Un operario de una fbrica recibe cada cierto tiempo un depsito cilndrico de dimensiones variables,
que debe llenar de aceite a travs de una toma con cierto caudal disponible. Se desea crear una
aplicacin web que le indique cunto tiempo transcurrir hasta el llenado del depsito. El caudal
disponible se considera estable para los tiempos que tardan los llenados de depsitos y lo facilita el
propio operario, aportando el dato en litros por minuto.
1. Inicio
2. Mostrar Introduzca el caudal disponible en litros / minuto: Pedir Q
3. Mostrar Introduzca el dimetro del depsito, en metros : Pedir D
4. Mostrar Introduzca la altura del depsito, 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 depsito es de, tminutos, minutos
10. Fin
Realiza el ejercicio y comprueba los resultados. Para que tengas una referencia, si el caudal disponible
es de 125 litros por minuto y los valores de dimetro y altura del cilindro son 2.15 y 1.75, el resultado
que debes obtener es que el depsito tarda en llenarse ser de aproximadamente 50 minutos.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
Cuando un usuario pulsa el botn enviar de un formulario, la informacin que contenan sus campos es
enviada a una direccin 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 informacin del formulario viaja almacenada en variables que podremos recuperar y utilizar
mediante PHP. Una de las formas de recuperacin consiste en usar $_POST.
POST nos permite recuperar datos enviados desde formularios con el mtodo POST. Escribe este cdigo
y gurdalo con un nombre de archivo como ejemplo1.html. A continuacin, sube el fichero al servidor,
introduce un nombre en el campo y visualiza el resultado.
Antes de pulsar sobre el botn enviar, debemos crear el fichero ejemploPost.php que es el indicado en
el formulario para el envo de los datos.
Escribe este cdigo y gurdalo con un nombre de archivo como ejemploPost.php. A continuacin, sube
el fichero al servidor en la misma carpeta donde subiste el fichero html.
<?php
$nombre = $_POST['nombre'];
echo $nombre;
?>
Una vez completemos el paso anterior, pulsaremos sobre el botn enviar del ejemplo1.html y veremos
una imagen similar a la siguiente.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
Vamos a explicar el proceso que ha tenido lugar. El primer archivo es un documento HTML. Para ser
ms correctos, deberamos haberlo escrito de esta manera:
Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un
cdigo HTML (o PHP) incluso cuando la sintaxis o la definicin del documento no es del todo correcta.
Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo ms correctos
posibles a la hora de escribir cdigo web.
Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el mtodo de envo de
los datos va a ser el mtodo 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 lnea $nombre = $_POST['nombre']; que significa que creamos una
variable php denominada $nombre donde almacenamos la informacin del campo nombre a travs
del mtodo post proveniente del formulario. Si tuviramos otros campos que hubiramos definido
como apellidos, telfono, edad, el tratamiento sera similar. Por ejemplo:
$apellidos = $_POST['apellidos'];
$telefono = $_POST['celular'];
$edadPersona = $_POST['edad'];
Fjate en que una cosa es la variable en la que almacenamos la informacin 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 informacin 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
informacin proveniente 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 eleccin del programador.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
Como podemos observar, recuperar datos enviados por un formulario con el mtodo POST es bastante
simple usando PHP.
EJERCICIO RESUELTO N 1
Disear un formulario web que pida la altura y el dimetro de un cilindro en metros. Una vez el usuario
introduzca los datos y pulse el botn calcular, deber calcularse el volumen del cilindro y mostrarse el
resultado en el navegador.
SOLUCIN
1. Inicio
2. Mostrar Introduzca el dimetro, 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 cbicos
7. Fin
Esquematizar la solucin en pseudocdigo es una buena idea antes de realizar la programacin, pues
nos permite definir conceptualmente cmo va a ser nuestro cdigo antes de escribirlo. Es sobre todo
adecuado para personas que se estn iniciando en la programacin.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
echo "<br/> El volumen del cilindro es de". $volumen. "metros cbicos";
?>
Fjate que hemos escrito la potencia del radio como $radio * $radio. En otros lenguajes existe el
operador de exponenciacin, pero en php esta operacin se tiene que realizar recurriendo a una
funcin matemtica. Esta funcin la estudiaremos en otro momento.
Finalmente obtenemos un resultado. Haz pruebas introduciendo como valores de dimetro 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 nmero es el punto.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
EJERCICIO RESUELTO N 2
Disear 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
informacin se debe calcular y mostrar el precio medio del producto.
SOLUCIN
1. Inicio
2. Mostrar Introduzca el precio del producto en el establecimiento nmero 1, en
euros : Pedir Precio1
3. Mostrar Introduzca el precio del producto en el establecimiento nmero 2, en
euros : Pedir Precio2
4. Mostrar Introduzca el precio del producto en el establecimiento nmero 3, en
euros : Pedir Precio3
5. Media = (Precio1 + Precio2 + Precio3) / 3
6. Mostrar El precio medio del producto es, Media, euros
7. Fin
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrs
comprobar que los acentos o tildes no se ven bien.
Recordarte que la solucin a esto es, cuando estamos trabajando con Notepad++, elegir en el men
Formato la opcin Codificar en UTF-8 sin BOM. En caso de que por error el archivo est en otro
formato, elige la opcin Convertir en UTF-8 sin BOM para dejar correctamente la codificacin del
archivo. Tambin puede ser necesario introducir la etiqueta: <meta charset="utf-8"> entre las etiquetas
<head> </head> para lograr que la visualizacin sea correcta.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
EJERCICIO PROPUESTO
Disear un desarrollo web simple con PHP que d respuesta a la necesidad que se plantea a
continuacin.
Un operario de una fbrica recibe cada cierto tiempo un depsito cilndrico de dimensiones variables,
que debe llenar de aceite a travs de una toma con cierto caudal disponible. Se desea crear una
aplicacin web que le indique cunto tiempo transcurrir hasta el llenado del depsito. El caudal
disponible se considera estable para los tiempos que tardan los llenados de depsitos y lo facilita el
propio operario, aportando el dato en litros por minuto.
1. Inicio
2. Mostrar Introduzca el caudal disponible en litros / minuto: Pedir Q
3. Mostrar Introduzca el dimetro del depsito, en metros : Pedir D
4. Mostrar Introduzca la altura del depsito, 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 depsito es de, tminutos, minutos
10. Fin
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_POST. Ejemplos y ejercicios.
Realiza el ejercicio y comprueba los resultados. Para que tengas una referencia, si el caudal disponible
es de 125 litros por minuto y los valores de dimetro y altura del cilindro son 2.15 y 1.75, el resultado
que debes obtener es que el depsito tarda en llenarse ser de aproximadamente 50 minutos.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
Cuando un usuario pulsa el botn enviar de un formulario, la informacin que contenan sus campos es
enviada a una direccin 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 informacin del formulario viaja almacenada en variables que podremos recuperar y utilizar
mediante PHP. Una de las formas de recuperacin consiste en usar $_REQUEST.
REQUEST nos permite capturar variables enviadas desde formularios con los mtodos GET o POST.
Vamos a ver dos ejemplos de formularios (ejemplo1.html y ejemplo2.html), que en un caso se enviarn
usando GET y en otro usando POST. Ambos formularios enviarn la informacin (action) a una pgina
comn desde donde recuperaremos los datos usando $_REQUEST.
El cdigo de los archivos html sera el siguiente para ejemplo1.html y ejemplo2.html. Escribe el cdigo
en un editor de texto como Notepad++ y visualzalos en tu navegador:
Como podemos observar, el ejemplo1.html enva los datos por GET mientras que el ejemplo2.html
enva los datos por POST. Ahora bien, la accin o destino donde se enviarn los datos es la misma en los
dos casos, la direccin ejemploRequest.php.
Escribe este cdigo y gurdalo con un nombre de archivo como ejemploRequest.php. A continuacin,
sube el fichero al servidor en la misma carpeta donde subiste el ejemplo1.html y ejemplo2.html
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
Vamos a explicar el proceso que ha tenido lugar. El primer archivo es un documento HTML. Para ser
ms correctos, deberamos haberlo escrito de esta manera:
Sin embargo, comprobamos que los navegadores tratan de interpretar y mostrar el resultado de un
cdigo HTML (o PHP) incluso cuando la sintaxis o la definicin del documento no es del todo correcta.
Esto debemos conocerlo, sin embargo recomendamos que siempre se trate de ser lo ms correctos
posibles a la hora de escribir cdigo web.
Vemos que hemos definido un formulario en cuya cabecera hemos puesto que el mtodo de envo de
los datos va a ser el mtodo 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 lnea
$nombre = $_REQUEST['nombre']; que significa que creamos una variable php denominada $nombre
donde almacenamos la informacin del campo nombre que recibe la URL a travs del mtodo GET
proviniente del formulario. Si tuviramos otros campos que hubiramos definido como apellidos,
telfono, edad, el tratamiento sera similar. Por ejemplo:
$apellidos = $_REQUEST['apellidos'];
$telefono = $_REQUEST['celular'];
$edadPersona = $_REQUEST['edad'];
Fjate en que una cosa es la variable en la que almacenamos la informacin 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
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
Con frecuencia los nombres de las variables y de los campos del formulario se hacen coincidir, pero en
otras ocasiones no. Esto queda a eleccin del programador.
EJERCICIO RESUELTO N 1
Disear un formulario web que pida la altura y el dimetro de un cilindro en metros. Una vez el usuario
introduzca los datos y pulse el botn calcular, deber calcularse el volumen del cilindro y mostrarse el
resultado en el navegador. El envo de datos debe hacerse por GET y la recuperacin con REQUEST.
SOLUCIN
1. Inicio
2. Mostrar Introduzca el dimetro, 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 cbicos
7. Fin
Esquematizar la solucin en pseudocdigo es una buena idea antes de realizar la programacin, pues
nos permite definir conceptualmente cmo va a ser nuestro cdigo antes de escribirlo. Es sobre todo
adecuado para personas que se estn iniciando en la programacin. Crearemos el archivo html:
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
echo "<br/> El volumen del cilindro es de". $volumen. "metros cbicos";
?>
Fjate que hemos escrito la potencia del radio como $radio * $radio. En otros lenguajes existe el
operador de exponenciacin, pero en php esta operacin se tiene que realizar recurriendo a una
funcin matemtica. Esta funcin la estudiaremos en otro momento.
Finalmente obtenemos un resultado. Haz pruebas introduciendo como valores de dimetro 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 nmero es el punto.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
EJERCICIO RESUELTO N 2
Disear 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
informacin se debe calcular y mostrar el precio medio del producto. El envo de datos debe hacerse
por POST y la recuperacin con REQUEST.
SOLUCIN
1. Inicio
2. Mostrar Introduzca el precio del producto en el establecimiento nmero 1, en
euros : Pedir Precio1
3. Mostrar Introduzca el precio del producto en el establecimiento nmero 2, en
euros : Pedir Precio2
4. Mostrar Introduzca el precio del producto en el establecimiento nmero 3, en
euros : Pedir Precio3
5. Media = (Precio1 + Precio2 + Precio3) / 3
6. Mostrar El precio medio del producto es, Media, euros
7. Fin
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
Es posible que durante el desarrollo del curso te encuentres visualizaciones de este tipo, donde podrs
comprobar que los acentos o tildes no se ven bien.
Recordarte que la solucin a esto es, cuando estamos trabajando con Notepad++, elegir en el men
Formato la opcin Codificar en UTF-8 sin BOM. En caso de que por error el archivo est en otro
formato, elige la opcin Convertir en UTF-8 sin BOM para dejar correctamente la codificacin del
archivo. Tambin puede ser necesario introducir la etiqueta: <meta charset="utf-8"> entre las etiquetas
<head> </head> para lograr que la visualizacin sea correcta.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
EJERCICIO PROPUESTO
Disear un desarrollo web simple con PHP que d respuesta a la necesidad que se plantea a
continuacin. Un operario de una fbrica recibe cada cierto tiempo un depsito cilndrico de
dimensiones variables, que debe llenar de aceite a travs de una toma con cierto caudal disponible. Se
desea crear una aplicacin web que le indique cunto tiempo transcurrir hasta el llenado del depsito.
El caudal disponible se considera estable para los tiempos que tardan los llenados de depsitos y lo
facilita el propio operario, aportando el dato en litros por minuto.
1. Inicio
2. Mostrar Introduzca el caudal disponible en litros / minuto: Pedir Q
3. Mostrar Introduzca el dimetro del depsito, en metros : Pedir D
4. Mostrar Introduzca la altura del depsito, 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 depsito es de, tminutos, minutos
10. Fin
Realiza el ejercicio y comprueba los resultados. Para que tengas una referencia, si el caudal disponible
es de 125 litros por minuto y los valores de dimetro y altura del cilindro son 2.15 y 1.75, el resultado
que debes obtener es que el depsito tarda en llenarse ser de aproximadamente 50 minutos.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
Ahora nos podemos estar preguntado: Qu pasara si envo una variable nombre con un formulario
por mtodo post y adems en la pgina de recuperacin de datos tambin est definida dicha variable
en la url y obtengo dicho variable con $_REQUEST? Cul me devolvera?
aprenderaprogramar.com, 2006-2029
Procesar datos de un formulario en PHP. $_REQUEST. Ejemplos y ejercicios.
Como podemos observar, el valor que toma $_REQUEST es primero el valor enviado por POST y
despus 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 tambin que una URL es modificable por el usuario fcilmente. Por ejemplo si un formulario
enva datos as: www.aprenderaprogramar.com/action.php?nombre=pedro, el usuario podra 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 transmisin de datos relativos a precios,
ya que si el precio se transmite por get ser manipulable por el usuario (algo indeseable). Get tiene la
ventaja de que los datos son visibles y ms fciles de seguir y localizar, y el inconveniente de que puede
ser manipulado ms fcilmente.
aprenderaprogramar.com, 2006-2029
Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.
Cuando necesitamos crear, guardar, leer o escribir archivos en la creacin 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 bsico en php.
FUNCIN FOPEN
Donde $fp es el descriptor o identificador del fichero abierto que necesitaremos ms tarde.
fichero puede ser un archivo de texto, un archivo con extensin .php, o incluso la URL de una pgina
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 conexin hacia la web especificada. Siempre debe
ponrsele una barra ( / ) al final.
Si fichero no empieza con ninguna de las cosas anteriormente dichas, se abre una conexin "directa"
con el archivo especificado. Si no existe el archivo o direccin especificadas, se devuelve un error.
aprenderaprogramar.com, 2006-2029
Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.
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 slo 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 slo para escritura. La escritura comienza al inicio del archivo, y
elimina el contenido previo. 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 elimina el contenido previo. Si el archivo no existe, intenta crearlo.
a Abre el archivo para slo escritura. La escritura comenzar al final del archivo, sin
afectar al contenido previo. 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, sin afectar al contenido previo. Si el fichero no existe se intenta crear.
Ejemplos
Ahora bien, con esta simple instruccin slo 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.
FUNCIN FCLOSE
Esta funcin debe ser utilizada despus de abrir y manipular el archivo como veremos en los siguientes
ejemplos.
aprenderaprogramar.com, 2006-2029
Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.
La funcin fgets() recupera el contenido de una lnea de un archivo. Su sintaxis general es:
Ejemplo
Ahora bien, con esto slo leeremos la primera lnea del fichero de texto, si quisiramos leer lnea a lnea
hasta el final necesitaramos el uso de un bucle while, por ejemplo.
Esto nos mostrar el contenido del fichero de texto lnea a lnea. Comprobars que hemos incluido una
nueva funcin denominada feof (que viene significando algo as como file end of file o marca de final
de archivo). La sintaxis general para esta funcin es: feof (identificadorDelArchivo)
La funcin feof nos devuelve true cuando hemos llegado al final de archivo y false si no lo hemos
alcanzado todava. La condicin while (!feof($fp)) podramos haberla escrito tambin 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, fjate como una vez hemos de terminado de operar con el fichero escribimos la instruccin
fclose(identificadorDelFichero) para cerrar la conexin, cosa que debemos hacer siempre.
aprenderaprogramar.com, 2006-2029
Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.
FUNCIN FPUTS
Ejemplo
Fjate que al realizar la apertura del fichero en modo w, si el fichero no existe, ser creado. Fjate
tambin como una vez hemos de terminado de operar con el fichero escribimos la instruccin
fclose(identificadorDelFichero) para cerrar la conexin, cosa que debemos hacer siempre.
Si ahora abrimos el fichero con algn editor de textos como Notepad, bloc de notas o cualquier otro,
veremos lo siguiente:
EJERCICIO
a) Una funcin (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que
reciba tres nmeros enteros como parmetros y proceda a escribir dichos nmeros en tres lneas en un
archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.
aprenderaprogramar.com, 2006-2029
Manejo de archivos con PHP. Funciones fopen, fgets, fputs y fclose.
b) Una funcin denominada obtenerSuma (tipo funcin, devolver un valor numrico) que reciba una
ruta de archivo como parmetro, lea los nmeros existentes en cada lnea del archivo, y devuelva la
suma de todos esos nmeros.
c) Una funcin denominada obtenerArrNum (tipo funcin, devolver un array de valores numricos)
que reciba una ruta de archivo como parmetro, lea los nmeros existentes en cada lnea del archivo, y
devuelva un array cuyo ndice 0 contendr el nmero existente en la primera lnea, cuyo ndice 1
contendr el nmero existente en la segunda lnea y as sucesivamente.
d) Crea cdigo php donde a travs de la funcin escribirTresNumeros escribas en el fichero los nmeros
2, 8, 14. Luego, mediante la funcin obtenerSuma muestra por pantalla el resultado de sumar los
nmeros existentes en el archivo. Finalmente, mediante la funcin obtenerArrNum obtn el array,
recrrelo y muestra cada uno de los elementos del array.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Lectura y escritura de archivos de texto con PHP. fwrite
En esta ocasin veremos unos ejemplos prcticos 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 tambin puede valer el bloc de notas de Windows) con algunas lneas de texto.
LECTURA DE FICHEROS
Para leer un archivo de texto lnea a lnea en PHP vamos a utilizar la funcin fgets(). Por ejemplo si
queremos leer lnea por lnea el archivo 'archivo.txt' que se encuentra ubicado en la misma carpeta que
el archivo 'leer.php', tenemos que escribir en el archivo PHP:
Como podemos observar, lo primero que debemos hacer es abrir el fichero 'archivo.txt' y luego ir
leyendo lnea a lnea hasta llegar al final. Recordemos que r es el modo de apertura que abre el
archivo slo para lectura. La lectura comienza al inicio del archivo. Despus 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.
aprenderaprogramar.com, 2006-2029
Lectura y escritura de archivos de texto con PHP. fwrite
Lo que hemos hecho con nuestro pequeo programa es ir extrayendo lneas mientras no se detecta el
final del fichero (feof). La condicin while(!feof($file)) tambin podra haberse escrito de esta otra
manera: while(feof($file)==false), con lo que obtendramos el mismo resultado.
ESCRITURA DE FICHEROS
Para escribir un archivo de texto en PHP podemos utilizar la funcin fwrite(). Por ejemplo si queremos
escribir lnea por lnea un archivo 'archivo.txt' que se encuentre ubicado en la misma carpeta que el
archivo 'escribir.php', tenemos que escribir en el archivo PHP:
Nota: PHP_EOL (end of line) introduce un salto de lnea en PHP. Mediante la concatenacin con un
punto forzamos el salto de lnea despus del texto introducido.
Una vez escribimos en nuestro navegador la ruta del fichero escribir.php se ejecuta el cdigo asociado.
Despus de la ejecucin, podemos ver el fichero creado con un editor de texto cualquiera y
observaremos el siguiente contenido:
aprenderaprogramar.com, 2006-2029
Lectura y escritura de archivos de texto con PHP. fwrite
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 slo para escritura. La escritura comienza al inicio del archivo, y elimina el contenido
previo del archivo. Si el archivo no existe, intenta crearlo.
A veces no queremos reemplazar el contenido que exista en un fichero de texto, sino aadir un
contenido adicional al final de lo que ya exista en el mismo. Vamos a ver cmo podemos hacerlo.
A modo de ejemplo aadiremos unas lneas de texto al final del fichero anteriormente escrito:
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 slo escritura. La escritura comenzar al final del archivo sin eliminar el
contenido previo existente. 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 aadido las dos nuevas lneas al final del archivo.
aprenderaprogramar.com, 2006-2029
Lectura y escritura de archivos de texto con PHP. fwrite
EJERCICIO
a) Una funcin (tipo procedimiento, no hay valor devuelto) denominada escribirNumerosMod que
reciba dos parmetros: un array de valores enteros y una cadena de texto que puede ser
"sobreescribir" "ampliar". La funcin debe proceder a: escribir cada uno de los nmeros que forman
el contenido del array en una lnea de un archivo datosEjercicio.txt usando el modo de operacin que se
indique con el otro parmetro. Si el archivo no existe, debe crearlo.
Ejemplo: El array que se pasa es $numeros = array(5, 9, 3, 22); y la invocacin que se utiliza es
escribirNumerosMod($numeros, "sobreescribir"); En este caso, se debe eliminar el contenido que
existiera previamente en el archivo y escribir en l 4 lneas, cada una de las cuales contendr los
nmeros 5, 9, 3 y 22.
b) Una funcin (tipo procedimiento, no hay valor devuelto) denominada leerContenidoFichero que
reciba como parmetro la ruta del fichero y muestre por pantalla el contenido de cada una de las lneas
del fichero.
c) Crea cdigo php donde a travs de la funcin escribirNumerosMod escribas en el fichero los nmeros
2, 8, 14. Luego, mediante la funcin leerContenidoFichero muestra el contenido del fichero. Ahora con
la funcin escribirNumerosMod ampla el contenido del fichero y adele los nmeros 33, 11 y 16.
Muestra nuevamente el contenido del fichero por pantalla. Finalmente, escribe el fichero pasndole un
array con los nmero 4, 99, 12 y parmetro <<sobreescribir>> para eliminar los datos que existieran
previamente. Muestra el contenido del fichero por pantalla y un mensaje de despedida.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Lectura completa de un archivo de texto. Funcin file_get_contents.
Adems de con la funcin fopen podemos realizar la lectura de ficheros de texto usando la funcin
file_get_contents de PHP. La lectura de ficheros usando esta funcin es relativamente sencilla. Como
podremos observar en los siguientes ejemplos y ejercicios, con dicha funcin podremos leer archivos de
texto sin necesidad de ir recorrindolos lnea a lnea para obtener su contenido.
FUNCIN FILE_GET_CONTENTS.
Ejemplo: crea un archivo denominado archivo.txt con diferentes lneas de texto. Para recuperar el
contenido del archivo escribe este cdigo php:
Como podrs observar, el fichero es mostrado sin saltos de lnea. Para convertir esos caracteres de
salto de lnea a etiquetas <br /> que den lugar a que se visualice el salto de lnea en HTML y poder as,
visualizarlos en un navegador, necesitamos usar la funcin nl2br.
FUNCIN NL2BR
La funcin nl2br convierte los saltos de lnea a etiquetas <br /> con lo que podremos ver esos saltos de
lnea en cualquier navegador. Para el ejemplo anterior podemos incluirla y as poder ver los saltos de
lnea correctamente. Escribe este cdigo en un archivo como ejemplo1.php y visualiza el resultado.
aprenderaprogramar.com, 2006-2029
Lectura completa de un archivo de texto. Funcin file_get_contents.
Como dato adicional, la funcin file_get_contents, puede obtener el contenido de una pgina web en
forma de cdigo HTML, es decir, su cdigo fuente. Para ello escribiremos la direccin de la web.
Ejemplo.
aprenderaprogramar.com, 2006-2029
Lectura completa de un archivo de texto. Funcin file_get_contents.
- Introducir un fragmento de cdigo de otra pgina web dentro de tu propia pgina web. Para
ello extraeras el contenido usando esta funcin y seleccionaras aquella parte que quieres
mostrar dentro de tu pgina web.
- Hacer bsquedas de forma similar a como las hacen buscadores tipo Google o Yahoo. Una vez
capturada la informacin de la pgina, tendras 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 1
Crea un fichero que lleve por nombre miArchivoDePrueba.txt e introduce en l el siguiente texto:
Por ejemplo, imaginemos que somos una compaa telefnica y deseamos tener almacenados los datos
personales y los nmeros de telfono de todos nuestros clientes, que posiblemente sean millones de
personas.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Recupera el cdigo fuente de tres pginas web diferentes y usando las funciones para cadenas de php
muestra por pantalla cuntas veces aparece la etiqueta <h1> en cada una de ellas. Ejemplo de resultado
a obtener: La etiqueta h1 aparece 34 veces en aprenderaprogramar.com. La etiqueta h1 aparece 45
veces en elmercurio.cl. La etiqueta h1 aparece 88 veces en clarin.com
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.
Una base de datos, bsicamente, es un lugar fsico y software que permite almacenar, modificar y
eliminar informacin. 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 ms precisa sobre qu es y para qu sirve una base de datos puedes consultar la
siguiente direccin:
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
BSICOS.
En primer lugar tendremos que acceder al Panel de Control de nuestro servidor. Para ello, tendremos
que teclear en nuestro navegador la direccin URL de acceso al panel de administracin e introducir el
login y password. Si no dispones de servidor o no recuerdas cmo acceder, cuestiones que hemos
explicado anteriormente en este curso, vuelve a leer el apartado 'ACCEDER VA PANEL DE CONTROL
(CPANEL)' disponible en esta direccin web:
http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=529:hosting-gratuito-elegir-crear-la-cuenta-en-
servidor-php-y-acceder-via-cpanel-y-via-ftp-ejemplo-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 con distintas
opciones. Ten en cuenta que el aspecto puede variar porque hay diversos tipos de panel de control.
aprenderaprogramar.com, 2006-2029
Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.
Nosotros vamos a buscar el enlace a bases de datos al gestor de bases de datos phpMyAdmin (en
otros paneles este enlace aparece con el nombre webAdmin). Buscaremos el enlace phpMyAdmin. Si
hacemos click sobre dicho enlace, al no tener ninguna base de datos creada nos mostrar un mensaje
indicndonos que no existe ninguna base de datos creada. Por tanto el primer paso que tenemos que
dar es crear la base de datos (create database).
Pulsaremos sobre la opcin Create Database New Database para crear una nueva base de datos. En
otros servidores quizs sea necesario acceder a un apartado denominado MySql, Databases o
similar para poder acceder a crear una base de datos.
En el momento en que se nos pida, indicaremos un nombre para nuestra base datos (nombre que
tendremos que recordar) y haremos click en Create Database. Ten en cuenta que el proceso puede ser
ligeramente distinto segn el hosting que estemos utilizando.
aprenderaprogramar.com, 2006-2029
Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.
Una vez tengamos nuestra base de datos creada nos aparecer un mensaje informativo y podremos ver
datos importantes para nosotros como el nombre de la base de datos (por ejemplo el nombre de base
de datos podra ser b7_10356956_nombreElegido):
En el hosting que estamos utilizando como ejemplo, 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
Pero en otros hosting el nombre de la base de datos podr crearse de forma diferente. El nombre de la
base de datos es algo que debemos apuntar pues nos har falta ms adelante.
aprenderaprogramar.com, 2006-2029
Crear una base de datos MySQL para practicar con PHP. PhpMyAdmin.
Ahora para administrar la base de datos usaremos una aplicacin denominada phpMyAdmin. Se trata
de una aplicacin especficamente preparada para administracin de bases de datos MySql (MySql es
uno de los sistemas de bases de datos gratuito ms usados en todo el mundo).
El acceso a base de datos suele estar protegido con nombre de usuario y password. Es posible que el
nombre de usuario y password para acceder a tu base de datos sea la misma que para acceder al panel
del hosting, pero tambin es posible que debas establecer un usuario y password especficos.
EJERCICIO
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Crear tablas en bases de datos MySQL. PhpMyAdmin.
En la entrega anterior del curso hemos creado una base de datos y para administrar la base de datos
usaremos la aplicacin denominada phpMyAdmin, una aplicacin especficamente preparada para
administracin de bases de datos MySql. Para ir a phpMyAdmin pulsaremos sobre el enlace
'phpMyAdmin'. En otros servidores es posible que haya que acceder de otra manera.
Las bases de datos organizan la informacin 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 continuacin nos permite crear una tabla en dicha base de
datos (si no te aparece esta opcin pulsa en la pestaa Operaciones). Nosotros vamos a suponer que
queremos almacenar el nombre, apellidos, direccin, telfono, edad y altura de personas. Para ello
crearemos una tabla que llamaremos <<agenda>> con 6 columnas. Por tanto escribimos como nombre
agenda, nmero de columnas 6 y pulsamos continuar.
aprenderaprogramar.com, 2006-2029
Crear tablas en bases de datos MySQL. PhpMyAdmin.
Los nombres de columnas que pondremos sern: 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 podramos haber escogido otro tipo de datos como nmeros enteros,
nmeros autoincrementados de uno en uno para los campos tipo identificador, fechas, etc. El campo
edad lo ponemos de tipo nmero entero (INT), mientras que el campo altura lo ponemos de tipo
nmero decimal (FLOAT). De momento no nos interesa saber ms y, por tanto, con las cuatro columnas
tipo VARCHAR, una columna tipo entero y otra columna tipo flotante, es ms que suficiente para
nuestro objetivo (en este curso no vamos a tratar MySQL ms que en aspectos bsicos para
comprender cmo interacciona con PHP). Como longitud/valores para los tipos de datos VARCHAR
pondremos 100 que ser la longitud mxima en caracteres que podrn 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 nmero de filas no est
determinado. Adems los datos que se almacenen no podrn tener ms de 100 caracteres de longitud
para los tipos VARCHAR.
Para finalizar la creacin de la tabla 'agenda', pulsamos sobre Guardar y finalizaremos el proceso. La
tabla creada podemos verla como algo similar a esto:
Como vemos ahora la tabla est vaca porque todava no hemos introducido ningn dato.
Una vez creada la tabla 'agenda' introduciremos algunos datos de prueba. Para ello, pulsaremos sobre
el nombre de la tabla (fjate que en el lateral izquierdo de phpMyAdmin existe una especie de
navegador que nos permite elegir la tabla a la que queremos ir). Una vez seleccionada una tabla,
veremos que hay varias pestaas (Estructura, SQL, Insertar, Exportar, Importar, Operaciones). Fjate en
la parte de arriba y vers que te indica el nombre de la base de datos y la tabla en que te encuentras.
Pulsaremos sobre la pestaa 'Insertar' para acceder a introducir los datos para una fila de nuestra tabla.
Nos aparecer una imagen similar a la siguiente. Nos indica un nombre de columna y los valores para
una fila (nombre, apellidos, direccion, telefono). Aadiremos algunos datos de prueba como: nombre
Manuel Jess, apellidos Lpez de la Rosa, direccin C/Juan Bautista N 3, telefono 658954875,
edad 32 y altura 1.80. Aadiremos tambin otros datos como nombre Mara, apellidos Manzano
Cabezas, direccion C/Arco del triunfo N 7, telefono 695001002, edad 19 y altura 1.99.
aprenderaprogramar.com, 2006-2029
Crear tablas en bases de datos MySQL. PhpMyAdmin.
Despus pulsaremos sobre continuar y ya tendremos los datos guardados en la tabla. Ahora la tabla
tendr este aspecto:
Es muy habitual introducir en las tablas una columna denominada id que acta 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 prximos apartados del curso.
EJERCICIO
De la misma forma que has creado la tabla denominada agenda, crea otra tabla denominada
<<ciudades>> que conste de los siguientes 6 campos:
aprenderaprogramar.com, 2006-2029
Crear tablas en bases de datos MySQL. PhpMyAdmin.
Como tipo de dato para cada campo tendremos: id INT con ndice PRIMARY y opcin A_I marcada (A_I
significa auto-increment, este campo se incrementar en 1 ud cada vez que se inserte una fila en la
tabla), ciudad VARCHAR con largo mximo 80, pais VARCHAR con largo mximo 50, habitantes BIGINT
(entero largo), superficie DOUBLE (decimal largo), tieneMetro BOOLEAN (valor booleano, verdadero o
falso. Tener en cuenta que posiblemente esto se refleje como tipo TinyInt: los valores posibles son 0
como equivalente a falso 1 como equivalente a verdadero).
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
Describiremos una serie de funciones bsicas que nos servirn para ilustrar cmo utilizar PHP para
realizar consultas a una base de datos: aadir nuevos registros, actualizar registros, borrar registros,
etc. No vamos a estudiar en profundidad las bases de datos ni el lenguaje SQL. Vamos a tratar de ser
prcticos, conocer algunas funciones para acceder a bases de datos con PHP y aprender a usarlas a
travs de ejemplos.
Una cuestin a comentar es que el acceso a base de datos con PHP admite dos formas distintas: las
funciones tipo mysql, por ejemplo mysql_connect, son las ms antiguas, cuyo uso se desaconseja si se
est trabajando con un servidor con una versin de MySql moderna. Las funciones tipo mysqli, por
ejemplo mysqli_connect, son las ms modernas, cuyo uso se recomienda siempre que se est
trabajando con servidores actualizados. Las funciones mysqli pueden escribirse de dos formas: con
estilo orientado a objetos o con estilo por procedimientos. Nosotros vamos a ver cmo usar estas
funciones con el estilo por procedimientos, que es ms sencillo inicialmente.
Esta funcin nos permite crear una conexin con una base de datos concreta.
$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 (si no lo hemos hecho, puede ser el mismo que para acceder a cPanel root).
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
$contrasea es la contrasea de acceso para el usuario de base de datos, contrasea que habremos
especificado al crear la base de datos (si no lo hemos hecho, puede ser la misma que para acceder a
cPanel root).
Esta funcin la entenderemos mejor con el ejemplo que veremos ms adelante.
Esta funcin nos permite cerrar la conexin con una base de datos anteriormente abierta. Siempre es
recomendable cerrar una conexin cuando hayamos terminado de usarla.
mysqli_close($nombreConexin);
El identificador o nombre de conexin ser aquel que hayamos obtenido previamente usando la
funcin mysqli_connect.
Esta funcin nos permite seleccionar una base de datos concreta dentro de todas las existentes en el
servidor al que nos conectemos.
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
El nombre de conexin ser aquel que hayamos obtenido previamente con la funcin mysqli_connect.
Esta funcin nos permite ejecutar una consulta a la base de datos que especifiquemos.
Donde "Consulta aqu" se refiere a una consulta realizada utilizando el lenguaje SQL de consultas a
bases de datos, por ejemplo una consulta puede ser "SELECT * FROM agenda", que podra traducirse
como selecciona todas las filas de la tabla agenda.
Esta funcin devuelve TRUE o FALSE para indicar si las operaciones UPDATE, INSERT o DELETE han
tenido xito. Para la operacin SELECT devuelve un nuevo identificador de resultado. UPDATE significa
actualizar, INSERT significa insertar y DELETE significa BORRAR. SELECT significa seleccionar.
El nombre de conexin ser aquel que hayamos obtenido previamente con la funcin mysqli_connect.
Una sentencia de consulta normalmente devuelve un conjunto de resultados que segn el ejemplo de
sintaxis anterior tendramos en una variable denominada $result. Por ejemplo, podramos tener como
resultados de una consulta lo siguiente:
La cuestin que nos planteamos ahora es: Cmo extraer el dato de una celda concreta? Por ejemplo el
nombre de la primera fila?
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
Aqu estamos dando dos pasos: una sentencia como mysqli_data_seek ($result, 0); significara
posicinate en la fila 0 de los resultados (la primera fila). Tambin es vlido escribir $result-
>data_seek(0); que tiene el mismo efecto. Si escribiramos $result->data_seek(15); signficara
posicinate en la fila 16 de los resultados (tener en cuenta que se empieza a contar por cero, de ah
que 0, 1, 2, , 15 resulten 16 filas).
Esta funcin nos devuelve el contenido de la celda en la fila y columna indicadas en forma de string
(cadena de caracteres) en caso de xito, o FALSE en caso de error.
numeroDeFila es un nmero de fila dentro del resultado obtenido teniendo en cuenta que los nmeros
de fila se cuentan empezando desde cero.
identificadorDeLaColumna puede ser el ndice del campo (por ejemplo 0), el nombre del campo (por
ejemplo ciudad), o el nombre de la tabla punto nombre del campo (por ejemplo agenda.ciudad)
Finalmente, se puede especificar el nombre del campo que queremos extraer dentro de la fila (esto es
opcional). Esta funcin la entenderemos mejor con el ejemplo que veremos a continuacin.
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
Escribe este cdigo en un editor y gurdalo en un archivo de nombre ejemplo1.php (recuerda que antes
debes haber creado la base de datos y creado datos de ejemplo como hemos visto anteriormente).
Recuerda tambin que debes cambiar y poner tus propios valores en las funciones mysqli_connect y
mysqli_select_db.
<html><head><meta charset="utf-8"></head>
<body>
<?php
$link = mysqli_connect("sql203.byethost7.com", "b7_10356956", "*****");
mysqli_select_db($link, " b7_10356956_mibasededatos");
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysqli_query($link, "SELECT * FROM agenda");
mysqli_data_seek ($result, 0);
$extraido= mysqli_fetch_array($result);
echo "- Nombre: ".$extraido['nombre']."<br/>";
echo "- Apellidos: ".$extraido['apellidos']."<br/>";
echo "- Direccin: ".$extraido['direccion']."<br/>";
echo "- Telfono: ".$extraido['telefono']."<br/>";
echo "- Edad: ".$extraido['edad']."<br/>";
mysqli_free_result($result);
mysqli_close($link);
?>
</body>
</html>
<html>
<body>
<?php
$link = mysql_connect("sql203.byethost7.com", "b7_10356956", "*****");
mysql_select_db("b7_10356956_mibasededatos", $link);
mysql_query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysql_query("SELECT * FROM agenda", $link);
echo "Nombre: ".mysql_result($result, 0, "nombre")."<br>";
echo "Apellidos: ".mysql_result($result, 0, "apellidos")."<br>";
echo "Direccin: ".mysql_result($result, 0, "direccion")."<br>";
echo "Telfono:".mysql_result($result, 0, "telefono")."<br>";
echo "Edad:".mysql_result($result, 0, "edad")."<br>";
echo "Altura:".mysql_result($result, 0, "altura")."<br>";
mysql_free_result($result);
mysql_close($link);
?>
</body>
</html>
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
En este cdigo lo que hemos hecho es usar las funciones vistas anteriormente 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 y mostrar los resultados por pantalla.
Con esta lnea introducimos el identificador de conexin en una variable denominada $link. Invocamos
la funcin mysqli_connect pasndole como parmetros el nombre del hosting, el nombre de usuario y
la contrasea. Estos datos debemos conocerlos (o consultarlos) previamente.
mysqli_select_db($link, "b7_10356956_mibasededatos");
Con esta lnea seleccionamos la base de datos pasndole a la funcin como parmetros el identificador
de conexin (que hemos obtenido y guardado en una variable previamente) y el nombre de base de
datos.
Con esta lnea seleccionamos todos los registros (filas) y campos (columnas) existentes en nuestra base
de datos. Para seleccionar todos los registros escribimos SELECT *. A continuacin 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. En la llamada a la funcin incluirmos el identificador
de conexin que hemos obtenido previamente.
Con la sentencia mysqli_data_seek ($result, 0); nos posicionamos en la primera fila (fila cero) de los
resultados de la consulta.
En la versin que no usa mysqli (no recomendada) 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 que se nos muestre por pantalla el nombre,
apellidos, direccin, telfono, edad y altura almacenados en la primera fila de nuestra base de datos.
Algo similar a esto:
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
Resumiendo lo que hemos hecho, hemos usado la funcin mysqli_connect(), que abre una conexin
con el servidor MySQL en el Host especificado (en este ejemplo la mquina donde est alojada el
servidor MySQL es sql203.byethost7.com, pero t tendrs que introducir tu propio dato). Tambin
hemos especificado un usuario (b7_10356956 en este ejemplo, pero t tendrs que introducir tu propio
dato), y un password para el usuario indicado (tendrs que escribir tu password de usuario de base de
datos).
Con mysqli_select_db() PHP le hemos dicho al servidor que en la conexin $link nos queremos conectar
a la base de datos indicada.
La siguiente funcin mysqli_query(), usando el identificador de la conexin ($link), enva una instruccin
SQL al servidor MySQL para que ste la procese. El resultado de sta operacin es almacenado en la
variable $result.
Finalmente, elegimos la fila de resultados cero con mysqli_data_seek ($result, 0); y guardamos los
resultados de esa fila en un array con $extraido= mysqli_fetch_array($result); . Si quisiramos mostrar
los siguientes registros tendramos que incluir instrucciones con los nmeros 1, 2,
*Nota: Si tenemos algn problema en localizar la informacin de nuestro proveedor (nombre de base
de datos, usuario, etc.). recordar que dicha informacin normalmente est disponible en el panel de
control del servidor (cpanel o similar) tal y como vimos en entregas anteriores.
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
En el panel de control que estamos usando nosotros para este ejemplo, si bajamos con el scroll hacia
abajo, despus de la informacin ftp que nos aparece marcada con un recuadro rojo, aparecer la
informacin relativa al servidor de base de datos. Si ests utilizando otro panel de control, tendrs que
buscar el lugar especfico donde figura esta informacin.
EJERCICIO
Utilizando la tabla <<ciudades>> que hemos creado para el ejercicio de la entrega anterior del curso,
cuyo contenido era:
aprenderaprogramar.com, 2006-2029
Uso de PHP con MySQL. Consultas bsicas a bases de datos. Ejercicios.
Crea un archivo php donde se realice una consulta a la base de datos para extraer todos los datos de la
tabla y a continuacin muestra por pantalla los valores de pas y ciudad de cada fila.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
Ahora que conocemos de una forma bsica como interactuar con una base de datos MySQL haciendo
uso de distintas funciones o instrucciones PHP, vamos a profundizar un poco ms 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 slo 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 cdigo que ya hemos utilizado
anteriormente y realizaremos una serie de cambios.
Para empezar, aade algunas filas ms a la tabla agenda de la base de datos para que quede as:
Lo primero que vamos a tratar de ver es cmo una invocacin de mysqli_fetch_array devuelve un
registro (una fila) de los resultados obtenidos en una consulta a la tabla de la base de datos. Qu fila
de los resultados es la que nos devuelve? Si la fila ha sido establecida usando mysqli_data_seek, nos
devolver la fila que hayamos especificado. Si no usamos mysqli_data_seek nos devuelve la primera fila
de los resultados.
Si mysqli_fetch_array vuelve a ser invocada sin especificar la fila a extraer, devuelve el siguiente
registro o fila, siguiendo el orden que tienen los resultados de la consulta. Decimos que
mysqli_fetch_array tiene vinculado un puntero o referencia a la fila que debe devolver. Este puntero o
referencia puede definirse usando data seek, o en caso de no definirse, es inicialmente 0 (lo que
significa que nos devolver inicialmente la fila 0). Una vez invocada mysqli_fetch_array y devueltos los
resultados de la fila 0, el puntero queda apuntando al siguiente registro, es decir, a la fila 1. Este
proceso puede repetirse tantas veces como se desee y por cada llamada mysqli_fetch_array va
avanzando una fila. Cuando ya no existen ms filas en los resultados de la consulta la funcin devuelve
NULL (no hay resultados).
Para comprender el funcionamiento que hemos descrito ejecuta este cdigo (que podemos denominar
bruto, pero no te preocupes ahora por la eficiencia del cdigo, cntrate en entender el
funcionamiento de mysqli_fetch_array). Recuerda que debes cambiar los datos relacionados con la
base de datos (nombre de servidor, nombre de base de datos, usuario, password) y escribir los que
ests usando t.
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
<html>
<head><meta charset="utf-8"> </head>
<body>
<?php
//Ejemplo aprenderaprogramar.com
function mostrarDatos ($resultados) {
if ($resultados !=NULL) {
echo "- Nombre: ".$resultados['nombre']."<br/> ";
echo "- Apellidos: ".$resultados['apellidos']."<br/>";
echo "- Direccin: ".$resultados['direccion']."<br/>";
echo "- Telfono: ".$resultados['telefono']."<br/>";
echo "- Edad: ".$resultados['edad']."<br/>";}
else {echo "<br/>No hay ms datos: <br/>".$resultados;}
}
$link = mysqli_connect("sql203.byethost7.com", "b7_10356956", "*****");
mysqli_select_db($link, " b7_10356956_mibasededatos");
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes correctamente
$result = mysqli_query($link, "SELECT * FROM agenda");
$extraido1= mysqli_fetch_array($result);
mostrarDatos($extraido1);
$extraido2= mysqli_fetch_array($result);
mostrarDatos($extraido2);
$extraido3= mysqli_fetch_array($result);
mostrarDatos($extraido3);
$extraido4= mysqli_fetch_array($result);
mostrarDatos($extraido4);
$extraido5= mysqli_fetch_array($result);
mostrarDatos($extraido5);
$extraido6= mysqli_fetch_array($result);
mostrarDatos($extraido6);
mysqli_free_result($result);
mysqli_close($link);
?>
</body>
</html>
En este ejemplo slo tenemos cuatro registros. Si tuviramos ms registros el listado se alargara para
mostrarlos todos ellos. Qu ocurre si la informacin existente en base de datos comprende muchos
registros? En este caso la informacin se habr almacenado en memoria y esto consume recursos del
sistema. Para liberar esta memoria se utiliza la instruccin mysqli_free_result($result);
Escribe ahora este cdigo y fjate cmo hemos sintetizado el proceso eliminando variables auxiliares.
Recuerda que debes cambiar los datos relacionados con la base de datos (nombre de servidor, nombre
de base de datos, usuario, password) y escribir los que ests usando t.
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
Fjate como mysqli_fetch_array($result) nos devuelve un array con los datos de una fila de las
obtenidas como resultado y cada vez que lo invocamos nos devuelve la siguiente fila hasta que ya no
existen ms filas de resultados, momento en que nos devuelve NULL o vaco.
Vamos a recurrir por tanto a crear un bucle de forma que se extraigan de forma automatizada todos los
registros que nos devuelve una consulta.
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
Esta expresin es una forma compacta donde se hacen varias cosas al mismo tiempo. Por un lado, se
ejecuta $fila = mysqli_fetch_array($result) con lo cual $fila toma un valor que puede ser un array
resultado vaco.
Luego se evala el while. while ($variable) lo que hace es entrar al bucle si $variable existe (no est
vaco). while ($fila = mysqli_fetch_array($result)) da lugar a la entrada al bucle mientras no se hayan
extrado todas las filas del resultado.
Esta expresin sinttica es til porque nos permite recorrer muchas filas escribiendo un mnimo de
cdigo. Tambin podramos escribir esto:
while ($hayResultados==true){
$fila = mysqli_fetch_array($result);
O tambin esto:
De las diversas alternativas planteadas la que requiere menos cdigo y una vez se entiende resulta ms
clara es while ($fila = mysqli_fetch_array($result)), por eso es la que vamos a usar. Escribe el siguiente
cdigo y comprueba los resultados. Recuerda que debes cambiar los datos relacionados con la base de
datos (nombre de servidor, nombre de base de datos, usuario, password) y escribir los que ests
usando t.
De una forma u otra cada vez que invocamos la funcin mysql_fetch_array($result) obtenemos un array
asociativo con ndice del array los nombres de las columnas, por ejemplo $fila['nombre'],
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
El resultado esperado es que se muestren por pantalla todos los resultados de la consulta:
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
Recordar que si estamos revisando cdigo antiguo o en servidores no actualizados nos podemos
encontrar que no se usan las funciones de tipo mysqli sino las mysql. A modo de ejemplo de cmo sera
esta sintaxis, mostramos este cdigo:
EJERCICIO 1
Utilizando la tabla agenda que hemos empleado en los ejemplos y funciones para manejo de cadenas
PHP, realiza una consulta a la base de datos para extraer todos los nombres y determina cuntos
nombres en la base de datos empiezan por M.
Ejemplo de resultados a obtener: En la base de datos los nombres que empiezan por M son: 2
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Utilizando la tabla <<ciudades>> que hemos utilizado para ejercicios de entregas anteriores del curso,
cuyo contenido era:
aprenderaprogramar.com, 2006-2029
Consultas avanzadas a base de datos MySQL con PHP. Ejercicios.
Crea un archivo php donde se realice una consulta a la base de datos para extraer todos los datos de la
tabla y a continuacin calcula la suma de habitantes de todos los pases y cuntas de estas ciudades
tienen metro. Muestra el resultado por pantalla.
La suma de habitantes de Mxico D.F., Barcelona, Buenos Aires, Medelln, Lima, Caracas, Santiago,
Antigua, Quito y La Habana es: 5663886 habitantes
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Insercin de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.
Vamos a explicar cmo insertar registros en nuestra base de datos MySQL a travs de cdigo PHP. En
concreto, aadiremos registros a la tabla agenda que habamos creado previamente con phpMyAdmin.
Para ello tendremos que realizar lo que se denomina una consulta SQL de insercin (insert into) e ir
aadiendo tantos registros con sus correspondientes valores para los campos como deseemos.
Partiremos de nuestra base de datos donde tenemos una tabla denominada agenda con los siguientes
datos:
Para realizar la insercin de datos vamos a utilizar una sintaxis de este tipo:
Donde mysqli_query indica que vamos a realizar una operacin (en general se denominan consultas,
aunque en este caso la operacin sea una insercin de datos), $link es el identificador de conexin que
hayamos obtenido con mysqli_connect, nombreTabla es el nombre de la tabla en la cual vamos a
realizar la insercin de datos y datoCol1, datoCol2, , datoColN representa los datos que vamos a
insertar en la tabla. Tener en cuenta que debemos indicar los datos en el mismo orden en que se
encuentran las columnas en la tabla. Por ejemplo para nuestra tabla agenda tendremos que seguir el
orden: nombre, apellidos, direccion, telefono, edad, altura (orden de las columnas).
Escribe este cdigo en un editor y gurdalo en un archivo con un nombre como ejemplo1.php. Luego
ejecuta el cdigo (una sola vez, ten en cuenta que si lo ejecutas varias veces insertars varias veces
repetidamente los datos en la base de datos). Recuerda tambin que debes cambiar y poner tus
propios valores en las funciones mysqli_connect y mysqli_select_db.
aprenderaprogramar.com, 2006-2029
Insercin de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.
Nota: si usramos sintaxis no mysqli se usara mysql_query ("INSERT INTO nombreDeLaTabla VALUES
(datoCol1, datoCol2, datoColN ", $link).
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. Tambin tendremos que
prestar atencin para que los tipos de datos insertados se correspondan con los de la tabla. Por
ejemplo, no debemos insertar un valor numrico decimal si se espera un entero.
Ahora vamos a ejecutar el cdigo de la entrega anterior del curso para ver los nuevos registros aadidos
por pantalla. Escribe este cdigo en un editor y gurdalo en un archivo con un nombre como
ejemplo2.php. Recuerda que debes cambiar y poner tus propios valores en las funciones
mysqli_connect y mysqli_select_db.
aprenderaprogramar.com, 2006-2029
Insercin de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.
El resultado esperado es que se muestren por pantalla todos los resultados de la consulta:
- Nombre: Manuel Jess - Apellidos: Lpez de la Rosa - Direccin: C/Juan Bautista N 3 - Telfono: 658954875 - Edad: 32
**********************************
- Nombre: Mara - Apellidos: Manzano Cabezas - Direccin: C/Arco del triunfo N 7 - Telfono: 695001002 - Edad: 19
**********************************
- Nombre: Pedro - Apellidos: Somoza Castro - Direccin: C/Solera n88, B - Telfono: 88834321 - Edad: 44
**********************************
- Nombre: Juana - Apellidos: Prez Rozas - Direccin: Avda. Luarcato n22 - Telfono: 888111222 - Edad: 22
**********************************
- Nombre: Pedro - Apellidos: Gmez Gmez - Direccin: C/ Buenaventura 54 - Telfono: 699887766 - Edad: 35
**********************************
- Nombre: Antonio - Apellidos: Delgado Folken - Direccin: C/ El Milagroso 77 - Telfono: 699667744 - Edad: 88
**********************************
Hemos visualizado el contenido de la base de datos usando una consulta y mostrando los resultados
por pantalla. Ten en cuenta que tambin puedes ver el contenido de la base de datos accediendo
directamente a ella. Accede al panel de administracin de tu servidor, luego a phpMyAdmin y
comprueba cmo los nuevos valores insertados se encuentran en la tabla de la base de datos.
Nota: los nuevos datos aadidos pueden aparecer al final o al principio de la tabla. Si quisiramos ver
los datos con un determinado orden tendramos que incluir las instrucciones oportunas, pero no vamos
a hablar de ello en este momento.
Vamos a resumir lo que hemos hecho: por un lado hemos accedido a la base de datos mediante cdigo
PHP y hemos insertado dos nuevas filas (al ejecutar ejemplo1.php) en la tabla agenda. Por otro lado
visualizamos el contenido de la tabla agenda (ejemplo2.php) realizando una consulta a la base de datos
y comprobamos que aparecen los dos nuevos registros aadidos, correspondientes a Pedro Gmez
Gmez y Antonio Delgado Folken.
Las operaciones de insercin en bases de datos son muy frecuentes en programacin web. Ten en
cuenta por ejemplo que cada vez que se registra un usuario en una pgina web hay que guardar la
informacin del usuario (nombre, correo electrnico, etc.). Igualmente cada vez que se produce una
compra mediante comercio electrnico hay que almacenar la informacin de la compra en la base de
datos. Es por tanto una operacin bsica y de gran inters dentro de la programacin con bases de
datos.
aprenderaprogramar.com, 2006-2029
Insercin de datos con PHP y MySQL. Ejemplos y ejercicios resueltos.
EJERCICIO
Inserta en la tabla agenda de la base de datos que estamos utilizando los datos de una persona cuyo
nombre es Jess Murillo Moreno, de 34 aos, cuyo telfono es 655221122, vive en c/Pintor Murillo
n33, y tiene una altura de 1.67 metros. Presta atencin al orden en que debes introducir los datos. Una
vez realizada la insercin, comprueba visualizando los registros existentes en la tabla que la insercin se
haya realizado correctamente. Luego accede al panel de administracin del servidor y a la base de datos
con phpMyAdmin. Visualiza los registros en la tabla y borra la fila correspondiente a Jess Murillo
Moreno utilizando phpMyAdmin. Como puedes comprobar, podemos operar sobre la tabla tanto a
travs de phpMyAdmin como a travs de cdigo PHP.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.
Una tarea habitual con bases de datos ser el tener que borrar cierta informacin. Vamos a ver cmo
realizar el borrado de ciertos registros que cumplan una condicin y el borrado completo de todos los
registros (filas) de una tabla. Para ello utilizaremos dos expresiones para operaciones (consultas) sobre
bases de datos que describiremos a continuacin: delete y truncate.
La sentencia DELETE se suele usar para borrar unos registros de una tabla que cumplen una o varias
condiones. Vamos a utilizar una sintaxis de este tipo:
mysqli_query($link, " DELETE FROM nombreTabla WHERE columna (>, <, =, etc.) valorEspecificado ");
Aqu estamos empleando la clusula WHERE que nos sirve para indicar una condicin. Por ejemplo
DELETE FROM agenda WHERE altura > 1.90 significa borrar todas las filas de la tabla agenda en las que
en la columna altura exista un valor mayor que 1.90. Fjate que al indicar mayor (y no mayor o igual)
una fila donde la altura sea exactamente 1.90 no ser borrada.
La clusula WHERE tambin puede ser aplicada cuando hacemos consultas de tipo SELECT. Por ejemplo
en entregas anteriores del curso usamos SELECT * FROM agenda como consulta que nos devolva todas
las filas de la tabla agenda. Si escribiramos SELECT * FROM agenda WHERE edad <= 35 obtendramos
como resultado todas las filas de la tabla agenda donde la columna edad contiene un valor menor o
igual a 35.
En una clusula where podemos establecer una condicin de igualdad (=) pero tambin podremos usar
otras condiciones como mayor (>), menor(<), mayor o igual (>=), menor o igual (<=), y tambin
condiciones mltiples y condiciones ms complejas, pero no vamos a entrar en detalles sobre esto
ahora.
Igual que podemos hacer una consulta para obtener todas las filas de una tabla, tambin podremos
borrar todos los registros de una tabla en concreto y, para ello, slo basta con omitir las condiciones, es
decir, hacer una consulta escribiendo lo siguiente: DELETE FROM nombreTabla
Obviamente es peligroso hacer consultas de borrado de datos con bases de datos importantes, ya que
un error a la hora de escribir la consulta puede dar lugar a la prdida de datos. Nosotros estamos
trabajando con una base de datos de pruebas, por lo que no nos preocuparemos por esta cuestin.
aprenderaprogramar.com, 2006-2029
Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.
EJEMPLO
Partiremos de nuestra base de datos donde tenemos una tabla denominada agenda con los siguientes
datos:
Para no afectar a esta tabla, vamos a duplicar la tabla. Esto lo podemos hacer manualmente, pero
tambin podemos hacerlo de forma automtica con phpMyAdmin. Para ello accede al panel de
administracin de tu servidor, luego a phpMyAdmin, pulsa sobre el nombre de la base de datos y luego
sobre la tabla. Ahora vete a la pestaa Operaciones y busca la opcin Copiar la tabla a:. Pon como
nombre agenda2 y elige la opcin Copiar estructura y datos. Pulsa en continuar. Una vez hecho esto
podrs comprobar que en la base de datos tienes dos tablas: agenda y agenda2 (tabla que acabamos de
copiar con los mismos datos que tenamos en agenda).
Escribe este cdigo en un editor y gurdalo en un archivo con un nombre como ejemplo1.php. Ten en
cuenta que debers introducir los datos de tu propia base de datos (nombre, user, etc.).
Ejecuta el cdigo. 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
habrn sido borrados.
aprenderaprogramar.com, 2006-2029
Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.
SENTENCIA TRUNCATE
La sentencia TRUNCATE sirve para borrar todos los registros de una tabla, al igual que hacamos con la
funcin DELETE sin condiciones, pero tiene algunas diferencias con sta que explicaremos ms
adelante.
Al igual que las operaciones de tipo DELETE, esta operacin es peligrosa en el sentido de que si se
ejecuta errneamente puede dar lugar a la prdida de datos.
EJEMPLO
Escribe este cdigo en un editor y gurdalo en un archivo con un nombre como ejemplo2.php. Ten en
cuenta que debers introducir los datos de tu propia base de datos (nombre, user, etc.). Ejecuta el
cdigo sobre la tabla agenda2 para proceder al borrado de todas las filas de esta tabla.
<?php
//Ejemplo curso PHP aprenderaprogramar.com
$link = mysqli_connect("sql203.byethost7.com", "b7_10356956", "*****");
mysqli_select_db($link, "b7_10356956_mibasededatos");
mysqli_query($link, "TRUNCATE TABLE agenda2");
mysqli_close($link);
// Cerramos la conexion con la base de datos
echo 'Se ha ejecutado la consulta TRUNCATE';
?>
Con este cdigo borraremos todos los registros de la tabla agenda. Accede a la tabla a travs de
phpMyAdmin y comprueba que no existen registros.
Cul es la diferencia entre usar delete sin condiones y usar truncate? Vamos a explicarla a
continuacin.
aprenderaprogramar.com, 2006-2029
Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.
Usar TRUNCATE es ms 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).
Hay otras cuestiones que se deben tener en cuenta, pero no te preocupes por esto ahora, lo irs
descubriendo a medida que avances en conocimientos de programacin y bases de datos.
EJERCICIO 1
Realiza una consulta y muestra por pantalla los datos correspondientes a filas de la tabla agenda donde
la edad sea mayor o igual que 20 y la altura sea mayor o igual que 1.75.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Crea una tabla que sea copia de agenda a la que denomines agenda3 y un archivo php que al ejecutarlo
realice los siguientes procesos:
aprenderaprogramar.com, 2006-2029
Borrado de datos con PHP y MySQL. DELETE y TRUNCATE. Diferencias.
b) Eliminar todos los registros de la tabla agenda3 cuyo campo edad sea mayor o igual a 34 y mostrar el
contenido actual de la tabla por pantalla.
c) Insertar dos nuevos registros en la tabla agenda3 (elige t unos datos cualquiera) y mostrar el
contenido actual de la tabla por pantalla.
d) Eliminar todos los registros de la tabla agenda3 usando TRUNCATE y mostrar el contenido actual de
la tabla por pantalla.
e) Insertar tres nuevos registros en la tabla agenda3 (elige t unos datos cualquiera) y mostrar el
contenido actual de la tabla por pantalla.
f) Eliminar todos los registros de la tabla agenda usando DELETE sin condiciones y mostrar el contenido
actual de la tabla por pantalla.
Para comprobar si tus respuestas y cdigo son correctos puedes consultar en los foros
aprenderaprogramar.com.
aprenderaprogramar.com, 2006-2029
Final curso tutorial prograamacin web PHP desde cero..
Con esta entrega lleggamos al finaal del curso Tutorial bsico del pro
ogramador w
web: PHP desde cero.
Esperamoos que haya sido un cursso til y ameeno para todas las personas que lo hhayan seguid
do. Y como
ones especiales.
en todo fiinal, cabe hacer algunas consideracio
- uipo humano
Gracias al equ o de aprenderaprogramaar.com que hah hecho po osible su pub
blicacin, y
en especial a Javier Roa, Jorge
J Maesttro, Manuel Tello,
T Walter Sagstegui, Manuel Sie
erra, Csar
Krall y Mario Rodrguez.
Quienes tengan
t inters en prosegguir formnddose en el rea
de proggramacin y programaci n web de
forma auttodidacta les animamoss a que visiteen la seccinn Cursos dee aprenderaprogramar.ccom en la
URL http:///www.aprendderaprogramaar.com/index.php?option==com_contentt&view=articlee&id=57&Item
mid=86
Quienes estn
e interessados en currsos tutorizad
dos on-line con
c seguimieento, plan dee trabajo y supervisin
a cargo de
d un tutor asignado pu ueden visitar la siguientte direccin donde encoontrarn infformacin:
http://www
w.aprenderap
programar.com/index.php??option=com_
_content&view
w=article&id==64&Itemid=8
87
A todos lo
os que nos haan ledo y no
os siguen, graacias. Nos vemos
v en el prximo!
p
El equ
uipo de apreenderaprogrramar.com
aprenderraprogramar.co
om, 2006-2029