0% encontró este documento útil (0 votos)
181 vistas

HTML5 y PHP

Este documento presenta un resumen de tres oraciones del curso "Desarrollo de páginas web dinámicas con HTML5 y PHP". El curso es impartido por tres instructores y la evaluación se basa en prácticas, un proyecto de módulo, un proyecto final y extras. El documento también incluye breves historias sobre el desarrollo de Internet, HTML y elementos básicos de HTML5.

Cargado por

Emi Guevara
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
181 vistas

HTML5 y PHP

Este documento presenta un resumen de tres oraciones del curso "Desarrollo de páginas web dinámicas con HTML5 y PHP". El curso es impartido por tres instructores y la evaluación se basa en prácticas, un proyecto de módulo, un proyecto final y extras. El documento también incluye breves historias sobre el desarrollo de Internet, HTML y elementos básicos de HTML5.

Cargado por

Emi Guevara
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 192

Desarrollo de páginas web dinámicas con

HTML5 y PHP
Curso de programación web 2020

Instructores:
● Camacho Barrientos Juan Carlos
● Cruz Hernández Victor Emiliano
● López Chong Jorge Antonio
Evaluación
➢ Prácticas y tareas - 25%

➢ Proyecto de módulo - 25%

➢ Proyecto final - 50%

➢ Extras
Descargar atom: https://atom.io/
Breve historia del internet
En 1962, J.C.R. Licklider propuso la idea de una red de computadores que pudieran
comunicarse entre sí. En 1969, se envió el primer mensaje entre dos computadores a
través de ARPANET (Advanced Research Projects Agency Network), creado por
Departamento de Defensa de los EE.UU.
1971. Raymond Tomlinson creó
el primer programa de correo
electrónico.

1973. Vinton Cerf y Robert Kahn


desarrollaron
TCP/IP(Transmission Control
Protocol/Internet Protocol).

1991. Tim Berners-Lee inventó


la World Wide Web (WWW),
medio de comunicación de texto
(hipertexto).
Breve historia de HTML
● En 1980, el físico Tim Berners-Lee, trabajador del CERN (Organización Europea para la
Investigación Nuclear) propuso un nuevo sistema de "hipertexto" para compartir documentos
electrónicos.
● Tim presentó su sistema a una convocatoria organizada para desarrollar un sistema de
"hipertexto" para Internet. Tras unir sus fuerzas con Robert Cailliau, presentaron la propuesta
ganadora llamada WorldWideWeb (W3/WWW).
● El primer documento formal con la descripción de HTML se publicó en 1991 como “HTML Tags”
y aún puede ser consultado online.
● En 1995, el IETF (Internet Engineering Task Force) organiza un grupo de trabajo de HTML y
consigue publicar, el 22 de septiembre, el estándar HTML 2.0; el primer estándar oficial de
HTML.
● Desde 1996, los estándares de HTML los publica el organismo de estandarización llamado W3C
(World Wide Web Consortium).
● La versión HTML 3.2 se publicó el 14 de Enero de 1997 y es la primera recomendación de HTML
publicada por el W3C.
● HTML 4.0 se publicó el 24 de Abril de 1998. Entre sus novedades más importantes se encuentran
las hojas de estilos CSS, posibilidad de incluir scripts, mejoras en la accesibilidad de las páginas
diseñadas, tablas complejas y en los formularios.
● Desde la publicación de HTML 4.01 (1999), la actividad de estandarización de HTML se detuvo y el
W3C se centró en el desarrollo del estándar XHTML. Por ello, en el 2004, las empresas Apple,
Mozilla y Opera mostraron su preocupación organizándose en una nueva asociación llamada
WHATWG (Web Hypertext Application Technology Working Group).
● El WHATWG, se centra en el futuro estándar HTML 5, cuyo primer borrador oficial se publicó el 22
de enero de 2008.
● En marzo de 2007 el W3C decidió retomar la actividad estandarizadora de HTML.
● De forma paralela a su actividad con HTML, W3C ha continuado con la estandarización de XHTML,
una versión avanzada de HTML y basada en XML.
HTML
Significa Lenguaje de Marcado de Hipertextos
(HyperText Markup Language). Es la pieza más
básica para la construcción de la web y se usa
para definir el sentido y estructura del
contenido en una página web. Se constituye de
elementos llamados etiquetas.
Principales características (HTML5)
● Semántica: describir con mayor precisión su contenido.
● Conectividad: comunicación con el servidor de formas nuevas e innovadoras.
● Sin conexión y almacenamiento: las páginas web almacenan datos localmente con el cliente
y operan sin conexión de manera más eficiente.
● Multimedia: excelente soporte para utilizar contenido multimedia como audio y video.
● Gráficos y efectos 2D/3D: cuenta con una amplia gama de características para los gráficos
en la web como lo son canvas 2D, WebGL, SVG, etc.
● Rendimiento e Integración: tiene una mayor optimización de la velocidad y un mejor uso
del hardware.
● Acceso al dispositivo: utiliza APIs para el uso de varios componentes internos de entrada
y salida en el dispositivo.
● CSS3: ofrece una gran variedad de opciones para hacer diseños más sofisticados.

https://developer.mozilla.org/es/docs/HTML/HTML5
Estructura de un etiqueta

Hola soy una etiqueta de párrafo

Etiqueta de apertura Contenido Etiqueta de cierre


Atributos de una etiqueta
Contienen información adicional acerca del elemento, la
cual no quieres que aparezca en el contenido real del
elemento.

Hay atributos que son globales, es decir que todos los


elementos puede tener; los más utilizados son id y class.

Lista de atributos:
https://developer.mozilla.org/es/docs/Web/HTML/Atributos
Estructura de un archivo HTML

Padres e hijos (Herencia)


<html> es padre de <head> y <body> ya que
<html> los contiene.
<h1> y los dos elementos <p> son hijos de <body>
ya que están contenidos en <body>.
Como se ve en el navegador
Etiqueta <title>

<title>¿Qué es HTML?</title>
¿Qué es HTML?
Es el texto que los
buscadores toman
para mostrar en los
resultados de
búsqueda en el
título relacionado
con nuestra página
Search
Engine
Optimization
Hay elementos de...
● línea: solo ocupan el tamaño del contenido
Algunos ejemplos son <span>, <strong>, <em>, etc.
● bloque: ocupan el ancho de su elemento padre y el alto de su contenido,
formando así un bloque.
Algunos ejemplos son encabezados (de <h1> a <h6>), <p>, etc.

Soy un elemento de bloque

Soy un elemento de línea


Elementos HTML

Lista de todos los elementos de


HTML5:

