721 votes

Créez un dossier s’il doesn ' t existent déjà

J’ai couru dans quelques cas avec wordpress installe avec bluehost où j’ai rencontré des erreurs avec mon thème wordpress parce que le dossier uploads (wp-content/uploads) n’était pas présent.

Apparemment le programme d’installation de WP de cpanel bluehost ne crée pas de ce dossier, si le fait de HostGator.

J’ai donc besoin d’ajouter le code à mon thème qui vérifie le dossier et il crée par ailleurs.

1413voto

Gumbo Points 279147

Essayez ceci :

Notez que `` est déjà le mode par défaut pour les répertoires et peuvent toujours être modifiées par l’umask courant.

165voto

Satish Gadhave Points 464

Voici la pièce manquante. Vous devez passer « récursive » drapeau mkdir appel comme ça :

70voto

phazei Points 1007

Quelque chose d'un peu plus universel car cela vient sur google. Alors que les détails sont plus précis, le titre de cette question est de plus universel.

/** 
 * recursively create a long directory path
 */
function createPath($path) {
    if (is_dir($path)) return true;
    $prev_path = substr($path, 0, strrpos($path, '/', -2) + 1 );
    $return = createPath($prev_path);
    return ($return && is_writable($prev_path)) ? mkdir($path) : false;
}

Cela va prendre un chemin, peut-être avec une longue chaîne de l'incréé répertoires, et continuer jusqu'à un répertoire jusqu'à ce qu'il arrive à un répertoire existant. Alors il va tenter de créer le répertoire suivant dans ce répertoire, et continuer jusqu'à ce qu'il est créé à tous les répertoires. Elle retourne true en cas de succès.

Pourrait être amélioré en fournissant un arrêt de niveau jusqu'à ce qu'il échoue si elle va au-delà du dossier de l'utilisateur ou de quelque chose et en incluant les autorisations.

67voto

AndiDog Points 28417

Qu’en est-il une fonction d’assistance comme ceci :

Il retourne si le répertoire a été correctement créé ou existe déjà, et si le répertoire n’a pas pu être créé.

Une meilleure alternative est la suivante (ne devrait pas donner les mises en garde) :

24voto

user Points 1438

Récursivement créer le chemin du répertoire :

Inspiré par Python``

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X