Salta el contingut

Activitats

Activitat 3: Treballar amb dates

Crea un fitxer anomenat dates.php i realitza les següents tasques:

  1. Mostra la data i hora actuals amb el format: dd/mm/yyyy hh:mm:ss
  2. Mostra el nom de la zona horària que s'utilitza per defecte.
  3. Mostra la data de que serà d’ací 45 dies.
  4. Mostra el nombre de dies que han passat des de l'1 de gener.
  5. Mostra la data i hora actuals de Nova York.
  6. Mostra el dia de la setmana que era l'1 de gener d'enguany.

En acabar penja el document a Aules.

Activitat 4

200dadesPersonals.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

206anyos.php: Després de llegir l'edat d'una persona, 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 65 anys.

Tip: $anyoActual = date("Y");

Cadenes

  1. 221Cadenes.php: Copia el contingut de la pàgina index.php, activa la directiva de tipus estricta (declare( strict_types = 1 );) i mostra el següent:

    1. Elimina els espais del principi i el final del nom si els hi haguera (trim).
    2. Elimina la lletra a del principi i el final del nom si els hi haguera (trim).
    3. Mostra la variable nom en majúscules, minúscules i amb la primera lletra en majúscula i les altres en minúscules (strtoupper, strtolower, ucfirst).
    4. Mostra el codi ascii de la primera lletra del nom (ord).
    5. Mostra la longitud del nom (strlen).
    6. Mostra el nombre de vegades que apareix la lletra a (majúscula o minúscula, substr_count).
    7. Mostra la posició de la primera a existent en el nom, siga majúscula o minúscula (strpos). Si no hi ha cap mostrarà -1.
    8. El mateix, però amb l''última a.
    9. Mostra el nom substituint la lletr o pel número zero, siga majúscula o minúscula (str_replace).
    10. Indica si el nom comença per al o no.
  2. 222Cadenes.php: En el mateix document cadenes.php i a partir d'una variable que continga una url:

    $url='http://username:password@hostname:9090/path?arg=value#anchor';
    
    Utilitza la funció parse_url per a extraure de la url les següents parts:
    1. El protocol utilitzat (en l'exemple "http").
    2. El nom d'usuari (en l'exemple "username"). 3. El path de la url (en l'exemple "/path"). 4. El querystring de la url (en l'exemple "arg=value").

Arrays indexats

  1. 231Arrays.php: Crea una pàgina, copia el contingut de la pàgina index.php i resol els exercicis següents utilitzant funcions d'arrays:

    1. Crea un array amb els noms de diversos alumnes de la classe incloent el teu.
    2. Mostra el nombre d'elements que té l'array (count).
    3. Crea una cadena de text que continga els noms dels alumnes existents en l'array separats per un espai i mostra-la (implode).
    4. Mostra l'array en un ordre aleatori diferent al que ho vas crear (shuffle).
    5. Mostra l'array ordenat alfabèticament (sort).
    6. Mostra els alumnes el nom dels quals continga almenys una “a” (array_filter).
    7. Mostra l'array en l'ordre invers al que es va crear (rsort).
    8. Mostra la posició que té el teu nom en l'array (array_search).
  2. 232Ciutats.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.php i crea un nou document cituats.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.

Arrays multidimensionals

  1. 233Alumnes.php: Resol els exercicis següents utilitzant funcions d'arrays:

    1. Crea un array d'alumnes on cada element siga un altre array que continga nom i edat de l'alumne.
    2. Crea una taula HTML en la qual es mostren totes les dades dels alumnes.
    3. Utilitza la funció array_column per a obtenir un array indexat que continga únicament els noms dels alumnes i mostra’ls per pantalla.
    4. Crea un array amb 10 números i utilitza la funció array_sum per a obtenir la suma dels 10 nombres.
    5. Sense usar bucles for calcula la mitjana d'edat de l'alumnat.
  2. 234CiutatsOpcional.php: Modifica la solució del exercici ciutats.php perquè 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 $ciutats i convertir-lo en multidimensional. Les dades de comunitats autònomes hauran d'estar en un altre array.

    Dades: Municipis de España

