mkdir con file gia esistente

maced

Utente Attivo
30 Nov 2011
48
0
6
ipotizzo di avere già presente sul mio server un directory denominata Marco Rossi, utilizzando il comando Mkdir per generare un directory ovviamente se passo come parametro Marco Rossi la directory si sovrapporrebbe in quanto gia presente, tramite un comando ricorsivo come posso giungere alla creazione della directory Marco Rossi ( doppio spazio fra nome e cognome )?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non è consigliato inserire gli spazi nei nomi dei file o delle cartelle,ti conviene sostituirli con gli underscore.
Prova questa funzione:
PHP:
function creaDirectory($name, $n = 0) {
    $path = "" . str_replace(" ", "_", $n > 0 ? $name . "_" . $n : $name);
    if (is_dir($path)) {
        $n++;
        return creaDirectory($name, $n);
    }
    $newDirectory = mkdir($path, 0777);
    return $newDirectory ? $path : false;
}

$newDirectory = creaDirectory("Mario Rossi");

if ($newDirectory) {
    echo "ho creato la directory " . $newDirectory;
} else {
    echo "Errore nella creazione della directory";
}
 

maced

Utente Attivo
30 Nov 2011
48
0
6
la tua funzione è perfetta solo che io avrei proprio necessita di inserire gli spazi fra nome e cognome per come ho configurato il tutto! ti ringrazio in anticipo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Quindi se hai dieci Mario Rossi vuoi dieci spazi tra Mario e Rossi ?
La modifica cmq non è complessa
PHP:
<?php

function creaDirectory($name, $n = 1) {
    $split = explode(" ", $name);
    $path = "" . $split[0];
    for ($i = 0; $i < $n; $i++) {
        $path .= " ";
    }
    $path .= isset($split[1]) ? $split[1] : "_";

    if (is_dir($path)) {
        $n++;
        return creaDirectory($name, $n);
    }
    $newDirectory = mkdir($path, 0777);
    return $newDirectory ? $path : false;
}

$newDirectory = creaDirectory("Mario Rossi");

if ($newDirectory) {
    echo "ho creato la directory " . str_replace(" ", "&nbsp;", $newDirectory);
} else {
    echo "Errore nella creazione della directory";
}
 
Ultima modifica:
Autore Discussioni simili Forum Risposte Data
Z PHP 6
borgo italia PHP 8
borgo italia PHP 4
P PHP 1
SolidSnake4 PHP 1