https://developer.mozilla.org/es/
docs/HTML/HTML5/HTML5_list
a_elementos
Actividad 1. Mi primer diccionario de
etiquetas
Divididos en equipos de 4-6 personas investigar las siguientes etiquetas:
● <!doctype html> ● <body>
● <html> ● <h1>,<h2>,<h3>,<h4>,<h5>,<h6>
● <head> ● <main>
● <title> ● <p>
● <base> ● <hr>
● <link> ● <blockquote>
● <meta> ● <iframe>
● <style>
Plasmar una muy breve explicación de la etiqueta (redactada por ustedes, no copiada) ya sea en
forma de tabla o lista.
Entidades HTML
Muestra caracteres reservados para HTML tales como “<” o
“>”.
&nombre_de_la_entidad; &#número_de_la_entidad;

Por ejemplo,

&lt; y &#60; es para < &gt; y &#62; es para >

Lista de entidades HTML: https://www.w3schools.com/html/html_entities.asp


Etiquetas semánticas
Hacen que el HTML por sí solo tenga sentido, lo que ayuda a los motores de
búsqueda a entender mejor el contenido de la página web y posicionarla mejor.
Encabezados
Cómo se ve en el navegador

<h1> Título de la página web

<hr
>
<h2> Títulos de seciones

<h3>
<h4>

<h5>
<h6>

<h3>
<h4>
<h5>
<h6>
Jerarquía de selectores
id
1. id
2. class
3. elemento class class

etiqueta etiqueta etiqueta


Etiquetas para
texto
Actividad 2
En su equipo realizarán en un documento de Google (Google Docs), el maquetado
de una página web con los siguientes elementos y etiquetas:

● Nombre del equipo como título (original y adecuado).


● En un párrafo escribir el nombre de cada integrante utilizando saltos de línea
por cada uno.
● En una etiqueta de cita colocar una frase, fragmento o cita textual que el
equipo deseé.
● Utilizar distintas etiquetas para resaltar los contenidos.
Listas
Argumentos de <ol>:
start - entero inicial de la lista
type - tipo de numeración: “1”, “A”, “a”, “I”,
“i”
reversed - ir del final al inicio: “true”
Actividad 3. Inventario de mi cuarto
Observa tu espacio de trabajo actual y elabora al menos 2 listas de categorías de
objetos o características que encuentres en él, una deberá ser ordenada y otra
desordenada, en caso de que utilices sublistas deberás cambiar el formato de la
viñeta o número.

Continuación Actividad 2 (Tarea)


● Cambiar el formato de los integrantes por una lista ordenada
● Añadir al documento una lista desordenada con título “Favoritos” con la
canción, serie o película favorita de cada integrante.
Rutas absolutas y relativas

Absolutas Relativas

Contiene toda la ruta del archivo, incluyendo Contiene la ruta del archivo a partir del
el directorio raíz. Alguno ejemplos son: directorio en el que se encuentra el archivo.

● https://developer.mozilla.org/es/docs/HT ● miCarpeta/perro.png
ML/HTML5/HTML5_lista_elementos ● ../miCarpetaExterior/gato.png

● C:\Users\anton\Downloads\archivo.png Nota: “..” significa salirse del directorio actual


Etiqueta img y picture
Hipervínculos

Crea un enlace a otras


páginas web.
Actividad 2.1: Tu página personal (Blog)
Elabora el maquetado de tu página personal (blog) y
en la página de tu equipo de la actividad 2, convierte
tu nombre en un enlace o hipervínculo a tu blog. En
la página personal se deberá mostrar tu nombre,
colores favoritos, comida favorita, películas y/o
series, etc, además de anexar una foto de perfil.

Se evaluará la creatividad y calidad de las páginas, así


como la cantidad de elementos y recursos utilizados.
Audio y video
Tablas
Estructura
● <table>
○ <tr> <!--Renglones--->
■ <th>Encabezado1 de columna</th>
■ <th>Encabezado2 de columna</th>
○ </tr> <!--Fin del primer renglón (fila)--->
○ <tr> <!--Renglón2--->
■ <td>Contenido de la celda1 de columna1</td>
■ <td>Contenido de la celda2 de columna2</td>
○ </tr><!--Fin del segundo renglón (fila)--->
● </table><!--Fin de mi tabla--->
Atributos
● align: Atributo enumerativo que indica como va a encontrarse alineada la
tabla respecto al contenido del documento en cuestión. [left, center, right]
● bgcolor: Valor hexadecimal que define el color de fondo de la tabla.
● border: Número entero que define el tamaño del cuadro alrededor de la tabla.
Si fuera 0, implicaría que dicho atributo es nulo.
● cellpadding: Atributo que define el espacio entre el contenido de una celda y
su borde en píxeles y porcentaje (x px, x%).
● border-collapse: La propiedad border-collapse se utiliza para fusionar los
bordes. [inherit, separate, collapse]
● Unión de celdas:
○ rowspan (unión vertical)
○ colspan (unión horizontal)
Actividad 4. Navegadores web
Elaborar una página donde con una tabla compares los siguientes navegadores: Mozilla Firefox,
Google Chrome, Opera y Microsoft Edge.

● Las dimensiones de la tabla son de 8 filas por 5 columnas.


● En la primera columna las primeras 2 casillas se unirán y estarán vacías, el resto tendrá los
siguientes encabezados: “Año de surgimiento”, “Creador (empresa, programador)”, “Principales
características”, “Precio”, “Ventajas” y “Desventajas”.
● La primera fila deberá tener el nombre de cada navegador (uno por columna), siendo un
hipervínculo al sitio de descarga.
● La segunda fila tendrá la imagen o logo de cada navegador.
● El resto de las filas deberán ser rellenadas con la información correspondiente.
● El encabezado de la página deberá ser impuesto por el alumno.
● Utilizar colores para las fuentes, bordes y las filas y/o columnas.
Actividad 5. Mi primera discografía
De tu banda o artista preferido elabora un html con al menos cuatro álbumes de su discografía; la página debe
cumplir con lo siguiente:

● Cómo título de la página deberá ser el nombre del artista + “discografía”.


● Deberá tener la fotografía del grupo o artista.
● En forma de tabla o lista pondrás el nombre de cada álbum y su año de lanzamiento, la imagen de portada del
álbum, y ya sea como filas o sublista las tres canciones que más te gusten de él, estas como hipervínculos a su
vídeo de Youtube, audio de Spotify o Apple music.
● A lado de al menos una canción de cada álbum, deberás insertar el audio completo o un fragmento de la
canción.
● Mínimo tu canción favorita de cada albúm también deberá tener una etiqueta de video con un fragmento o el
videoclip completo de dicha canción.
● Al final de la página pondrás el sello de tu firma o disquera con su nombre y de desearlo su logo de la
empresa. Investigarlo en caso de no conocer este concepto.
● Anexar abajo tu nombre completo. Resaltar los elementos con distintas etiquetas texto.
La cabecera de
HTML <head>
La cabecera se delimita por
<head></head> siempre
contenida dentro de
<html></html>.

En ella va la descripción del


documento y su configuración
(título, scripts y estilos y
algunas configuraciones).
Cabecera:
Título <title>
Indica el título del
documento, y solo aparece
una vez en el documento.
Cabecera:
Metadatos <meta>
Los metadatos proporcionan
información para que sea
procesada automáticamente
por programas que analicen
la página.

