IAW - Introducción a PHP

José Juan Sánchez Hernández

IES Celia Viñas (Almería) - 2018/2019

2 Práctica: Introducción a PHP

2.1 Entorno de desarrollo con Docker

2.1.1 Preparación del entorno de desarrollo

Para el desarrollo de las prácticas vamos a hacer uso de contenedores Docker.

Para poder ejecutar contenedores Docker es necesario tener instalado Docker Community Edition (CE) en nuestro equipo.

En la web oficial encontrará la información necesaria para realizar la instalación de Docker CE sobre Windows, macOS, Ubuntu, Debian, Fedora y CentOS.

2.1.2 Cómo crear un contenedor Docker con persistencia de datos

Si queremos que los datos del contenedor sean persistentes tenemos que crear un volumen donde vamos a indicar el directorio de nuestra máquina local que queremos vincular con el directorio /var/www/html del contenedor Docker, que es el directorio que utiliza Apache HTTP Server por defecto para servir una página web.

El comando que podríamos usar para lanzar nuestro contenedor Docker es el siguiente:

docker run -d --rm --name my-apache-php-app -p 80:80 -v "$PWD":/var/www/html php:7.2-apache

2.2 Ejercicios de introducción

1. Escribe un script PHP que muestre información sobre la configuración de PHP que hay en el servidor.

Notas:

2. Revise la documentación oficial de PHP para ver qué información podemos obtener de la variable superglobal $_SERVER. Escribe un script haciendo uso de la variable superglobal $_SERVER muestre lo siguiente:

Notas:

3. Revise la documentación oficial para conocer todas las variables superglobals que existen. Con ayuda de la función print_r muestra el contenido de cada una de las variables superglobals.

Notas:

2.3 Estructuras de control (if, else, switch)

2.3.1 if

La estructura de control if permite la ejecución condicional de fragmentos de código PHP.

Sintaxis:

<?php

if (condicion_es_cierta) {
    bloque_de_sentencias
}

?>

Ejemplo:

El siguiente ejemplo mostraría a es mayor que b si la variable $a es mayor que $b:

<?php

$a = 10;
$b = 5;

if ($a > $b) {
    echo "a es mayor que b";
}

?>

2.3.2 if - else

Sintaxis:

<?php

if (condicion_es_cierta) {
    bloque_de_sentencias_1
} else {
    bloque_de_sentencias_2
}

?>

Ejemplo:

El siguiente ejemplo puede mostrar a es mayor que b si la variable $a es mayor que $b o a NO es mayor que b en caso contrario.

<?php

$a = 1;
$b = 5;

if ($a > $b) {
    echo "a es mayor que b";
} else {
    echo "a NO es mayor que b";
}

?>

2.3.3 elseif / else if

Sintaxis elseif:

<?php

if (condición_1) {
    bloque_de_sentencias_1
} elseif (condición_2) {
    bloque_de_sentencias_2
} else {
    bloque_de_sentencias_3
}

?>

Sintaxis else if:

<?php

if (condición_1) {
    bloque_de_sentencias_1
} else if (condición_2) {
    bloque_de_sentencias_2
} else {
    bloque_de_sentencias_3
}

?>

Ejemplo:

<?php

$a = 1;
$b = 1;

if ($a > $b) {
    echo "a es mayor que b";
} elseif ($a == $b) {
    echo "a es igual que b";
} else {
    echo "a es menor que b";
}

?>

2.3.4 switch

Sintaxis:

<?php

switch ($variable) {
    case valor1:
        bloque_de_sentencias_1
        break;

    case valor2:
        bloque_de_sentencias_2
        break;

    default:
        bloque_de_sentencias_3
}

?>

Esta estructura de control es equivalente a:

<?php

if ($variable == valor1) {
    bloque_de_sentencias_1
} elseif ($variable == valor2) {
    bloque_de_sentencias_2
} else {
    bloque_de_sentencias_3
}

?>

Ejemplo:

<?php

$numero = 2;