Funcions

  1. 241funcions.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.

  2. 242funcions.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.png a la funció, i la variable global conté /images, llavors l’atribut src de l'etiqueta retornada 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 /images a http://images.example.com/.

  3. 243funciocolors.php: Els colors web com #ffffff i #cc3399 es 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.

  4. 244funcionsSQL.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

  5. 245funcionsSQL2.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 true per defecte.

    Si el seu valor és true generarà la consulta igual que en l'exercici anterior, però si és false la generarà així:

    INSERT INTO nom_taula 
      VALUES (valors dels camps separats per comes amb el caràcter : davant)
    
  6. 246funcionsSQLReferencia.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:

    1. El text taula pel nom de la taula.
    2. El text camps pels noms dels camps separats per comes
    3. El text valors pels noms dels camps separats per comes i el caràcter ‘:’ davant.

Formularis

  1. 261ExempleGet.php: Crea una pàgina que reba com a paràmetre un nom i mostre el text ‘Benvingut [nom]!!!’ sent [nom] el nom has passat com a paràmetre.

  2. 262Formulari.php: Crea un formulari que tinga els següents camps:

    • firstname
    • lastname
    • phone
    • email

    En l'atribut action del formulari posarem el següent:

    <form action="262Formulari.php" .../>
    

    Açò farà que siga la pròpia pàgina del formulari la que processe les dades del mateix.

    En prémer Enviar han d'aparèixer sota el formulari les dades que s'han introduït en el mateix en format de taula.

  3. 263FormulariReparat.php: Soluciona el problema dels paràmetres no enviats de l'exercici anterior.

  4. 264FormulariValidat.php: Modifica l'exercici anterior realitzant les següents validacions:

    • Tots els camps són obligatoris.
    • firstname, no pot superar els 25 caracters.
    • lastname, no pot superar els 50 caracters.
    • phone, ha de contenir 9 digits (expressió regular: ^\d{9}$).
    • email, ha de ser una adreça electrònica correcta.

    S'avaluaran tots els camps i si hi ha error/s caldrà mostrar-lo/s. Si no hi ha errors es mostraran les dades introduïdes per l'usuari.

  5. 265FormulariOpcions.php: Modifica l'exercici anterior afegint els següents camps al formulari:

    • genre: serà un radio button i podrà ser home, dona i no binari.
    • hobbies: serà un checkbox amb aficions de la que podràs triar-ne més d'una:
      • Lectura
      • Programació
      • Ciclisme
      • Running
      • ...
    • contact-time: serà una llista de les millores hores per a contactar:
      • Primera hora (08:00 a 10:00)
      • Abans de dinar (12:00 a 13:00)
      • Després de dinar (14:00 a 16:00)
      • Per la nit (20:00 a 22:00)

    En els tres casos són obligatoris, s'ha de mantindre el valor en cas de ser correcte .

  6. 266FormulariArray: Modifica l'exercici anterior de forma que el contingut dels camps de selecció es genere dinàmicament des d'arrays associatius. A més, els valors rebuts s'haurien de validar contra l'array i mostrar-se fent és d'ell.

Inclusió de fitxers

  1. 271Formulari.php: Basant-te en l'activitat 264FormulariValidat.php modifica les validacions perquè es facen mitjançant funcions.

    Les funcions es guardaran en el fitxer helpers.php i s'hauran d'incloure en fitxer 271Formulari.php.

  2. 272Formulari.php: Basant-te en l'activitat 271Formulari.php separa la part de codi de la presentació de forma que tota la lògica estiga en un fitxer i la part de presentació en altre fitxer 271Formulari.view.php.

Pujada de fitxers

  1. 281FormularImatge.php: Modifica l'activitat 272Formulari.php afegint un camp de tipus FILE per a pujar una imatge al servidor. Es guardarà en la carpeta uploads i es mostrarà amb la resta de dades.
  2. 282FormulariImage.php: Modifica l'activitat anterior de forma que es controle el següent:
    1. Les imatges sols podran ser jpg.
    2. No podran superar 1MB de grandària
    3. Es guardaran en un nom aleatori únic.

Crèdits