Se usan los atributos “name”


para definir el metadato y
“content” para darle un valor.
Nota: Incluye las etiquetas de cabecera que te sean útiles en las
actividades anteriores.

Cabecera:
Enlaces <link>
Podemos incluir enlaces a otros
archivos que queramos cargar
junto a la página web.
Generalmente archivos CSS o JS

Para esto usamos la etiqueta:

<link href=”path del archivo”>


</link>

con href podemos definir dónde


se encuentra el archivo a incluir.
Íconos
Kahoot y Rewind
Formularios

<h1>Formularios HTML</h1>
<form>
Nombre: <input type="text" id="nombre" name="nombre">
Apellido paterno: <input type="text" id="paterno" name="paterno">
Apellido materno: <input type="text" id="materno" name="materno">
Delegación: <input type="text" id="delegacion" name="delegacion">
<input type="submit" value="Enviar">
</form>

Se utilizan para recibir datos del usuario e interactuar


con ellos o utilizar la información proporcionada para
las funciones y dinámicas de la página.
Etiquetas input: <input type=””>
● text ● month
● checkbox ● range
● radio ● email
● number ● time
● password ● search
● file
● hidden
● button
● submit
● date
Fieldset y legend Fieldset

<form method='GET'> Legend


<fieldset>
<legend><h3>Sign Up</h3></legend>
Nombre: <input type='text' id='name'/>
<br/>
Nombre de usuario: <input type='text' id='user'/>
<br/>
Contraseña: <input type='password' id='contr'
placeholder='Mínimo 8 caracteres'/>
<br/>
<p><input type='submit' value='Enviar'/></p>
</fieldset>
</form>
Actividad 6. “PHP is coming…”

Elabora un formulario de inicio de sesión y uno de registro con al menos cinco


inputs en el de registro y dos en el de inicio de sesión.

Actividad 7. “Let’s work together…”


Elaborar un formulario para una solicitud de empleo, mínimo de 15 inputs con
preguntas diferentes acordes al tipo de dato que se desea recibir, incluir un
fieldset y legend.
PHP
Hypertext Preprocessor
Breve historia
● Creado en 1994 por Rasmus
Lerdorf, como un conjunto de
herramientas para monitorizar las
visitas de su CV. Le llamó “Personal
Home Page Tools”.
● En 1996 ya era un lenguaje de
programación, presentado como
PHP 2.0. Está presente en el 1% de
los servidores.
● En 1997, Andi Gutmans y Zeev
Suraski reprogramaron el núcleo de
PHP, produciendo a PHP Hypertext
Preprocessor.
● En 1998 estaba presente en el
10% de los servidores, y se liberó
PHP 3.0.
● Andy y Zend produjeron un nuevo
motor de PHP llamado Zend, lo
cual produjo la versión 4.0 de PHP
en 2000.
● En 2004 se lanza PHP 5.0, con la
segunda versión del motor Zend.
Introdujo la orientación a objetos.
● A finales del 2015, salió PHP 7.0.
Características
● Lenguaje de programación
● De código abierto
● Interpretado
● Multiplataforma
● Orientado a objetos
● Débilmente tipado
● Está presente en el 80% de los servidores web
Estructura de código
XAMPP
Xampp es un paquete de instalación de software libre que consiste en un sistema de
gestión de base de datos MySQL y de servidor Apache, así como de intérpretes de
lenguajes PHP y Perl.

X Cualquier lenguaje
A pache
M ySQL
P HP
https://www.apachefriends.org/es/index.html
P erl
Convirtiendo nuestro equipo en un servidor con los servicios MySQL y Apache para la
administración y gestión de nuestros proyectos web.
Tipos de datos en PHP (Primitivos)
Tipo de dato Definición

integer Números enteros que pertenecen al conjunto ℤ


= {..., -2, -1, 0, 1, 2, ...}.

float / double Números reales (decimales).

boolean Valores lógicos: TRUE/FALSE

string Llamado también cadena, es una serie de


caracteres donde cada uno es un byte.
Por ende PHP solo admite un conjunto de 256
caracteres (ASCII).
Declaración de constantes y variables
● Constante: Su valor no puede ser cambiado durante la ejecución
del programa. Son globales.
○ define(“CONSTANTE”, ”valor”);
○ const CONSTANTE = valor;
● Variable:
○ $variable = valor;
Instrucciones de salida

echo
echo $string;

echo “Soy un string”;

echo funcionQueRegresaString();
sprintf()
Es una función que devuelve un string
dado por un formato de especificadores

Todo for

Enteros: %d,% u,%c,%o, %x, %X, %b

Flotantes: %g, %G, %e, %E, %f, %F

String: %s

Más detalle en:

https://www.php.net/manual/es/function.sp
rintf.php
print_r()
Imprime información legible para
humanos sobre una variable.

print_r($variable[, boolean])

El primer parámetro recibe la variable y


en el segundo un booleano para decidir
si se regresa como variable (true) o se
imprime en la pantalla(false u omitir)
var_dump()
Muestra información estructurada
sobre una o más expresiones
incluyendo su tipo y valor.

var_dump($expresión);
Operadores
● Aritméticos
● De asignación
● Lógicos
● Relacionales
● De concatenación de cadenas
Operadores aritméticos

● Identidad +$a ● Multiplicación $a * $b


● Negación -$a ● División $a / $b
● Suma $a + $b ● Módulo $a % $b
● Resta $a - $b ● Exponenciación $a ** $b
Operadores de asignación

El operador de asignación $a += 3; $a = $a + 3;
es el signo de igual (=) $a -= 4; $a = $a - 4;
Pero puede combinarse $a *= 2; $a = $a * 2;
con aritméticos.
$a /= 3; $a = $a / 3;

$a %= 2; $a = $a % 2;

$a **= 3; $a = $a ** 3;
Operadores lógicos
Disyunción (Ó/OR) Conjunción (Y/AND)

A B A || B A B A && B

V V V V V V

V F V V F F

F V V F V F

F F F F F F

Negación: !
$a = true; $b es false
$b = !$a;
Operadores relacionales

● Igual que == ● Mayor que >


● Idéntico que === ● Menor que <
● Diferente que != o <> ● Mayor o igual que >=
● No idéntico que !== ● Menor o igual que <=
Operadores de concatenación
de cadenas
$a = “Estrellita”; $a es “Estrellita”

$b = $a.” ¿Dónde estás?“; $b es “Estrellita ¿Dónde estás?”

$b .= “ Me pregunto quién $b es “Estrellita ¿Dónde estás? Me


serás.”; pregunto quién serás.”
Estructuras de
control
Condicionales

Salida: Es verdadero.

Salida: Soy falso.


Operador ternario

Salida: F

Salida: a es menor que b


