LENGUAJE PHP: EL LENGUAJE EN GENERAL
¡El servidor te responde
PHP Un lenguaje de script al lado del servidor
Estructuras secuenciales
- En esta secición son programas sencillos para probar instrucciones y acciones básicas de php sin usar estructuras de control selectivas o repetitivas.
Ejercicio 1 : Usa la instrucción echo
- Realiza un programa donde visualices un mensaje usando la instrucción echo
- Prueba a insetar caracteres especiales \n, \t
- Qué diferenica hay en usar \n e insertar la etiquega , pruébalo y verifica la salida (mira el código fuelte del recurso generado.
- Declara variable como se muestra y visualízarla.
|
- Asigna a una variable un valor real
- Visualiza dicho valor con formato %s, %f, %F, %c, %x, %X, %b, %o
- Prueba a especificar en número de decimales en %f
$n = 5.25251;
printf ("Valor del número con 2 decimales %.2f ",, $n); //Mostrará 5.25, solo dos decimales
|
- Asigna a una variable cada uno de los cinco tipos básicos
- Después de cada asignación visualiza el tipo con la función gettype()
$a = 10;
echo "Valor de la variable \$a es $a y es de tipo ".gettype($a)."<br />";
|
- Haz un programa que asignes diferentes valores enteros a las variables.
- Realiza la asignación en distinto formato (decimal, octal, hexadecimal y binario).
- Prueba posteriormente a visualziarlo.
- Analiza e interpreta el resultado.
|
- Usa las fuciones especificadas anteriormente (decbin, dechex, decoct), para visualizar un número en los diferentes formatos numéricos
- Muestra el valor original, el convertido
- En el primer caso muestra el tipo del valor que retorna la función usada
|
- Usa las fuciones especificadas para visualizar en los tres sistemas decimales los números del 1 al 100
- Qué diferencia hay de hacerlo así a usar printf
|
Ejercicio 8.- Declaración de variables
- Haz un programa donde declares variables de diferentes tipos
- Asigna los valores con diferente formato
- Visualiza sus valores
|
Ejercicio 9: Declaración de variables
- Este programa asignará los siguientes valores a variables y luego lo visualizará
- 125;
- 0874; //Observaras que esta asignación produce un error, ya que el 8,no es un dígito o guarismo correcto como valor en una
sistema octal
//Tras esta observación asigna un valor válido
- 0xAbC12;
- 0b1100;
- "Esto es una cadena de caracteres";
- 'Esto es otra cadena de caracteres';
Esto es una cadena
multilínea
y termina aquí
Esto es una cadena
multilínea
y termina aquí
- 1.23432230003322014000002234101;
- 1234E-2;
- null;
- true;
- false;
|
Ejercicio 10: Cambiar aleatoriamente el estilo de un texto
- Cargar un texto con un h y color aleatorio
<hx> style=color:#RGB>Este es el texto que debe de aparecer cambiante </hx>
- x, R,G y B tendrán valores generados aleatoriamente siendo
- x un valor de 1 a 6.
- R un valor en hexadecimal de entre 0 y 255 (tonalidad de rojo)
- G un valor en hexadecimal de entre 0 y 255 (tonalidad de Verde)
- B un valor en hexadecimal de entre 0 y 255 (tonalidad de Azul)
|
Ejercicio 11:Probando variables de variables
- Declaramos el precio de 5 productos de hortalizas
- Declaramos la variable $producto
- Vamos visualizando el producto y su precio cambiando solo el valor del producto por el nombre de la hortaliza escribiendo la cadena
echo "<h1>El precio de $producto es ${$producto}</h1>";
|
Estructuras de control
Ejercicio 12: Selección simple
- Generamos un número aleatoria entre 1 y 100
- Si el número es par informamos que ha ganado un premio
- En cualquier caso mostramos el número obtenido
|
Ejercicio 13: Selección simple 2
- Generamos una edad entre 1 y 90 años
- Mostraremos la edad generada
- En caso de tener menos de 18 años informaremos de ello en un mensaje en rojo
|
Ejercicio 14: Selección simple completa
- Generamos una edad entre 1 y 90 años
- El programa nos dirá si la edad generada es o no mayor de edad
|
Mostrar nombre mes
- Generamos un número entre 1 y 15
- Mostramos el número del mes y su nombre (el que correspondiente al número: enero, febrero, ...
- En caso de ser mayor de 12 mostraremos mes incorrecto
- Usamos la estructura
if (..)
...
elseif
...
elseif
...
...
else
....
|
Selección con switch
- Generamos un número de mes de forma aleatoria
- Mostramos el número de mes y su nombre
- Sería igual que el ejercicio anterior, pero usando un switch
|
Ejercicio 17: Muestra el nombre y número de días de un mes
- Modifica el ejercicio anterior añadiendo la información del número de días
- Intenta seguir usando el switch
- ¿Cómo podrás hacer cosas particulares en cada case del switch (el nombre del mes) y algo común en varios casos (meses de 30 días y de 31 días)
|
Estructuras repetitivas
- Creamos una tabla html con los números del 1 al 20, con 4 columnas, una para cada uno de los siguientes sistemas numéricos
- Decimal
- Octal
- HExadecimal
- Binario
Posible solución |
---|
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<H1>tabla de sistema numérico</H1>
<table style="border: solid 1px darkred">
<caption>Valores en diferentes Sistemas numércios del 1 al 20</caption>
<tr>
<th>Decimal</th>
<th>Hexadecimal</th>
<th>Binario</th>
<th>Octal</th>
</tr>
<?php
for ($contador =0;$contador<20;$contador ++ ){
echo "\n<tr>";
printf("<td>%d</td><td>%X</td><td>%b</td><td>%o</td>", $contador, $contador, $contador, $conteador);
echo "</tr>\n";
}
?>
</table>
</body>
</html>
|
|
- Usando la estructura de control for
for ($n=32; $n<128: $n++){ //iterará $n desde 32 hasta el valor 128
}
- Para mostrar una tabla básica, las etiquetas html serán
<table>
<caption></caption>
<tr>
<th>titulo 1</th>
<th>titulo 2</th>
<tr>
<td></td>
......
</table>
- Realiza el programa que genere dicha información
Posible solución haciéndolo en función de un número de columnas |
---|
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<table style = "border: solid 1px red">
<?php
$columnas = 10;
//Primero escribimos las cabeceras
echo "<tr>";
for ($c = 0; $c<$columnas; $c++) {
echo "<th>Número</th><th>ASCII</th>";
}
echo "</tr>";
//Para cada fila (habrá 128 / numero de columnas
$numero_filas = ceil(128/$columnas);
for ($fila = 0; $fila<$numero_filas; $fila++) {
echo "<tr>";
for ($c = 0; $c<$columnas; $c++) {
$valor = $fila+32 + $c*$numero_filas+1;
printf("<td>%d</td><td>%c</td>", $valor, $valor);
}
echo "</tr>";
}
echo "</tr>";
?>
</table>
</body>
</html>
</php>
|
|
Ejercicio 18: Suma 100 número
- Mostrar la suma de los primeros 100 números naturales
- Se quiere ver el número de iteración y la suma hasta ese momento (Es decir queremos ver cien líneas)
- Cada iteración que aparezca en numeración ordinal en símbolo 1ª , 2ª, ...
|
Tirar dados
- Vamos a simular el juego de los dados
- Vamos a tirar 100000 veces un dado y vamos a ver cuantas veces sale
el 1, el 2, el 3, el 4, el 5 y el 6
- Para tirar el dado, usamos la función random
|
Ejercicio 20: Mostrar mes y número de días
- Genera un número aleatorio entre 1 y 15
- Muestra con un mensaje en número de días y el nombre del mes
- Intenta usar la instrucción switch vista en clase
|
Ejercicio 20: Validar Fechas
Haz un programa que obtenga de forma aleatoria: día (1-33), mes(1-14) y año(1-3000) y nos diga si la fecha es correcta o no y porqué.
- Recuerda obtener si el año es bisiesto o no,
- Para ello puedes definirte una función
- Para calcular si un año es bisiesto, lo es si y solo si
El año es divisible entre 4 y no lo es entre 100, o bien lo es entre 400
|
Tabla de multiplicar
- Genera un número aleatorio y muestra la tabla de multiplicar
- Haz que salga con una tabla usando las etiquetas html
<table>
<tr>
<th> </th>
</tr>
......
<tr>
<td> </td>
</tr>
........
</table>
- Intenta hacerlo que salgan las diez tablas de multiplicar
|
Tip: Revisa la teoría, y confirma en este ejercicio que tienes claro la posibilidad de entremezclar código php y html y para el intérprete de php es todo como si fuera el mismo script
Generamos una Nómina
- Haz un programa que a partir de precio hora y de número de horas calcule una nómina, teniendo en cuenta que:
- mas de 40 horas son extras (1.5 el precio base)
- IRPF < 600E exento
- Entre 600 y 800 5%
- Mas de 800 12 %
- Nos debe de dar detalle del bruto, descuentos y neto de salario
|
Ejercicio 5 Número primo
- Un programa que nos diga si un número es o no primo
- Recuerda que un número es primo si es divisible entre sí mismo y la unidad
- El cero no lo consideraremos no primo, pero no hemos de aplicar el algoritmo general, es un caso especial
- Genera un número aleatorio entre -100 y 100
|
Ejercicios con fechas
Ejercicio 24: Fechas básicas
- Haz un programa que me diga cuantos segundos ha pasado desde el 1 de enero de 1970 hasta el instante actual.
- Que me muestra la fecha actual en formato Dia/mes/año Hora:minutos:segundos, todos los datos numéricos
- Muestra la fecha dentro de 25 horas con el formato anterior.
- Usando la etiqueta META Refresh (etiqueta de html que hace que de forma automática la página se recargue cada x segundos, ver sintaxis más abajo), haz que la página se recargue cada 5 segundos y observa cómo cambian los datos y entiéndelo
time();
date($formato, $timestamp)
<head>
<meta http-equiv="refresh" content="5">
</head>
|
Ejercicio 24: Fechas básicas===
Ejercicio : Fechas básicas
- A partir de tu fecha de nacimiento, haz un programa que me diga la edad
Para ello vamos a encontrar los segundos de la edad y dividirlo entre los segundos que tiene un año
|
Ejercicio 25: Haz un reloj
- Haz un programa que me me muestre un reloj digital numérico con precisión de milisegundos
- La página se debe de recargar cada 0.01 segundos
- El formato del reloj debe ser
- Hora
- Minutos:Segundos:Milésimas
microtime(); //Retorna un string ("microsegundos segundos")
strpos("cadena", "caracter") //Busca el caracter en la cadena y nos retorna su posición
substr("cadena", "pos_ini", "pos_fin" //Retorana un substring de cadena desde el carácter ubicado en la posición pos_1 hasta el carácter ubicado en la posición pos_"
- Refresca la página cada 0.01 segundos
<head>
<meta http-equiv="refresh" content="0.01">
</head>
Posible solución |
---|
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width">
<meta http-equiv="Refresh" content="0.01">
<title>Document</title>
</head>
<body>
<?php
$instante = microtime();
$pos = strpos($instante, " ");
$milisegundos = substr($instante, 0,$pos);
$milisegundos =floor($milisegundos*10);
$reloj = date("H:i:s:").$milisegundos;
echo "<h1>$reloj</h1>";
?>
</body>
</html>
|
|
Ejercicio 26: Fecha aleatoria
- Genera una fecha aleatoria (día, mes, año, hora, minuto, segundos) como un string
- Convierte ese string fecha en timestamp (entero largo que representa segundos)
- Obtén la diferencia en segundos con la fecha actual (Si la fecha es anterior a 1/1/1970, ese timestamp será negativ o)
- Obten la fecha de ese número de segundos
- Interprete y entiende cada dato que obtienes
strtotime("mes/dia/año") //Convierte una fecha dada como string en un timestamp
date (formato, timestapm)//convierte un timestamp en staring
checkdate (dia,mes.year) //Función que retorna ture si la fecha es correcta, false si no lo es
|
Ejercicio 27: Fecha en idiomas
- Instala en el sismtea los siguintes locales es_ES fr_FR y en_US(Varolores para idiomas español, francés e inglés)
- Informa de la fecha en cada idioma con la siguiente estructura
setlocale(LC_ALL, idioma) //Establece un idioma en el sistema para fechas, monedas, y formatos. Debe estar instalado en el sistema
date (formato, timestapm)//convierte un timestamp en staring
checkdate (dia,mes.year) //Función que retorna ture si la fecha es correcta, false si no lo es
|
Ejercicio 28: Indica los días de la semana en tres idioma
- Instala en el sistema los siguintes locales es_ES fr_FR y en_US(Varolores para idiomas español, francés e inglés)
- Informa de cómo se escribe el día de la semana en cada uno de esos indiomas
setlocale(LC_ALL, idioma) //Establece un idioma en el sistema para fechas, monedas, y formatos. Debe estar instalado en el sistema
echo strftime("en lenguaje idioma %A<br />"); //Nos muestra el nombre del día de la semana actual del lenguaje en el idioma establecido
echo strftime("en Español %A<br />", strtotime("+1 day"));//Nos muestra el nombre del día de la semana actual del lenguaje en el idioma establecido
.....
|
Ejercicios con funciones
Ejercicio 29: Declarara una función
- Declara una función que me devuelva el mayor de dos números dados
- Invócala desde el programa principal
|
Ejercicio 30: Variables globales
- Declara una función llamada par
- Tomará un valor generado aleatoriamenete en el script principal (no dentro de la función)
- Retornará true o false según el valor sea par o no sea par
|
Ejercicio 31: Parametros por referencia
- Haz una función que no retorne nada (procedimiento)
- Esta función recibe un valor
- Si el valor es par lo divide por dos y si es impar lo multiplica por dos
- El valor que se pasa deberá quedar establecido en la variable/parámetro después de invocar a la función
|
Ejercicios de sintaxis
Trabajando con funciones de string
función strpos()
- entendemos la función strpos($donde_buscar, $cadena_buscada),
- Creamos una frase donde aparezca un nombre "Mi nombre es Manuel"
- Probamos a buscar ese nombre y vemos en qué posición aparece
- Posteriormente probamos a buscar M
- Mostramos en qué posición aparece
|
función strpos()
- Probamos las siguientes funciones de string
- char()
- ord()
- substr() - Devuelve parte de una cadena
- md5 (Usaremos mejor crypt más adelante)
- ucfirst() - Convierte el primer caracter de una cadena a mayúsculas
- strtolower() - Convierte un string a minúsculas
- strtoupper() - Convierte un string a mayúsculas
- ucwords() - Convierte a mayúsculas el primer caracter de cada palabra de una cadena
- trim() - Elimina espacio en blanco (u otro tipo de caracteres) del inicio y el final de la cadena
- ltrim() - Retira espacios en blanco (u otros caracteres) del inicio de un string
- rtrim() - Retira espacios en blanco (u otros caracteres) del inicio de un string
|