switch ($numero) {
    case 1:
        echo "La variable es igual a 1";
        break;

    case 2:
        echo "La variable es igual a 2";
        break;

    default:
        echo "La variable es un número distinto a 1 y 2";
}

?>

2.3.5 Ejercicios

1. Escribe un script que simule el comportamiento de lanzar una moneda al aire y muestre una imagen con la cara o la cruz de la moneda.

Notas:

2. Escribe un script PHP que genere un número aleatorio entre 1 y 10, simulando una nota numérica y muestre un mensaje indicando la calificación obtenida teniendo en cuenta los siguientes rangos:

Notas:

3. Escribe un script PHP que genere un número aleatorio entre 1 y 7, y muestre un mensaje indicando a qué día de la semana corresponde. Por ejemplo, 1 sería lunes, 2 martes, etc.

Notas:

4. Escribe un script PHP que realice la simulación de lanzar un dado y muestre una imagen con un valor aleatorio enre 1 y 6. Resuelva el ejercicio utilizando la estructura de control if - else.

Notas:

Imágenes: 1, 2, 3, 4, 5 y 6.

5. Escribe un script PHP que realice la simulación de lanzar un dado y muestre una imagen con un valor aleatorio entre 1 y 6. Resuelva el ejercicio utilizando la estructura de control switch.

Notas:

Imágenes: 1, 2, 3, 4, 5 y 6.

6. Escribe un script PHP que realice la simulación de lanzar un dado y muestre una imagen con un valor aleatorio enre 1 y 6. Resuelva el ejercicio sin utilizar las estructuras de control if - else y switch.

7. Escribe un script PHP que realice la simulación de lanzar dos dados y muestre una imagen con los valores obtenidos en cada uno de los dados.

2.4 Bucles (for, while, do-while)

2.4.1 for

Sintaxis:

for (expr1; expr2; expr3) {
    sentencias;
}

Ejemplo:

El siguiente ejemplo muestra los números del 1 al 10.

<?php

for ($i = 1; $i <= 10; $i++) {
    echo $i;
    echo "<br>";
}

?>

Ejemplo:

El siguiente ejemplo muestra los números del 10 al 1.

<?php

for ($i = 10; $i >= 1; $i--) {
    echo $i;
    echo "<br>";
}

?>

2.4.2 while

Sintaxis:

while (condicion_es_verdadera) {
    sentencias;
}

Ejemplo:

El siguiente ejemplo muestra los números del 1 al 10.

<?php

$i = 1;
while ($i <= 10) {
    echo $i;
    echo "<br>";
    $i++;
}

?>

Ejemplo:

El siguiente ejemplo muestra los números del 10 al 1.

<?php

$i = 10;
while ($i >= 1) {
    echo $i;
    echo "<br>";
    $i--;
}

?>

2.4.3 do - while

do {
    sentencias;
} while (condicion_es_verdadera)

Ejemplo:

El siguiente ejemplo muestra los números del 1 al 10.

<?php

$i = 1;
do {
    echo $i;
    echo "<br>";
    $i++;
} while ($i <= 10);

?>

Ejemplo:

El siguiente ejemplo muestra los números del 10 al 1.

<?php

$i = 10;
do {
    echo $i;
    echo "<br>";
    $i--;
} while ($i >= 1);

?>

2.4.4 Ejercicios bucle for

1. Escribe un script PHP que muestre los números del 1 al 10 en una tabla de una fila y 10 columnas. Utiliza un bucle for

Notas:

2. Escribe un script PHP que muestre los números del 1 al 10 en una tabla de una columna y 10 filas. Utiliza un bucle for.

3. Escribe un script PHP que muestre en una tabla los números pares que existen entre 1 y 100. Utiliza un bucle for.

4. Escribe un script PHP que muestre la tabla de multiplicar de un número aleatorio. Utiliza un bucle for

5. Escribe un script PHP que muestre las tablas de multiplicar del 1 al 10. Utiliza un bucle for

2.4.5 Ejercicios bucle while