Actividad 8. ¿Es año bisiesto?
Realiza un programa, de manera individual, en el que en una variable llamada "anio" o "year", se hagan
los procedimientos necesarios que nos indiquen si es año bisiesto o no. El resultado deberá imprimirse en
la pantalla como "El año x es un año bisiesto" o "El año x no es un año bisiesto". Donde x es el año en
cuestión.

Un año es bisiesto si cumple los siguientes criterios:

-Es bisiesto si es divisible entre 4.

-Pero no es bisiesto si es divisible entre 100.

-Pero sí es bisiesto si es divisible entre 400.

(2000 y 2400 sí son bisiestos son divisibles entre 100 pero también entre 400. 1900, 2100, 2200 y 2300 no
lo son porque solo son divisibles entre 100).

Sube el archivo extensión php. No olvides poner comentarios en el código explicando tus procedimientos.
Estructuras iterativas
for do-while
● Estructura iterativa definida. ● Estructura iterativa indefinida.
● Sintaxis: ● Realiza su ciclo una vez y después
○ for ( $var = valor; condicional; incremento) verifica la condición.
○ Ejemplo: for ($i = 0; $i <= 10; $i++) {} ● Sintaxis:
○ do
while {
● Estructura iterativa indefinida. //instrucciones
● Sintaxis: } while (condición);
○ while (condición) {] ● do
○ while ($i < 11) {
{ $i++;
$i++; }while ($i < 11);
}
Actividad 9. Ajedrez
Utilizando estructuras de control elabora un tablero como si fuera de
ajedrez, es decir, una tabla donde de manera intercalada se colorearán
las casillas de dos colores distintos (los que gustes). Esto determinando
con una variable el largo y ancho de la tabla, por ejemplo: si es $x=8 el
tablero será de 8x8, si es $x=10 el tablero será de 10x10, etc.

Subir archivo php y no olvides comentar en tu código tu procedimiento.


Actividad 10. ¿Es un número primo?
Utilizando estructuras de control realiza un programa que diga si un número
determinado en una variable es primo o no, imprimiendo el resultado en
pantalla como: "x número no es primo" ó "x número si es primo", según sea el
caso. Además, se debe imprimir en pantalla una serie de 3 en 3, iniciando del 1 al
número que determinaste en tu variable, donde se indique con la oración “Es
múltiplo de 3” los números que entren en ese caso.

Subir archivo php y comentar en el código tus procedimientos y cómo


funcionan.
Arreglos
Un dato que forma conjuntos de datos
¿Qué es un
arreglo?
En php, un arreglo es un mapa ordenado.

¿A qué se refiere eso?

Un mapa es un tipo de dato que asocia


valores con claves.

Por lo que podemos decir que un arreglo


es un tipo de dato que almacena valores
que se identifican por medio de claves.
Actividad 11. Mayor o Menor a 50

Teniendo un arreglo de n cantidad de números, realizar un programa para determinar si cada número
del arreglo es mayor o menor a 50, realizando una lista para cada caso, es decir, una lista de números
mayores a 50 y otra de los menores a 50, además de una lista con todos los elementos pertenecientes
al arreglo.

También debe de indicarse la cantidad de números en cada lista entre paréntesis.

Al final de las listas se debe indicar cuántas veces apareció el número 50.
El programa debe estar hecho en php y debe mostrar la información en pantalla de esta
forma:
foreach
Para recorrer un arreglo se puede usar
distintas técnicas

Una muy cómoda y común es por


iteraciones, para esto tenemos la
estructura de control for y una
bastante especial para arreglos:

foreach ($variable as $clave => $valor)


{
//instrucciones
}
Actividad 12. PIB
Se tendrá un arreglo asociativo de n>=10 elementos donde la llave ($key) de cada elemento es el
nombre de un país y el valor ($value) correspondiente a la llave, siendo el PIB del país en el año
2019.

Deberán realizar un programa en php que muestre los países y el PIB en una tabla. Además,
debajo de ella se debe de mostrar qué país tiene el PIB más alto.

Los valores para el PIB se pueden obtener de: https://datosmacro.expansion.com/pib

Notar que en la página se usan Euros para medir el PIB anual, utilizar esa misma moneda para las
mediciones en la actividad. Deben de haber mínimo 10 países contemplados en el programa.
Ejemplo: Tenemos nuestro arreglo indexado, y el resultado debe ser el siguiente:
Variables $_GET y $_POST
Son variables que se utilizan al recibir datos de formularios en un archivo PHP, cada una depende
del método utilizado en el atributo method del formulario:

Si se utilizó get:
$var = $_GET[‘name_del_input];

Si se utilizó post:
$var = $_POST[‘name_del_input];
Ejemplo:
Así se reciben y usan los datos:

La función isset() ayuda a saber si en primer lugar que el input exista en el formulario, y el siguiente
condicional verifica que no se enviara vacío:
Actividad 13. Sucesión de Fibonacci
La sucesión de Fibonacci, es una sucesión numérica donde cada número es la suma de los
dos números anteriores, comenzando por 0 y 1. Ejemplo:

Posición 1: 0,
Posición 2: 1,
Posición 3 (suma de los dos números anteriores, P1+P2) : 0+1 = 1,
Posición 4 (P2+P3) : 1+1 = 2,
Posición 5 (P3+P4): 1+2 = 3,
Posición 6 (P4+P5) : 2+3 = 5,
0, 1, 1, 2, 3, 5, …
Actividad 13. Sucesión de Fibonacci
Se tendrá un formulario en un archivo php llamado “solicitud.php” donde se solicite un
número. Al dar clic en el botón de enviar se deberá recibir dicho número en otro archivo
php llamado “respuesta.php” por el método POST, y ser guardado en una variable.
Posteriormente se imprimirá en la pantalla si dicho número está incluido en la sucesión
de Fibonacci o no. Finalmente se imprimirá en la pantalla la sucesión de Fibonacci hasta
llegar al número recibido o al número menor que esté incluido en la serie.

Ejemplo si el número es 200:


Arreglos bidimensionales (matrices)
Es un arreglo donde su contenido está compuesto de varios arreglos, tanto con índices
númericos o asociativos.
Funciones útiles para Arreglos

sort();
$array: El arreglo a ordenar

Esta función ordena un arreglo $sort_flags: Constantes útiles para el orden del arreglo.
dado de menor a mayor, sin
mantener el índice original de SORT_NUMERIC : Compara elementos numéricamente
cada elemento. Puede recibir un
SORT_STRING: Compara elementos como cadenas
parámetro para influir en el orden
final SORT_NATURAL : Compara como “un humano lo haría”

NOTA: No crea un nuevo arreglo, SORT_FLAG_CASE: Insensible a mayúsculas y minúsculas,


ordena el indicado puede combinarse con SORT_NATURAL y SORT_STRING
asort();
$array: El arreglo a ordenar
Ordena un array de mayor a
menor manteniendo la $sort_flags: Constantes útiles para el orden del arreglo. Las
correlación de los índices del mismas que para asort().
array con los elementos con los
que están asociados.

