- Funzione per generare un nome con caratteri casuali
- Creazione di directory con mkdir
- Eliminazione di una directory
- Trova e modifica una directory
- Elencare i file in una directory
Per creare un nuova directory in Php è possibile utilizzare la funzione mkdir(), un nome ripreso dal vecchio comando dei sistemi operativi Unix per creare directory a riga di comando.
Iniziamo con una nostra funzione che ci consentirà di generare stringhe casuali che utilizzeremo come nome delle directory create.
Funzione per generare un nome con caratteri casuali
function generaNomeDirectory(){
$serieCaratteri = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$numeroCar = substr(str_shuffle($serieCaratteri), 0, 6);
return $numeroCar;
}
$nomeDirectory = generaNomeDirectory();
echo $nomeDirectory;
//es: 45frt7
Questa semplice funzione non fa altro che alternare i caratteri della variabile $serieCaratteri in maniera casuale generando stringhe di lunghezza variabile in questo caso stringhe lunghe 6 caratteri: str_shuffle($serieCaratteri), 0, 6).
Creazione di directory con mkdir
Per creare una directory nella stessa directory dello script PHP e sufficiente assegnare il nome della directory
$nuovaDir = mkdir("miaDirectory", "0775");
Mentre per creare una nuova directory in una diversa dalla posizione corrente dello script PHP è necessario specificare il percorso:
$nuovaDir = mkdir("/upload/miaDirectory", "0775");
Allo script si può inserire un secondo argomento utile per assegnare un attributo di scrittura alla nuova directory creata: (..., "0775");
Detto questo passiamo col creare la nostra nuova directory con nomi causali univoci utilizzando la funzione generaNomeDirectory()
function generaNomeDirectory(){
$serieCaratteri = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$numeroCar = substr(str_shuffle($serieCaratteri), 0, 8);
return $numeroCar;
}
$nomeDirectory = generaNomeDirectory();
$uploadDirectory = "/Uploads/".$nomeDirectory."/";
if (!file_exists(''.$uploadDirectory.'/')) {
mkdir('Uploads/'.$nomeDirectory.'', 0755, true);
}
Il funzionamento è molto semplice, nella prima fase si crea un nome casuale da assegnare alla nuova directory, mentre nella seconda fase si verifica file_exists() che non esista una directory con lo stesso nome, infine con mkdir() si crea la nuova directory.
Eliminazione di una directory
Allo stesso modo è possibile eseguire una cancellazione di una directory utilizzando la funzione rmdir() facendo passare come parametro il nome stesso della directory da eliminare, facendo attenzione che la stessa sia vuota senza alcun file diversamente l'eliminazione non andrà a buon fine.
$directory = "tuaDirectory";
if(!rmdir($directory )) {
echo ("Impossibile eliminare $directory ");
}
Trova e modifica una directory
Tramite la funzione php getCwd() è possibile identificare la directory corrente:
$direct_corrente = getCwd();
echo "La directory corrente è $direct_corrente ";
è una volta trovata modificarne il nome utilizzando un' altra preziosa funzione di Php chdir(). Questa funzione accetta un unico paramento che è naturalmente il nome del percorso della nuova directory.
$dir_corrente = getCwd();
echo "La directory corrente è $dir_corrente <br>";
chdir ("/nuovoNomeDirectory");
$dir_corrente = getCwd();
echo "La directory corrente ora è $dir_corrente <br>";
Il funzionamento è semplice, con $dir_corrente si chiede il nome della directory corrente, mentre con chdir ("/nuovoNomeDirectory") si assegna il nuovo valore alla directory.
Elencare i file in una directory
Un'altra funzione molto utile in Php è scandir(), che può essere utilizzata per leggere il contenuto di una directory. Accetta due argomenti come parametro che sono il percorso della directory e il parametro 0 oppure 1 a seconda di come vogliamo visualizzare l'elenco dei file in ordine alfabetico o inverso.
$dir_corrente = getCwd();
echo "La directory corrente è $dir_corrente";
$array = scandir(".", 1);
print_r($array);