1. Escribe un script PHP que muestre los números del 1 al 10 en una tabla de una fila y 10 columnas. Utiliza un bucle while

Notas:

2.4.6 Ejercicios bucle do - while

1. Escribe un script PHP que muestre los números del 1 al 10 en una tabla de una fila y 10 columnas. Utiliza un bucle while

Notas:

2.5 Arrays y bucles (for, while, do-while y foreach)

Un array es una estructura de datos que nos permite almacenar varios valores en una única variable.

2.5.1 Arrays con índices

Para crear un array es suficiente con hacer:

$productos = array();

Existen dos formas de inicializar los valores de un array indexado:

$productos = array("Disco SSD", "Memoria RAM", "Monitor");

o también asignando los valores posición a posición:

$productos[0] = "Disco SSD";
$productos[1] = "Memoria RAM";
$productos[2] = "Monitor";

Tenga en cuenta que los arrays siempre empiezan por la posición 0.

2.5.2 Consultar su contenido con print_r

print_r($productos);

2.5.3 Cómo conocer el tamaño de un array con count

$productos = array("Disco SSD", "Memoria RAM", "Monitor");
echo count($productos);

2.5.4 Cómo recorrer un array indexado con for

$productos = array("Disco SSD", "Memoria RAM", "Monitor");
$numero_de_elementos = count($productos);

for ($i = 0; $i < $numero_de_elementos; $i++ ) {
    echo $productos[$i];
    echo "<br>";
}

2.5.5 Arrays asociativos

Los arrays asociativos nos permiten usar claves en lugar de índices, para acceder a los valores del array.

Existen dos formas de inicializar los valores de un array asociativo:

$edades = array("Juan" => "25", "María" => "28", "Paco" => "27");

o también asignando los valores a cada clave:

$edades["Juan"] = "35";
$edades["María"] = "35";
$edades["Paco"] = "35";

2.5.6 Cómo recorrer un array asociativo con foreach

$edades = array("Juan" => "25", "María" => "28", "Paco" => "27");

foreach ($edades as $clave => $valor) {
    echo "Clave: " . $clave . " - Valor: " . $valor;
    echo "<br>";
}

2.5.7 Ejercicios

1. Escribe un script PHP que realice las siguientes acciones:

2. Escribe un script PHP que realice las siguientes acciones:

3. Escribe un script PHP que realice las siguientes acciones:

4. Escribe un script PHP que realice las siguientes acciones:

Escribe un script PHP que sobre un array de temperaturas realice las siguientes operaciones:

El array de temperaturas lo vamos a generar con números aleatorios. El array será de 10 elementos y los valores aletorios generados estarán entre 1 y 30.

5. Resuelva el ejercicio utilizando bucles for.

Notas:

6. Resuelva el ejercicio utilizando bucles while.

Notas:

7. Resuelva el ejercicio utilizando bucles do-while.

Notas:

8. Escribe un script PHP que sobre un array de temperaturas realice las siguientes operaciones:

El array de temperaturas lo vamos a generar con números aleatorios. El número de elementos del array será especificado mediante un formulario y los valores aletorios generados estarán entre 1 y 30.

Notas:

9. Escribe un script PHP que permita ordenar el siguiente array asociativo:

array("Antonio"=>"31", "María"=>"28", "Juan"=>"29", "Pepe"=>"27")

Notas:

10. Escribe un script PHP que muestre el siguiente array asociativo ordenado por la clave. El resultado deberá seguir el siguiente patrón:

La capital de ITALIA es ROMA

Tenga en cuenta que tendrá que utilizar una función para convertir las claves y los valores del array en mayúscula.

array("Italy"=>"Rome", "Luxembourg"=>"Luxembourg", "Belgium"=> "Brussels", "Denmark"=>"Copenhagen", "Finland"=>"Helsinki", "France" => "Paris", "Slovakia"=>"Bratislava", "Slovenia"=>"Ljubljana", "Germany" => "Berlin", "Greece" => "Athens", "Ireland"=>"Dublin", "Netherlands"=>"Amsterdam", "Portugal"=>"Lisbon", "Spain"=>"Madrid", "Sweden"=>"Stockholm", "United Kingdom"=>"London", "Cyprus"=>"Nicosia", "Lithuania"=>"Vilnius", "Czech Republic"=>"Prague", "Estonia"=>"Tallin", "Hungary"=>"Budapest", "Latvia"=>"Riga", "Malta"=>"Valetta", "Austria" => "Vienna", "Poland"=>"Warsaw");

Notas:

11. Escribe un script PHP que convierta el array del ejercicio anterior en un objeto JSON.

Notas:

2.6 Ejercicios - Funciones

1. Escribe una función que reciba un número como parámetro de entrada y que imprima su tabla de multiplicar.

Notas:

2. Escribe una función que reciba dos parámetros de entrada (inicio y fin) y que imprima las tablas de multiplicar entre esos dos números. Utilice la función del ejercicio anterior.

3. Escribe una función llamada inicializar_array que reciba tres parémetros llamados numero_de_elementos, min y max, y que devuelva un array de números enteros comprendidos entre los valores min y max. El número de elementos que contiene el array será el especificado en el parámetro de entrada numero_de_elementos

Notas:

4. Escribe una función llamada calcular_media que reciba un array como parámetro de entrada y que devuelva la media de todos los valores que contiene.

5. Escribe una función llamada calcular_maximo que reciba un array como parámetro de entrada y que devuelva cuál es el máximo valor del array.

6. Escribe una función llamada calcular_minimo que reciba un array como parámetro de entrada y que devuelva cuál es el mínimo valor del array.

7. Escribe una función llamada imprimir_array que reciba un array como parámetro de entrada y muestre su contenido en una tabla con dos columnas. La primera columna mostrará la posición del array y la segunda el valor que hay en esa posición.

8. Crea un archivo llamado funciones.php que contenga todas las funciones creadas en los ejercicios anteriores. Escriba un script PHP que incluya el archivo funciones.php y haga uso de cada una de ellas.

Notas:

2.7 Ejercicios - Formularios

1. Escribe un script que muestre un formulario con un campo de texto y que permita enviarlo usando el método GET. El mismo script será capaz de recibir el dato enviado por el formulario y lo mostrará.

Notas:

2. Escribe un script que muestre un formulario con un campo de texto y que permita enviarlo usando el método POST. El mismo script será capaz de recibir el dato enviado por el formulario y lo mostrará.

Notas:

3. Escribe un script que muestre un formulario que permita introducir un número y mostrar su tabla de multiplicar.

4. Escribe un script que mediante un formulario permita seleccionar el número de monedas que se desean lanzar (de 1 a 20) y el tipo de moneda (Dólar Estadounidense, Euro, Yen japonés, Libra esterlina, Franco suizo). El comportamiento tiene que ser similar al de la web random.org.

Notas:

2.8 Ejercicios - Subida de ficheros

1. Escribe un script PHP que mediante un formulario solamente permita subir archivos de imágenes.

Notas:

2.9 Ejercicios - Objetos

Recursos:

  1. Define una clase llamada Persona que cumpla los siguientes requisitos:

Una vez definida la clase, relice dos instancias y utilice todos los métodos que ha creado.

2.10 Ejercicios - JSON

Recursos:

  1. Escribe un script que haga uso de la API de OpenWeatherMap y muestre la previsión metereológica de la ciudad que se indique en un formulario web.

2.11 Ejercicios - Acceso a bases de datos (Consulta)

Notas:

2.12 Ejercicios - Acceso a bases de datos (Inserción)

Notas:

2.13 Ejercicios - Acceso a bases de datos (Edición)

Notas:

2.14 Ejercicios - Acceso a bases de datos (Borrado)

Notas:

2.15 Sesiones

Notas:

3 Referencias

Los recursos que vamos a utilizar en esta práctica son los siguientes:

4 Licencia

Licencia de Creative Commons
Esta página forma parte del curso Implantación de Aplicaciones Web por José Juan Sánchez y se distribuye bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.