Activitats
PHP Bàsic
-
201tresfrases.php: Mostra 3 frases, cadascuna en un paràgraf utilitzant les tres possibilitats que hi ha de mostrar contingut. Després, introdueix dos comentaris, un de bloc i un altre d'una línia. -
202calculs.php: Escriu un programa que utilitze les variables$xi$y. Assigna'ls els valors166i999respectivament. Tot seguit, mostra per pantalla el valor de cada variable, la suma, la resta, la divisió i la multiplicació. -
203dadesPersonals.php: Escriu un programa que emmagatzeme en variables teu nom, primer cognom, segon cognom, email, any de naixement i telèfon. Després mostra'ls per pantalla dins d'una taula.Nom Bruce Cognoms Wayne Email batman@dccomics.com Any de naixement 1939 Telèfon 555666777 -
204dadesPersonales.htmli204dadesPersonales.php: És el mateix exercici que l'anterior, però separant la lògica. En el primer fitxer crearem el formulari per a introduir les dades i després recollirem les dades i generarem la taula en el segon arxiu. -
205anys.php: Després de llegir l'edat d'una persona per la URL, mostrar l'edat que tindrà d'aquí a 10 anys i fa 10 anys. A més, mostra quin any serà en cada un dels casos. Finalment, mostra l'any de jubilació suposant que treballaràs fins als 67 anys. No cal que faces un formulari, pots provar-ho directament via URL:205anys.php?edad=33.
Tip: $currentYear = date("Y");
206diners.php: A partir d'una quantitat de diners, mostrar la seva descomposició en bitllets (500, 200, 100, 50, 20, 10, 5) i monedes (2, 1) perquè el nombre d'elements sigui mínim. No es pot utilitzar cap instrucció condicional. Per exemple, en introduir139ha de mostrar:
1 bitllet de 100
0 bitllet de 50
1 bitllet de 20
1 bitllet de 10
1 bitllet de 5
2 moneda de 2
intdiv($dividend, $divisor) o passar un nombre flotant a sencer pots fer servir la funció intval().
-
207posnegzero.php: A partir d'un número, mostra per pantalla si el número és positiu, negatiu o zero. -
208mayor3.php: Sense fer ús de condicions que utilitzen dins de la condició els operadors lògics, mostra el més gran de tres números (a, b i c). -
209mayor3c.php: Utilitza en les condicions els operadors lògics. -
210nomEdad.php: A partir d'una edat mostra per pantalla:
nadó si té menys de 3 anys
nen si té entre 3 i 12 anys
adolescent entre 13 i 17 anys
adult entre 18 i 66
jubilat a partir de 67
Exercicis d'investigació
-
Investiga perquè serveix l'operador nau espacial, disponible des de PHP7 (https://www.php.net/manual/es/migration70.new-features.php). Explica amb un parell de línies el seu propòsit i mitjançant el codi demostra el seu ús.
-
Investiga per a què serveix la instrucció
match(), disponible des de PHP8 (https://www.php.net/manual/ca/control-structures.match.php). Explica amb un parell de línies el seu propòsit i mitjançant el codi demostra el seu ús.
Dates
-
213Dates.php: Crea un fitxer que realitza les següents tasques:- Mostra la data i hora actuals amb el format:
dd/mm/yyyy hh:mm:ss - Mostra el nom de la zona horària que s'utilitza per defecte.
- Mostra la data de que serà d’ací 45 dies.
- Mostra el nombre de dies que han passat des de l'1 de gener.
- Mostra la data i hora actuals de Nova York.
- Mostra el dia de la setmana que era l'1 de gener d'enguany.
- Mostra la data i hora actuals amb el format:
Cadenes
-
214Cadenes.php: Crea una pàgina que reba un nom. Amb la directiva de tipus estricta (declare( strict_types = 1 );) aplica les següents funcions:- Elimina els espais del principi i el final del nom si els hi haguera (trim).
- Elimina la lletra
adel principi i el final del nom si els hi haguera (trim). - Mostra la variable
nomen majúscules, minúscules i amb la primera lletra en majúscula i les altres en minúscules (strtoupper, strtolower, ucfirst). - Mostra el codi ascii de la primera lletra del nom (ord).
- Mostra la longitud del nom (strlen).
- Mostra el nombre de vegades que apareix la lletra
a(majúscula o minúscula, substr_count). - Mostra la posició de la primera
aexistent en el nom, siga majúscula o minúscula (strpos). Si no hi ha cap mostrarà -1. - El mateix, però amb l''última
a. - Mostra el nom substituint la lletra
opel número0, siga majúscula o minúscula (str_replace). - Indica si el nom comença per
alo no.
-
215Cadenes.php: Utilitza la funcióparse_urlper a extraure de la url les següents parts:- El protocol utilitzat (en l'exemple "http").
- El nom d'usuari (en l'exemple "username").
- El path de la url (en l'exemple "/path").
- El querystring de la url (en l'exemple "arg=value").
$url = "http://username:password@hostname:9090/path?arg=value#anchor";
Bucles
-
220parells050.php:Escriu un programa que mostre els números parells del 0 al 50 (dintre d'una llista desordenada).220parellsAB.php: A partir de l'anterior, refacciona perquè funcione amb els paràmetresiniciifi. -
221suma110.php: Escriu un programa que sume els números de l'1 al 10.221sumaAB.php: A partir de l'anterior, refacciona perquè funcione ambiniciifi. -
222potencia.php: A partir d'una base i exponent, mitjançant l'acumulació de productes, calcula la potència utilitzant l'instrucciófor.222potenciaWhile.php: Reescriu l'exercici anterior fent ús dewhile.222potenciaDoWhile.php: Reescriu l'exercici anterior fent ús sols dedo-while. -
223taulaMultiplicar.php: Mostra dins d'una taula HTML la taula de multiplicar d'unnúmero. Utiliza<thead>amb els seus respectius<th>y<tbody> per a dibujar la tabla. Per exemple:a * b = a*b 7 * 1 = 7 7 * 2 = 14 ... 7 * 10 = 70 -
224formulari.html: Crea un formulario que permeta llegir unaquantitat.224llegirDades.php: A partir dequantitat, prepara un formulari amb tantes caixes (textbox) com el valor dequantitatrebut. Finalment, en224sumarDades.php: a partir de les dades de totes les caixes de text de la pàgina anterior, suma i mostra el total. -
225formulari.htmli225taula.php: A partir d'un nombre defilesicolumnes, crear una taula amb aquesta mida. Les cel·les han d'estar emplenades amb els valors de les coordenades de cada cel·la. 226formulari.htmli226quadrat.php: Basant-te en l'exercici anterior, omple la taula de manera que només les vores tinguin contingut, quedant-se la resta de cel·les en blanc.
227formulari.htmli227equis.php: Basant-te en l'exercici anterior, ara només ha d'aparèixer el contingut dels dos diagonals.228quadratMultiplicar.php: Crea un programa que mostre per pantalla un quadrat exactament igual (fixa't bé a les capçaleres, tant de les files com de les columnes) al de la imatge amb les taules de multiplicar.
Arrays
-
230aleatoris50.php: Omple un array amb 50 números aleatoris compresos entre el 0 i el 99, i després mostra'l en una llista desordenada. Per crear un nombre aleatori, utilitzeu la funciórand(inici, fi). Per exemple:$num = rand(0, 99) -
231bola8.html: Prepara un formulari amb una caixa de text que faça una pregunta a l\'usuari.231bola8.php: A partir de l'anterior, crea un programa que mostre la pregunta rebuda i genere una resposta de manera aleatòria entre un conjunt de respostes predefinides, emmagatzemades en un array: Si, no, potser, és clar que sí, per suposat que no, no ho tinc clar, segur, jo diria que sí, ni de conya, etc..Aquest exercici es basa en el joc de la Bola 8 màgica.
-
232mates.php: A partir de l'exercici 230, genera un array aleatori de 33 elements amb números compresos entre el 0 i 100 i calcula:- El major
- El menor
- La mitjana
-
233sexos.php: Omple un array de 100 elements de manera aleatòria amb valorsMoF. Un cop completat, torna a recórrer-lo i calcula quants elements hi ha de cadascun dels valors. Per això, emmagatzema el resultat en un array associatiu['M' => 44, 'F' => 56].Finalment, mostra el resultat per pantalla
-
234monedes.php: Torna a fer l'exercici 206, el de les monedes (500, 200, 100, 50, 20, 10, 5, 2, 1), però fent ús d'arrays i un bucle. Emmagatzema el resultat en un array associatiu. Mostra el resultat en una llista desordenada només amb les quantitats que tenen algun valor. -
235altures.php: Mitjançant un array associatiu, emmagatzema el nom i l'alçada de 5 persones (nom => altura). Posteriorment, recorre l'array i mostra-ho en una taula HTML. Finalment afegeix una darrera fila a la taula amb l'alçada mitjana. -
236persones.php: Mitjançant un array bidimensional, emmagatzema el nom, alçada i email de 5 persones. Per això, crea un array de persones, sent cada persona un array associatiu:[ ['nom'=>'Aitor', 'altura'=>182, 'email'=>'aitor@correo.com'],[ …],… ]Posteriorment, recorre l'array i mostra'l en una taula HTML. -
237llegirQuantitat.htmli237llegirPersones.php: a partir d'un formulari amb un camp dequantitatde persones, generar un nou formulari per llegir el nom, alçada i email dequantitatpersones.237gestionarPersones.php: A partir de les persones introduïdes, mostrar les vostres dades en una taula, i posteriorment, destacar les dades del més alt i la del més baix. -
238taulaDistints.php: Omple un array bidimensional de 6 files per 9 columnes amb números aleatoris compresos entre 100 i 999 (tots dos inclosos). Tots els números han de ser diferents, és a dir, no se'n pot repetir cap. Mostra a continuació per pantalla el contingut de l'array de manera que:- La columna del màxim ha d'aparèixer en blau.
- La fila del mínim ha d'aparèixer en verd
- La resta de números han d'aparèixer en negre.
-
239Arrays.php: Crea una pàgina i resol els exercicis següents utilitzant funcions d'arrays:- Crea un array amb els noms de diversos alumnes de la classe incloent el teu.
- Mostra el nombre d'elements que té l'array (count).
- Crea una cadena de text que continga els noms dels alumnes existents en l'array separats per un espai i mostra-la (implode).
- Mostra l'array en un ordre aleatori diferent al que ho vas crear (shuffle).
- Mostra l'array ordenat alfabèticament (sort).
- Mostra els alumnes el nom dels quals continga almenys una “a” (array_filter).
- Mostra l'array en l'ordre invers al que es va crear (rsort).
- Mostra la posició que té el teu nom en l'array (array_search).
-
240Ciutats.php: Segons l'INE les 7 ciutats més grans d’Espanya (per habitants) el 2018 van ser les següents:- Madrid, MAD, 3.223.334
- Sevilla, AN , 688.711
- Murcia, MU, 447.182
- Málaga, AN, 571.026
- Zaragoza, AR, 666.880
- València, CV, 791.413
- Barcelona, CAT, 1.620.343
Copia
index.phpi crea un nou documentcituats.php. Defineix un array que continga aquesta informació sobre ciutats i habitants. Imprimeix una taula d'ubicacions i habitants que incloga la població total de les 7 ciutats.Opcional: Modifica la solució de l’anterior exercici perquè mostre les ciutats ordenades per habitants. Després mostra-les per ordre alfabètic.
-
241Alumnes.php: Resol els exercicis següents utilitzant funcions d'arrays:- Crea un array d'alumnes on cada element siga un altre array que continga nom i edat de l'alumne.
- Crea una taula HTML en la qual es mostren totes les dades dels alumnes.
- Utilitza la funció
array_columnper a obtenir un array indexat que continga únicament els noms dels alumnes i mostra’ls per pantalla. - Crea un array amb 10 números i utilitza la funció
array_sumper a obtenir la suma dels 10 nombres. - Sense usar bucles for calcula la mitjana d'edat de l'alumnat.
-
242CiutatsOpcional.php: Modifica la solució del exerciciciutats.phpperquè la taula continga també la columna del total d’habitants de la comunitat autònoma de les ciutats de la llista i el percentatge sobre els habitants de la comunitat autònoma que representa.Per exemple:
Ciutat Habitants Habitats CA % sobre CA València 791.413 5.003.769 15.81% Pista: Caldrà modificar l'array
$ciutatsi convertir-lo en multidimensional. Les dades de comunitats autònomes hauran d'estar en un altre array.Dades: Municipis de España
Funcions
-
250arrayParell.php: Crea les funcions següents:- Una funció que esbrina si un nombre és parell:
esParell(int $num): bool. - Una funció que retorne un array de mida
$tamamb números aleatoris compresos entre$mini$max:arrayAleatori(int $tam, int $min, int $max): array. - Una funció que reba un
arrayamb números aleatoris per referència i torne la quantitat de nombres parells que hi ha emmagatzemats:arrayParells(array &$array): int.
- Una funció que esbrina si un nombre és parell:
-
251parametrosVariables.php: Crea les funcions següents:- Una funció que retorne el nombre més gran de tots els números rebuts com a paràmetres: function
major(): int. Utilitza les funcionsfunc_get_args(), etc... No pots fer servir la funciómax(). - Una funció que concatene tots els paràmetres rebuts separant-los amb un espai:
function concatenar(...$paraules) : string. Utilitza l'operador..
- Una funció que retorne el nombre més gran de tots els números rebuts com a paràmetres: function
-
252matematiques.php: Afegeix les funcions següents:digits(int $num): int→ retorna la quantitat de dígits d'un número.digitN(int $num, int $pos): int→ torna el dígit que ocupa, començant per l'esquerra, la posició$pos.llevarPerDarrere(int $num, int $quantitat): int→ li treu per darrere (dreta)$quantitatdígits.llevarPerDavant(int $num, int $quantitat): int→ li treu per davant (esquerra)$quantitatdígits.
Per provar les funcions, feu ús tant de pas d'arguments posicionals com arguments amb nom.
253biblioteca.php: crea un fitxer amb funcions per sumar, restar, multiplicar i dividir dos números.-
254arrayFunciones.php: fent ús d'un array que emmagatzeme el nom de les funcions del fitxer anterior, a partir de dos números rebuts per URL, recorre l'array i invoca les funcions de manera dinàmica fent ús de funcions variable. -
255funcions.php: Escriu una funció per retornar una etiqueta HTML<img />.La funció hauria d’acceptar com a argument obligatori l’URL de la imatge i arguments opcionals per a un text alternatiu, alçada i amplada.
-
256funcions.php: Copieu la funció de l’exercici anterior i modifiqueu-la de manera que només es passe el nom de fitxer a la funció en lloc de l’URL completa. Dins de la funció, farem ús d’una variable global per fer l’URL completa.Per exemple, si passem
photo.pnga la funció, i la variable global conté/images, llavors l’atributsrcde l'etiquetaretornada serà
/images/photo.png.Una funció com aquesta és una forma senzilla de mantenir correctes les vostres etiquetes d’imatges, fins i tot si les imatges es mouen a un nou camí o servidor. Només cal canviar la variable global, per exemple, de
/imagesahttp://images.example.com/. -
257funciocolors.php: Els colors web com#ffffffi#cc3399es realitzen concatenant els valors hexadecimals de color per a vermell, verd i blau.Escriu una funció que accepte 3 arguments: roig, verd i blau, i que retorne un string que conté el color adequat per utilitzar-lo en una pàgina web.
Per exemple, si els arguments són 255, 0, i 255, llavors la cadena retornada hauria de ser #FF00FF.
Pot resultar útil utilitzeu la funció
dechex()integrada, que es troba documentada a http://www.php.net/Assegureu-vos que els paràmetres reben valors enters i que són colors vàlids.
Implementa 3 exemples d’ús.
258.258funcionsSQL.php: Crea una funció anomenada insert que ens genere una sentència INSERT INTO en SQL.
Per a açò la funció rebrà dos paràmetres:
1. El nom de la taula
2. Un array associatiu que contindrà els noms i valors dels camps de la taula.
La sentència resultant tindrà la següent forma:
```
“INSERT INTO nom_taula (nom dels camps separats per comes)
VALUES (noms dels camps separats per comes amb el caràcter “:” davant)
```
De moment, no farem res amb els valors dels camps.
Ajuda: utilitza les funcions `sprintf`, `implode` i `array_keys`
-
259funcionsSQL2.php: A partir de l'exercici anterior crea una altra funció que reba els mateixos paràmetres més un paràmetre booleà per a indicar si volem generar la query amb els noms dels camps o no.El paràmetre tindrà el valor
trueper defecte.Si el seu valor és
truegenerarà la consulta igual que en l'exercici anterior, però si ésfalsela generarà així:INSERT INTO nom_taula VALUES (valors dels camps separats per comes amb el caràcter ‘:’ davant) -
260funcionsSQLReferencia.php: Repeteix l'exercici anterior amb els següents canvis:La cadena resultant es passarà per referència.
Passarem la cadena de la següent forma:
INSERT INTO taula (camps) VALUES (valors)Dins de la funció substituirem el següent:
- El text taula pel nom de la taula.
- El text camps pels noms dels camps separats per comes
- El text valors pels noms dels camps separats per comes i el caràcter ‘:’ davant.
Crèdits
- Aitor Medrano. (setembre de 2021) Desarrollo Web en Entorno Servidor disponible en: https://aitor-medrano.github.io/dwes2122/index.html