Crea una cartella se non esiste in PHP

Ralfh Bryan Perez 12 aprile 2021
  1. file_exists() per verificare se un file o una directory esiste in PHP
  2. is_dir() per verificare se un file o una directory esiste in PHP
  3. file_exists() vs is_dir() in PHP
  4. mkdir() in PHP
Crea una cartella se non esiste in PHP

È possibile creare una cartella e impostare i permessi appropriati usando PHP, in particolare usando la funzione mkdir().

La modalità di autorizzazione predefinita è 0777 (accesso più ampio possibile). Prima di creare una directory, viene importata per verificare se la directory o un file esiste o meno. In PHP, può essere fatto usando file_exists o is_dir.

file_exists() per verificare se un file o una directory esiste in PHP

La funzione file_exists è una funzione incorporata per controllare dove esiste o meno una directory o un file. Accetta un parametro di un percorso che restituisce true se già esiste o false in caso contrario.

Esempio di utilizzo di file_exists():

$path = "sample/path/newfolder";
if (!file_exists($path)) {
    mkdir($path, 0777, true);
}

Nell’esempio sopra, controlla l’esistenza della directory usando la funzione file_exists(), quindi crea la directory newfolder se il risultato è falso, con il permesso di 0777.

is_dir() per verificare se un file o una directory esiste in PHP

Questa funzione è anche simile a file_exists, e l’unica differenza è che restituirà true solo se la stringa passata è una directory e restituirà false se è un file.

Esempio di utilizzo di is_dir:

$path = "sample/path/newfolder";
if (!is_dir($path)) {
    mkdir($path, 0777, true);
}

Nell’esempio sopra, is_dir controlla se la cartella esiste già prima di creare una nuova cartella usando mkdir.

file_exists() vs is_dir() in PHP

Entrambe le funzioni controllano l’esistenza della directory, l’unica differenza è file_exists() restituisce anche true se il parametro passato è un file. D’altra parte, is_dir è un po’ più veloce di file_exists.

mkdir() in PHP

Questa funzione crea una directory specificata dal percorso che viene passato come parametro. Il valore di ritorno atteso è true o false.

Esempio di implementazione:

mkdir($path, $mode, $recursive, $context);

Valori dei parametri

Parametro Valori
path (obbligatorio) Directory o percorso da creare
mode (opzionale) Autorizzazioni per directory o file. Per impostazione predefinita, la mode è 0777 (accesso più ampio possibile).
La mode è composta da quattro numeri:
- Impostato sempre su 0
- Specifica l’autorizzazione del proprietario della directory o file.
- Specifica l’autorizzazione del gruppo utenti del proprietario
- Specifica l’autorizzazione di tutti gli altri.
recursive (opzionale) (true o false)
Per creare la struttura nidificata, il parametro ricorsivo deve essere impostato su true.
context (opzionale) Insieme di parametri che migliorano o modificano il comportamento del flusso.

** Nota: ** PHP controlla se lo script operativo nella directory ha lo stesso UID (proprietario) nella directory quando la modalità provvisoria è abilitata.