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

 

dirname

string dirname (string $path)

Come basename restituisce il solo nome del file così dirname restituisce il solo nome della cartella a partire dal percorso completo.

Esempio:

 

<?php
$path = "http://www.sitoweb.com/dir1/dir2/dir3/file.php";
$dir = dirname($path);
?>

In questo modo $dir conterrà il nome della directory “http://www.sitoweb.com/dir1/dir2/dir3” .

 

disk_free_space

float disk_free_space (string $directory)

Può anche essere usato l’alias diskfreespace().

Restituisce lo spazio disponibile nella directory espresso in numero di bytes.

 

disk_total_space

float disk_total_space (string $directory)

Restituisce lo spazio totale nella directory espresso in numero di bytes.

 

is_dir

bool is_dir (string $filename)

Restituisce TRUE se $filename è una directory. $filename ovviamente è una stringa contenente un percorso completo.

Esempio:

 

<?php
if (is_dir('..')) echo "E' una directory";
else echo "NON è una directory";
?>

Darà come risultato:

E' una directory

 

Mkdir

Analogo del vecchio comando DOS, usato per creare una directory.

La sintassi è la seguente:

int mkdir (string $pathname [, int $mode [, bool $recursive [, resource $context ]]])

$pathname è ovviamente il percorso della directory che va creata.

$mode è il chmode, parametro che specifica i permessi. Per default viene impostato a 0777, che significa tutti i permessi. Volendo limitarli modificare di conseguenza.

Nella notazione ottale $mode è composto da 4 cifre di cui la prima è sempre 0. Le altre 3 rappresentano nell’ordine i permessi per l’utente il gruppo di utenti e permessi generali e possono assumere i seguenti valori:

Valore Permessi
7 lettura, scrittura ed esecuzione
6 lettura e scrittura
5 lettura ed esecuzione
4 solo lettura
3 scrittura ed esecuzione
2 solo scrittura
1 solo esecuzione
0 nessuno

I parametri opzionali $recursive e $context sono stati aggiunti nel PHP 5.0 e specificano rispettivamente se è stata impostata la modalità ricorsiva, mentre $context è un insieme di opzioni che modificano il comportamento di uno stream. Per chi desidera un approfondimento si rimanda alla pagina del manuale PHP (http://php.net/manual/en/ref.stream.php).

 

Pathinfo

Restituisce informazioni su un percorso di file.

La sintassi è la seguente:

array pathinfo (string $path [, int $options ])

$path è la directory della quale si richiedono informazioni.

$options specifica quali elementi dell’array si vogliono come risultato. Può assumere i valori:

  • PATHINFO_DIRNAME – ritorna solo il nome della directory
  • PATHINFO_BASENAME – ritorna solo il nome del file
  • PATHINFO_EXTENSION – ritorna solo l’estensione del file

Se non si specifica nulla restituisce un array associativo con tutte e tre le informazioni. I nomi delle chiavi dell’array sono rispettivamente: dirname, basename e extension.

Esempio:

 

<?php
$path = pathinfo('/www/htdocs/index.php');
echo $path['dirname']."<br>";
echo $path['basename']."<br>";
echo $path['extension']."<br>";
?>

Il risultato sarà:

 

/www/htdocs
index.php
php

 

rmdir

Rimuove una directory, analogamente al corrispondente comando DOS.

La sintassi è la seguente:

bool rmdir (string $dirname [, resource $context ])

Restituisce TRUE in caso di successo, FALSE in caso di fallimento.

Per il parametro $context si veda quanto detto per mkdir.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *