


La fonction PHP mkdir implémente la création récursive de répertoires hiérarchiques
Ce qui suit sont les informations que j'ai compilées sur Internet. Je vais présenter en détail l'utilisation spécifique de la fonction PHP mkdir. J'espère que cela sera utile aux amis qui ont des besoins à cet égard.
Lors du développement du projet, il est inévitable de créer des dossiers sur le serveur, comme le répertoire de téléchargement des images, le répertoire d'analyse des modèles, etc. Ceci n'est pas utilisé dans mon projet actuel, j'ai donc résumé plusieurs méthodes de création de répertoires hiérarchiques en boucle.
Le mkdir par défaut de PHP ne peut créer qu'un seul niveau de répertoires à la fois. Si vous souhaitez créer des répertoires à tous les niveaux couche par couche, vous les créez généralement d'abord à partir du parent, puis vous les créez couche par couche. Cependant, si vous le créez manuellement de cette manière, c'est un peu trop compliqué.
Que faisons-nous lorsque nous écrivons des programmes ? Est-ce pour pouvoir bientôt réaliser automatiquement les fonctions dont nous avons besoin ? La méthode ici consiste à nous aider à créer et à compléter automatiquement des répertoires hiérarchiques via des programmes.
Il y a deux idées :
1. De haut en bas (parent → enfant)
1. Déterminez d'abord si le répertoire parent est If. il existe, créez-le s'il n'existe pas ;
2. Déterminez si le sous-répertoire secondaire existe, créez-le s'il ne peut pas exister,
3 Dans la deuxième étape, appelez la fonction elle-même de manière récursive avec le sous-répertoire comme. paramètre.
2. De bas en haut (enfant → parent)
1. Déterminez d'abord si le répertoire inférieur existe
2. existe S'il existe, s'il n'existe pas, le répertoire supérieur sera utilisé comme paramètre pour récurer.
Voici plusieurs méthodes :
1 : Créer un répertoire de manière récursive. Cette méthode est la meilleure méthode que je ressens actuellement.
function mkDirs($dir){ if(!is_dir($dir)){ if(!mkDirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } return true; } mkDirs('1/2/3/');
2 : Créer récursivement des répertoires en cascade. Si vous ne comprenez pas la première méthode, vous pouvez la combiner avec la méthode suivante pour comprendre
function mkDirs1($path){ if(is_dir($path)){//已经是目录了就不用创建 return true; } if(is_dir(dirname($path))){//父目录已经存在,直接创建 return mkdir($path); } mkDirs1(dirname($path));//从子目录往上创建 return mkdir($path);//因为有父目录,所以可以创建路径 } //mkDirs1('1/2/3/');
3 : Créer de manière itérative des répertoires en cascade. répertoires
function makedir($path){ $arr=array(); while(!is_dir($path)){ array_push($arr,$path);//把路径中的各级父目录压入到数组中去,直接有父目录存在为止(即上面一行is_dir判断出来有目录,条件为假退出while循环) $path=dirname($path);//父目录 } if(empty($arr)){//arr为空证明上面的while循环没有执行,即目录已经存在 echo $path,'已经存在'; return true; } while(count($arr)){ $parentdir=array_pop($arr);//弹出最后一个数组单元 mkdir($parentdir);//从父目录往下创建 } } makedir('1/2/3');
PS : Parfois, les fichiers du script du programme ne sont pas nécessairement dans le répertoire racine du site Web, et les fichiers créés doivent être créés dans le répertoire racine, nous devons alors utiliser le site Web chemin du répertoire racine : $_SERVER['DOCUMENT_ROOT' ] ; Je ne recommande donc pas d'utiliser les trois dernières méthodes.
Les trois suivants sont créés en divisant le chemin par '/'.
function mk1($dir){ $arr=explode("/",$dir); $path=''; for($i=0;$i< count($arr);$i++){ $path.=$arr[$i].'/'; if(!is_dir($path)){ mkdir($path,0777); } } } function mk2($dir){ static $i=0; $path=''; $arr=explode("/",$dir); if($i < count($arr)){ $path.=$arr[$i]; mkdir($path,0777,true); $i++; mk2($path."/"); } } function mkdirs0($path){ $dirs = explode('/',$path); for ($c=0;$c < count($dirs); $c++) { $thispath=""; for ($cc=0; $cc <= $c; $cc++) { $thispath.=$dirs[$cc].'/'; } if (!is_dir($thispath)) { mkdir($thispath,0777); } } }
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Alipay Php ...

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Une introduction officielle à la caractéristique non bloquante de l'interprétation approfondie de ReactPHP de la caractéristique non bloquante de ReactphP a suscité de nombreux développeurs: "ReactPhpisnon-blockingByDefault ...