NOTA: No crea un nuevo


arreglo, ordena el indicado.
rsort();
$array: El arreglo a ordenar
Ordena un array de mayor a
menor sin mantener el índice
$sort_flags: Constantes útiles para el orden del arreglo. Las
original de cada elemento.
mismas que para asort().
NOTA: No crea un nuevo
arreglo, modifica el mismo
array_push();
Inserta uno o más elementos al $array: El arreglo donde el valor va a ser insertado al final
final de un array
$value1: La variable a insertar.
Puede tener el mismo efecto de
$value2: Segunda variable a insertar.
<? php

array[]=$var;

?>

Devuelve el número de
elementos del arreglo
array_pop();
Extrae el último elemento del
final del array $array: El arreglo al que se le expulsará el último índice

Si el arreglo está vacío o el


último índice está vacío, se
regresa null
array_keys();
Devuelve todas las claves de un $array: El arreglo del que se tomarán las llaves
array o un subconjunto de
claves de un array

$array: El arreglo al que se le expulsará el último índice

$search_value: si Se añade, sólo se obtendrán los índices de


los valores que sean iguales a $search_value

$strict: Determina si debería usarse una comparación


estricta (===) durante la búsqueda.
array_key_exists();
Verifica si el índice o clave dada $array: El arreglo donde se va a buscar determinado índice
existe en el array
$key: El dato que se buscará en los índices del $array
regresa true si existe o false si
no existe
implode();
Une elementos de un array en
$pieces: El arreglo a unir en string
un string

Puede tener un parámetro


$glue que se va a juntar entre
cada unión de elementos en el
$pieces: El arreglo a unir en string
array
$glue: String con el que se va a unir los elemntos del array
Regresa un nuevo string
resultado de la unión de todos
los arrays incluidos en los
parámetros de entrada
explode();
Divide un string en varios string $string: String que se busca dividir

Devuelve un array de string, $delimiter: String que se va a tomar como referencia para
siendo cada uno un substring dividir $string
del parámetro string formado
por la división realizada por los $limit: Entero que dirá cuántos elementos máximos quieres
delimitadores indicados en el en tu arreglo final. Si el entero es n, separará un máximo de n
parámetro delimiter. veces tu cadena. Si el entero es -n, despreciará las últimas n
subcadenas y regresará las subcadenas restantes antes de
las cadenas despreciadas.
array_merge();
Combina dos o más arrays $array: El primer arreglo a juntar

Regresa un array resultado de $... : Lista de arreglos a juntar


todos los que se incluyeron
Funciones de
cadena
strlen()

Regresa la longitud de la cadena.

$longCadena es igual a 12 (los espacios también cuentan como


caracteres).
strtoupper()

Regresa la cadena convertida en mayúsculas.

$cadEnMayus es igual a “HOLA CURSO WEB 2020”.


strtolower()

Regresa la cadena convertida en minúsculas.

$cadEnMinus es igual a “hola curso web 2020”.


strstr()

Regresa la cadena antes de encontrar otra dentro de una


cadena. Es sensible a mayúsculas. stristr() funciona de la
misma manera pero no es sensible a mayúsculas.

$cad1 es igual a “rso Web 2020” y $cad2 es igual a “Hola Cu”.


strpos()

Regresa la posición donde se encuentra por primera vez


una cadena, es sensible a mayúsculas. stripos() funciona de
la misma manera pero no es sensible a mayúsculas.

$posCadena es igual a 0 y $posCadenaDesde es igual a 9.


strrpos()

Regresa la posición donde se encuentra por última vez una


cadena, es sensible a mayúsculas. strripos() funciona de la
misma manera pero no es sensible a mayúsculas.

$posCadena es igual a 6, $posCadenaDesde es igual a 13 y


$posCadenaDesdeNegat es igual a 11.
str_replace()

En una cadena se reemplaza una cadena por otra, y se


regresa la nueva cadena. str_ireplace() funciona de la
misma manera pero no es sensible a mayúsculas.

$nuevaFrase es igual a “Tengo malas noticias.”.


substr()

Devuelve parte de una cadena.

$subCad1 es igual a “adena larga”, $subCad2 es igual a “aden”,


$subCad3 es igual a “adena lar”, $subCad4 es igual a “arg” y $subCad5
es igual a “la”.
Funciones definidas
por el programador
Funciones definidas por el programador

Nombre de la función

Parámetros de la función

El valor que regresa la


función

Llamada de la función
Argumentos predeterminados
Actividad 14. Destruye el fuerte. (x3 | x2)
Destruye el fuerte será un juego donde a través de la petición de coordenadas (x, y), se enviarán misiles para
destruir bases de x niveles de vida, donde si un edificio por ejemplo tiene el número 3, será destruido hasta
acertar 3 disparos sobre él.
Primero se tendrá un formulario html con el nombre que tu gustes darle al juego, con un select con al
menos las siguientes opciones de dificultades: fácil, medio y difícil.
Se recibirá la opción seleccionada en un archivo con el mismo nombre del formulario pero extensión .php y
por método get y se cumplirá lo siguiente:
-De seleccionar la dificultad fácil se generará un arreglo bidimensional de 4x4
-De seleccionar la dificultad medio se generará un arreglo bidimensional de 6x6
-De seleccionar la dificultad difícil se generará un arreglo bidimensional de 8x8
Cada arreglo al principio estará lleno de ceros (representando el suelo).
Después tendrás que generar la cantidad de edificios según la dificultad de manera aleatoria:

-Si es dificultad fácil: generar 10 edificios con un máximo de 3 vidas (las vidas será el valor numérico
que se encontrará en la casilla correspondiente en la matriz).
-Si es dificultad media: generar 20 edificios de máximo 5 de vida.
-Si es dificultad difícil: generar 40 edificios de máximo 7 de vida.

Cabe destacar que no todos los edificios tienen el mismo número de vidas.

Para generar números aleatorios se utiliza la función rand($min, $max), donde $min es el el número
más pequeño de rango y $max es el número más grande del rango. Ambos están incluidos en el
rango. Por ejemplo, rand(5, 15); genera un número aleatorio entre 5 y 15, incluyendo al 5 y 15.
Una vez preparado el campo de juego se tendrá la siguiente dinámica:

-Debe haber 2 inputs donde se soliciten las coordenadas en “x” y “y” para poder lanzar el misil.
-Las coordenadas y el campo de juego siempre serán enviados al mismo archivo php.
-El jugador tendrá 5 vidas, pierde una si falla un disparo o vuelve a disparar en un fuerte destruido, es
decir, cuando dispara el misil en una casilla con valor 0 o 9.
-Cuando se disparé a un edificio se indicará si se dañó (perdió una vida) o fue destruido con el mensaje
correspondiente en pantalla, como “Has dañado un edificio” ó “Destruiste un edificio”, en caso de
destruirse un edificio, la casilla adquirirá el valor de 9 como anteriormente se mencionó, e igual en el
caso de que falles un disparo (“Has fallado, pierdes una vida”).
-En la pantalla deberá verse la cantidad de edificios y de vidas restantes.

