PHP mkdir ($ recursive = true) ignore le dernier répertoire
J'ai le morceau de code suivant sur un PHP 5.2.4 (pas de safe_mode) serveur linux:
mkdir( $path, 0777, true );
quand j'entre dans un chemin comme:
'/path/to/create/recur/ively/'
tous les répertoires sont créés à l'exception de la dernière...
quand j'ajoute un autre répertoire comme:
'/path/to/create/recur/ively/more/'
encore une fois, tous les chemins sont créés à l'exception de la dernière...
avoir essayé les deux, avec et sans barres obliques
Any1 peut m'éclairer s'il vous plaît ici?
source d'informationauteur NDM
Vous devez vous connecter pour publier un commentaire.
Ok solutions est comme suit: il n'y a pas de problème.
Je n'ai pas tester le code dans l'isolement, mais seulement supposé que le code suivant ne faisait rien à la structure de répertoire...
que j'ai découvert le répertoire a été supprimé par la suite par le code lui-même.
De toute façon, la Leçon apprise...
Essayer d'enlever le slash de fin de votre chemin.
Au moins c'est comment il est utilisé dans les exemples de la
mkdir
de la documentation.Personnellement, je ne me souviens pas d'avoir des problèmes, mais je usally ne pas ajouter des barres obliques, alors allez-y et essayez que.
Mise à JOUR:
Je viens d'essayer ton code et il a créé tous les répertoires, y compris la dernière.
Je suis sous Mac OS X 10.5. Aucune idée de pourquoi il ne fonctionne pas pour vous 🙁
C'est le code que j'ai utilisé:
Désolé, il semble que je ne suis d'aucune aide ici.
Si vous avez tout essayé et il ne cesse pas de travail, puis ajouter du texte à la fin du chemin d'accès comme:
Quelle est votre version de PHP? Est safe_mode est-il activé?
Si oui, alors il se pourrait que vous rencontrez http://bugs.php.net/bug.php?id=43276
L'intermédiaire répertoires créés sont fixés sur la base de l'actuel umask. Vous voulez quelque chose comme ce
Fonction que de créer tous les répertoires (dossiers) de chemin d'accès donné. Pas besoin d'écrire de code créer des répertoires (dossiers) de chemin d'accès donné. il permettra de créer tous les répertoires (dossiers).
Comme : Si vous voulez créer la structure de répertoire comme
organisations /1 /users /1 /
De sorte que vous ne devez appeler cette fonction avec des répertoires de chemin comme
$directories_path = 'organisations/1/users/1/';
createUploadDirectories($directories_path);
Vous obtiendrez cette erreur si vous faites l'idiot erreur que j'ai fait et de passer une chaîne de caractères, plutôt que le littéral numérique pour la mode.