Tag: Corsi di formazione

Corso PHP: 24 – MySQL

24. MySQL

In questo capitolo verrà illustrato il sistema di gestione di un database relazionale facendo specifico riferimento al database MySQL.

La figura che segue sintetizza la struttura client-server:

 

MySQL: Organizzazione Client-Server
Struttura Client-Server

Continua a leggere…

Corso PHP: 23 – File Upload

23.  File Upload.

In alcuni casi si rende necessario permettere agli utenti l’invio di alcuni tipi di files. Ovviamente questo può essere realizzato tenendo ben presente gli accorgimenti di sicurezza che questa attività richiede.

Questo può essere realizzati in PHP per mezzo di un form. L’utilizzo dei form è stato descritto al capitolo 11. Interazione con l’utilizzatore.

Un esempio di form per upload di un file è mostrato nel listato che segue:

<?php
<form action='upload.php' method='post' enctype='multipart/form-data'>
   <input type='file' name='nomefile' />
   <input type="hidden" name="MAX_FILE_SIZE" value="640000" >
   <input type='Submit' value='Add Document' name='Submit' />
</form>
?>

Da notare che è stato introdotto un nuovo attributo del tag <form>:  enctype=’multipart/form-data’, necessario quando il form deve accettare dati binari, come in questo caso. Il tipo dell’input ceme si vede nell’esempio sarà ‘file’.

Continua a leggere…

Corso PHP: 22 – Lettura e scrittura di un file CSV.

22.  Lettura e scrittura di un file csv.

Un file CSV (comma-separated values) è un formato usato per trasferire informazioni che possano essere strutturate come una tabella in righe e colonne. E’ un file di testo ove ogni riga ha un numero prefissato di campi separati normalmente dalla virgola o punto e virgola, ma il separatore in realtà può essere qualsiasi carattere scelto a piacimento.

Diversi programmi, tra i quali Excel ed Outlook, possono leggere direttamente questo formato.
22.1 Scrivere un file in formato CSV

Per scrivere un file in formato CSV, PHP offre una funzione chiamata fputcsv() che legge un array e scrive una riga del file. L’array è formato dalle colonne della riga in questione. Ovviamente un intero file CSV potrà essere scritto a partire da un array a due dimensioni, dove cioè ogni elemento dell’array corrisponda ad una riga del file e sia quindi composto da un array con le relative colonne.

Ritrascriviamo quanto già riportato alla lezione 19. Leggere e scrivere files (Parte 5^).
Continua a leggere…

Corso PHP: 21 – Alcuni esempi di funzioni relative a files/directories

Proponiamo ora alcune funzioni scritte in PHP in alcuni casi utili per il trattamento di files e directories o perlomeno ai fini esemplificativi.

Iniziamo con quattro funzioni che listano i files di una directory:

1. wwGetFiles

Questa funzione ritorna un array con tutti i files di una directory. Il nome della directory è passato come parametro. Nessun file viene escluso.

Script:

 

<?php
function wwGetFiles($dir) {
//--------------------------------------
// Ritorna un array con i files di $dir
//--------------------------------------
  $filesarray=array();
  if (is_dir($dir)) {      // Verifica che $dir sia una directory
    if ($dh = opendir($dir)) { // apre la directory
      $n = 0;
      while (($file = readdir($dh)) !== false) {
        $filesarray[$n] = $file;
        $n++;
      }
      closedir($dh);
    }
  }
  return $filesarray;
}
?>

2. wwGetFilesExt

Questa seconda funzione cerca in una directory e lista i file con una determinata estensione.  Il nome della directory e l’estensione del file sono passati come parametri.
Continua a leggere…

Corso PHP: 20 – Gestione directories

20. Gestione directories

Vediamo adesso le principali funzioni PHP che ci permettono di manipolare le directories ed il loro contenuto. Il filesystem memorizza molte altre informazioni relative ai files oltre al contenuto dei files stessi. Tra queste anche quelle relative alle directories.

Di seguito vediamo quindi l’elenco delle funzioni PHP relative alla gestione delle directories:

 

dirname Restituisce il nome della directory dal percorso indicato
disk_free_space Restituisce lo spazio disponibile nella directory
disk_total_space Restituisce lo spazio totale di una directory
diskfreespace Alias di disk_free_space
is_dir Dice se la stringa corrisponde ad una directory
mkdir Crea una directory
pathinfo Restituisce informazioni su un percorso di file
rmdir Rimuove una directory

Continua a leggere…

Corso PHP: 19 – Leggere e scrivere files (Parte 6^)

move_uploaded_file

Abbiamo visto come per spostare un file si usi la funzione rename(). Questa funzione viene usata ugualmente per spostare un file, ma agisce solamente sui file caricati via http POST di PHP.

La sintassi è la seguente:

bool move_uploaded_file (string $filename , string $destination)

Se il file no è stato ulpoadato via PHP, non viene spostato e move_uploaded_file() restituirà falso. In generale la funzione restituirà falso anche in caso il file non possa essere spostato per qualsiasi motivo pur essendo un file valido (uploadato via PHP). Se il file di destinazione $destination esiste, verrà sovrascritto.

parse_ini_file

La funzione parse_ini_file() carica il file ini specificato da $filename, e ne restituisce le impostazioni in un array associativo. La sintassi è la seguente:

array parse_ini_file (string $filename [, bool $process_sections ])

Se $process_sections è impostato a TRUE, viene restituito un array multidimensionale con le sezioni all’interno di ciascuna delle quali vengono riportate le impostazioni relative. L’esempio sotto riportato chiarirà la differenza.
Continua a leggere…

Corso PHP: 19 – Leggere e scrivere files (Parte 5^)

filelock

Questa funzione è stata descritta due lezioni fa [Corso PHP: 19 – Leggere e scrivere files (Parte 3^)].

fputcsv

Formatta una riga nel formato CSV e la scrive nel file. La sintassi è la seguente:

int fputcsv (resource $handle, array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]])

Restituisce la lunghezza della stringa o FALSE in caso di fallimento.

Significato dei parametri:

$handle: è il puntatore al file che deve essere scritto. Il file deve essere stato aperto con successo da fopen() (e ovviamente non ancora chiuso).

$fields: è un array di valori che rappresenta le righe che devono essere scritte nel file CSV.

$delimiter: parametro opzionale di 1 carattere che indica il delimitatore usato tra un campo e l’altro. Il default è la virgola.

$enclosure: parametro opzionale di 1 carattere che indica il carattere da usare per delimtare ciascun campo. Il default sono le virgolette (“).
Continua a leggere…