OPCIONAL: Visualizar en una tabla con colores el estatus del campo de juego, para la tierra ocupar café
o gris (si no se ha dañado o destruido un edificio estos también tendrán color café o gris), para los
edificios dañados ocupar el color amarillo, para los destruidos ocupar el color rojo.

Ésta actividad tiene el valor de 2 si está completa, y de 2.5 si se cubre el parámetro opcional.
Si está incompleta pero se logra por lo menos generar los campos de juego y hacer disparos se tomará el
valor de 1. Cada número se multiplica por su calificación sobre 10.
Actividad 15. El espía.
El código morse fue un lenguaje de comunicación muy utilizado en el siglo XX, el cual consistía en
cifrar mensajes suplantando las letras por puntos y guiones.

Supongamos que eres un espía en la Primera Guerra


Mundial. Tu misión es elaborar un sistema donde
puedas cifrar un mensaje escrito con el alfabeto
normal a morse, y de morse al alfabeto normal. Por
ende realizarás un formulario donde con un select
selecciones la opción de convertir a morse o a
lenguaje normal y otro campo para el mensaje. Al
darle enviar llegará la información a un archivo php y
mostrarás la traducción correspondiente a la opción
! ——··——
y mensaje seleccionados, desplegadas en pantalla.
. ·—·—·— , —·—·——
? ··——·· " ·—··—·
Requisitos:

-Para las traducciones de lenguaje normal a morse: entre cada letra morse debe haber un espacio y
entre cada palabra tres espacios.

-Para las traducciones de morse a normal: entre cada letra debe haber un espacio y entre palabras dos
espacios. La traducción deberá darse en mayúsculas.

-Para caracteres latinos como: ñ, á, é, etc., tanto minúsculas como mayúsculas, se deberán convertir a
sus literales sin signos de acentuación (a, e , i, n). Para caracteres especiales como #, $, %, &, etc, utilizar
el carácter & en lenguaje normal y en morse *****.

-También deberás validar si al seleccionar la opción de un lenguaje no se envíe un mensaje perteneciente


a ese formato, es decir no puedes seleccionar traducir en morse y enviar un mensaje en morse.

-Utilizar guiones o guión bajo para las letras en morse.

-Apoyarse del sistema ASCII. Investigar funciones chr() y ord().


Cookies
Lou Montulli
¿Qué es una cookie?

Es un dato almacenado en la computadora del cliente.


Tienen nombre, valor y caducidad.
setcookie();

$name: El nombre de la cookie

$value: El valor de la cookie

$expire: El tiempo de existencia de la cookie

$path, $domain, $secure, $httponly: Ayudan a manejar el alcance y manejo seguro de una cookie.
setcookie()

Crea una cookie.

nombre valor fecha de caducidad

La función time() regresa el número de segundos que han


pasado desde el 1 de enero de 1970 00:00:00
setcookie()
Para eliminar una cookie, se debe poner el nombre de la
cookie a borrar, cualquier valor y time() - 1.

nombre valor fecha de


caducidad

La fecha de caducidad debe ser time() - 1 porque es un


segundo atrás de ahorita.
Actividad 16. Floating Point
En un archivo php, construir un cuadrado o rectángulo que contenga un caracter con posibilidad
de moverse hacia arriba, abajo, a la izquierda y a la derecha. Este movimiento debe de ser
controlado por el usuario por medio de 4 botones.

El caracter a mover al inicio estará colocado en la parte superior izquierda del cuadrado y puede
moverse por toda el área. En caso de que llegue a los bordes y se siga moviendo, aparecerá del
otro lado del cuadrado (efecto PAC-MAN).

También debe de haber un botón que al darle click, reinicie el cuadrado colocándolo en su posición
inicial (esquina superior izquierda).

El marco de movimiento del caracter (el cuadrado o rectángulo) puede variar de largo y ancho.
Esto debe de ser controlado con una variable o constante en el código.
Incluir código
externo
include
Esta función la utilizamos para incluir código externo a nuestro archivo php, normalmente
para incluir funciones o procedimientos encontrados en otro archivo php.

En caso de que la ruta del archivo externo enviada como parámetro sea incorrecta, el
programa sólo enviará una advertencia (warning).
include_once()

Funciona igual que include, la única diferencia es que si el código del archivo ya ha sido
incluido, no se volverá a incluir, y se devolverá el valor TRUE (devuelve booleanos). Como
su nombre indica, el archivo será incluido solamente una vez.

Ésta función se puede utilizar en casos donde el mismo archivo podría ser incluido y
evaluado más de una vez durante una ejecución.
require()

Funciona igual que include excepto que en caso de fallo, producirá un error fatal de nivel
E_COMPILE_ERROR. Es decir, detendrá la ejecución del programa al no encontrar el archivo
especificado como parámetro.
require_once()

Cumple la misma función que include_once(), pero con las características de require().

Al igual que la primer función mencionada, nos ayuda a no buscar el archivo varias veces
durante la ejecución.
Sesiones
¿Qué es una sesión?

Es una forma sencilla de almacenar datos para usuarios de manera


individual. Para poder crear o reanudar una, se llama a la función
session_start().
Para asignar un valor a los datos de la sesión:
$_SESSION[$llave] = $valor
Para acceder a los datos de la sesión:
$_SESSION[$llave]
Para eliminar toda la información asociada con la sesión actual:
session_destroy()
Libera todas las variables de sesión
session_unset()
IMPORTANTE

Cuando finalices una sesión debes usar primero session_unset() y después


session_destroy().
session_name()

Función para obtener en una cadena el nombre de nuestra sesión. Si pasamos como parámetro
una cadena, cambiará el nombre a esta, pero debe ser antes del session_start().
session_id()
Función para obtener en una cadena el código identificador de nuestra sesión. Si pasamos
como parámetro una cadena o número, cambiará el identificador a éste parámetro, pero debe
ser antes del session_start().

ANTES DE MODIFICAR
DESPUÉS DE MODIFICAR
Actividad 17. “¿Y tú eres?...”

Se tendrá una página de una escuela, de cuyo nombre no quiero


acordarme, en la cual si es la primera vez que entras se muestra un
formulario de registro y una breve descripción de la escuela con su
logo o escudo. En el formulario se pedirá el nombre de usuario, la
categoría (si es alumno, profesor o padre de familia), un color de fondo,
un color de letra y la fuente de texto deseada. Con la información
obtenida se iniciará una sesión, es decir, utilizarás variables de sesión,
nombrada con tu apellido y de id tu fecha de nacimiento, ejemplo:
Camacho = 13022002.
Para cada categoría deberá mostrarse una página con las secciones
que le correspondan, deben ser al menos dos. Por ejemplo, para los
alumnos pueden tener una sección sería la de calificaciones y para los
padres una de información de la escuela (dirección, directivos,
teléfonos, etc).
En cada página se deberá mostrar un mensaje de bienvenida, el cual
comenzará con “Bienvenid@” seguido de “alumn@”, “profesor(a)” o “sr(a)”
(según la categoría), y finalizando con el nombre de usuario.
El color de fondo y de texto de la página serán los colores introducidos
en el formulario.
Los datos del formulario siempre se enviarán a la misma página. Al final
de cada página, debe haber un enlace para cerrar sesión, el cual
acabará con la información de la sesión y deberá mostrarse la página
como si fuera la primera vez que entrara el usuario.
Rewind
Alumno: Profe tengo duda en...
Nosotros: ...
Cookies y
sesiones
SESIÓN COOKIE
Intercambio de información temporal o Pequeños datos enviados de un sitio web
interactivo entre dos o más dispositivos, o y almacenados en la computadora del
una computadora y usuario. usuario en su navegador.

Almacenado en el lado del cliente como


Almacenada en el lado del servidor.
archivo de texto.

Puede almacenar gran cantidad de Puede almacenar menos cantidad de


información. información.

Es más seguro ya que es más difícil Es menos seguro porque es más fácil de
acceder a la información. acceder a la información.

Soporta varios tipos de valores. Soporta solo cadenas.

Disponible hasta que el navegador esté Guarda la información hasta que que
abierto. expire o el usuario la elimine.

A comparación con la sesión, es menos


Más confiable.
confiable.
Fecha y hora
Rewind
Alumno: Profe tengo duda en...
Nosotros: ...
Cookies y
sesiones
SESIÓN COOKIE
Intercambio de información temporal o Pequeños datos enviados de un sitio web
interactivo entre dos o más dispositivos, o y almacenados en la computadora del
una computadora y usuario. usuario en su navegador.

Almacenado en el lado del cliente como


Almacenada en el lado del servidor.
archivo de texto.

Puede almacenar gran cantidad de Puede almacenar menos cantidad de


información. información.

Es más seguro ya que es más difícil Es menos seguro porque es más fácil de
acceder a la información. acceder a la información.

Soporta varios tipos de valores. Soporta solo cadenas.

Disponible hasta que el navegador esté Guarda la información hasta que que
abierto. expire o el usuario la elimine.

A comparación con la sesión, es menos


Más confiable.
confiable.
Fecha y hora
Zona horaria en PHP
Para obtener la zona horaria:
date_default_timezone_get()
Para configurar la zona horaria:
date_default_timezone_set(“America/Mexico_City”)
Para configurar la zona horaria del servidor:
En xampp/php/ini.php está por defecto:
Si quisiéramos cambiarla a la CDMX, sería reemplazando la línea por:
date.timezone=America/Mexico_City

Listado de zonas horarias admitidas en php:


https://www.php.net/manual/es/timezones.php
mktime()

Devuelve el número de segundos que han transcurrido o transcurriran


desde el 1 de enero de 1970 a las 00:00 hrs hasta la fecha y hora
introducida.

mktime(horas, minutos, segundos, mes, día, año)


Cookies y
sesiones
SESIÓN COOKIE
Intercambio de información temporal o Pequeños datos enviados de un sitio web
interactivo entre dos o más dispositivos, o y almacenados en la computadora del
una computadora y usuario. usuario en su navegador.

Almacenado en el lado del cliente como


Almacenada en el lado del servidor.
archivo de texto.

Puede almacenar gran cantidad de Puede almacenar menos cantidad de


información. información.

Es más seguro ya que es más difícil Es menos seguro porque es más fácil de
acceder a la información. acceder a la información.

Soporta varios tipos de valores. Soporta solo cadenas.

Disponible hasta que el navegador esté Guarda la información hasta que que
abierto. expire o el usuario la elimine.

A comparación con la sesión, es menos


Más confiable.
confiable.
Fecha y hora
Zona horaria en PHP
Para obtener la zona horaria:
date_default_timezone_get()
Para configurar la zona horaria:
date_default_timezone_set(“America/Mexico_City”)
Para configurar la zona horaria del servidor:
En xampp/php/ini.php está por defecto:
Si quisiéramos cambiarla a la CDMX, sería reemplazando la línea por:
date.timezone=America/Mexico_City

Listado de zonas horarias admitidas en php:


https://www.php.net/manual/es/timezones.php
mktime()

Devuelve el número de segundos que han transcurrido o transcurriran


desde el 1 de enero de 1970 a las 00:00 hrs hasta la fecha y hora
introducida.

mktime(horas, minutos, segundos, mes, día, año)


date()

Devuelve una cadena formateada según el formato dado usando el


tiempo UNIX (si omitimos este último parámetro se tomará time()).

$fecha es igual a 15-05-2020 02:00:00 PM


Recordatorio: time() devuelve el
número de segundos transcurridos
date(formato, tiempoUnix) ó date(formato) desde el 1 de enero de 1970 a las
00:00 hrs.
Algunos formatos
j Día del mes sin ceros 1 a 31
iniciales

w Representación numérica 0 (para domingo) hasta 6


del día de la semana (para sábado)

z El día del año (comenzando 0 hasta 365


por 0)

Y Una representación Ejemplos: 1999 o 2003


numérica completa de un
año, 4 dígitos

y Una representación de dos Ejemplos: 99 o 03


dígitos de un año

A Ante meridiem y Post AM o PM


meridiem en mayúsculas
Algunos formatos

h Formato de 12 horas de una 01 hasta 12


hora con ceros iniciales

H Formato de 24 horas de una 00 hasta 23


hora con ceros iniciales

i Minutos con ceros iniciales 00 hasta 59

s Segundos con ceros iniciales 00 hasta 59

Todos los formatos:


https://www.php.net/manual/es/function.date.php
Archivos
Antes de:
● Asegúrate de tener activada la recepción de archivos en la siguiente línea del
archivo /xampp/php/php.ini :

● Asegurate de tener en tu formulario el atributo enctype=”multipart/form-data” :


$_FILES
Es un arreglo asociativo que se crea al momento de recibir archivos de input del tipo “file” por método
POST. Sus respectivos índices contienen lo siguiente:

❏ $_FILES[‘name_del_input_file’][‘name’] -> Nombre del archivo enviado.


❏ $_FILES['name_del_input_file']['type'] -> Nos proporciona el MIME del archivo.
❏ image/(png, jpg, jpeg)
❏ application/(pdf, octet-stream)
❏ text/plain
❏ $_FILES['name_del_input_file']['tmp_name'] -> Da el path y nombre de la ubicación temporal del
archivo.
❏ $_FILES['name_del_input_file']['size'] -> Tamaño en bytes del archivo.
❏ $_FILES['name_del_input_file']['error'] -> El código de error que pueda aparecer al subir el archivo.
Funciones útiles y almacenamiento de archivos

● basename($_FILES[‘archivo’][‘name’]) -> Da el nombre del archivo con su


extensión.
● pathinfo($_FILES[‘archivo’][‘name’], PATHINFO_EXTENSION) -> Da la
extensión del archivo.
● file_exists($ruta_donde_estan_las_imagenes_guardadas) -> Verifica si un archivo
ya existe en cierto directorio.
● Mover/descargar imágenes recibidas:
move_uploaded_file($_FILES[‘archivo’][‘tmp_name’], $ruta_de_carpeta_destino);
Actividad 18. Mi galería de arte.
Elaborarán una página web donde se podrán visualizar diversas pinturas junto a su nombre, año y autor.
Para ello tendrán que asegurarse que el nombre del archivo contenga estos 3 datos de la siguiente forma:
Archivo: nombre_de_la_pintura$autor$&año&.extensión (jpg, jpeg, png).
Imprimir la información en formato de lista o tabla, en caso de que falte algún dato imprimir la cadena
correspondiente como “Sin nombre de la obra”, “Sin año”, “Sin autor”.
La carpeta donde se almacenarán todas las pinturas deberá estar en la siguiente ruta: “/statics/img/paints” .
RETO:
Contar con un hipervínculo llamado agregar pintura donde al dar clic en él se abra un formulario html con
los inputs correspondientes para agregar un nuevo archivo, pero además que el nombre sea determinado
por esos input (Nombre de la pintura, año y autor).
Validar que al recibir el archivo sea una imagen, es decir que su extensión sólo pueda ser jpg, jpeg y png. Y
que al menos un input haya sido contestado.
¿Listos para el
mayor desafío?
HORA DE UN RALLY….
SESIÓN COOKIE
Intercambio de información temporal o Pequeños datos enviados de un sitio web
interactivo entre dos o más dispositivos, o y almacenados en la computadora del
una computadora y usuario. usuario en su navegador.

Almacenado en el lado del cliente como


Almacenada en el lado del servidor.
archivo de texto.

Puede almacenar gran cantidad de Puede almacenar menos cantidad de


información. información.

Es más seguro ya que es más difícil Es menos seguro porque es más fácil de
acceder a la información. acceder a la información.

Soporta varios tipos de valores. Soporta solo cadenas.

Disponible hasta que el navegador esté Guarda la información hasta que que
abierto. expire o el usuario la elimine.

A comparación con la sesión, es menos


Más confiable.
confiable.
Fecha y hora
Zona horaria en PHP
Para obtener la zona horaria:
date_default_timezone_get()
Para configurar la zona horaria:
date_default_timezone_set(“America/Mexico_City”)
Para configurar la zona horaria del servidor:
En xampp/php/ini.php está por defecto:
Si quisiéramos cambiarla a la CDMX, sería reemplazando la línea por:
date.timezone=America/Mexico_City

Listado de zonas horarias admitidas en php:


https://www.php.net/manual/es/timezones.php
mktime()

Devuelve el número de segundos que han transcurrido o transcurriran


desde el 1 de enero de 1970 a las 00:00 hrs hasta la fecha y hora
introducida.

mktime(horas, minutos, segundos, mes, día, año)


date()

Devuelve una cadena formateada según el formato dado usando el


tiempo UNIX (si omitimos este último parámetro se tomará time()).

$fecha es igual a 15-05-2020 02:00:00 PM


Recordatorio: time() devuelve el
número de segundos transcurridos
date(formato, tiempoUnix) ó date(formato) desde el 1 de enero de 1970 a las
00:00 hrs.
Algunos formatos
j Día del mes sin ceros 1 a 31
iniciales

w Representación numérica 0 (para domingo) hasta 6


del día de la semana (para sábado)

z El día del año (comenzando 0 hasta 365


por 0)

Y Una representación Ejemplos: 1999 o 2003


numérica completa de un
año, 4 dígitos

y Una representación de dos Ejemplos: 99 o 03


dígitos de un año

A Ante meridiem y Post AM o PM


meridiem en mayúsculas
Algunos formatos

h Formato de 12 horas de una 01 hasta 12


hora con ceros iniciales

H Formato de 24 horas de una 00 hasta 23


hora con ceros iniciales

i Minutos con ceros iniciales 00 hasta 59

s Segundos con ceros iniciales 00 hasta 59

Todos los formatos:


https://www.php.net/manual/es/function.date.php
Archivos
Antes de:
● Asegúrate de tener activada la recepción de archivos en la siguiente línea del
archivo /xampp/php/php.ini :

● Asegurate de tener en tu formulario el atributo enctype=”multipart/form-data” :


$_FILES
Es un arreglo asociativo que se crea al momento de recibir archivos de input del tipo “file” por método
POST. Sus respectivos índices contienen lo siguiente:

❏ $_FILES[‘name_del_input_file’][‘name’] -> Nombre del archivo enviado.


❏ $_FILES['name_del_input_file']['type'] -> Nos proporciona el MIME del archivo.
❏ image/(png, jpg, jpeg)
❏ application/(pdf, octet-stream)
❏ text/plain
❏ $_FILES['name_del_input_file']['tmp_name'] -> Da el path y nombre de la ubicación temporal del
archivo.
❏ $_FILES['name_del_input_file']['size'] -> Tamaño en bytes del archivo.
❏ $_FILES['name_del_input_file']['error'] -> El código de error que pueda aparecer al subir el archivo.
Funciones útiles y almacenamiento de archivos

● basename($_FILES[‘archivo’][‘name’]) -> Da el nombre del archivo con su


extensión.
● pathinfo($_FILES[‘archivo’][‘name’], PATHINFO_EXTENSION) -> Da la
extensión del archivo.
● file_exists($ruta_donde_estan_las_imagenes_guardadas) -> Verifica si un archivo
ya existe en cierto directorio.
● Mover/descargar imágenes recibidas:
move_uploaded_file($_FILES[‘archivo’][‘tmp_name’], $ruta_de_carpeta_destino);
Actividad 18. Mi galería de arte.
Elaborarán una página web donde se podrán visualizar diversas pinturas junto a su nombre, año y autor.
Para ello tendrán que asegurarse que el nombre del archivo contenga estos 3 datos de la siguiente forma:
Archivo: nombre_de_la_pintura$autor$&año&.extensión (jpg, jpeg, png).
Imprimir la información en formato de lista o tabla, en caso de que falte algún dato imprimir la cadena
correspondiente como “Sin nombre de la obra”, “Sin año”, “Sin autor”.
La carpeta donde se almacenarán todas las pinturas deberá estar en la siguiente ruta: “/statics/img/paints” .
RETO:
Contar con un hipervínculo llamado agregar pintura donde al dar clic en él se abra un formulario html con
los inputs correspondientes para agregar un nuevo archivo, pero además que el nombre sea determinado
por esos input (Nombre de la pintura, año y autor).
Validar que al recibir el archivo sea una imagen, es decir que su extensión sólo pueda ser jpg, jpeg y png. Y
que al menos un input haya sido contestado.
¿Listos para el
mayor desafío?
HORA DE UN RALLY….
El final
GRACIAS

También podría gustarte