Maison développement back-end tutoriel php PHP utilise des fonctions récursives pour créer des répertoires multi-niveaux

PHP utilise des fonctions récursives pour créer des répertoires multi-niveaux

Jun 06, 2018 am 11:36 AM

Cet article présente principalement l'utilisation de fonctions récursives en PHP pour créer des répertoires multi-niveaux. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Les détails sont les suivants :

function Directory($dir){
    if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存在”的警告。

        echo $dir."创建成功<br>";  //输出创建成功的目录

    }else{

        $dirArr=explode(&#39;/&#39;,$dir); //当子目录没创建成功时,试图创建父目录,用explode()函数以&#39;/&#39;分隔符切割成一个数组
        array_pop($dirArr); //将数组中的最后一项(即子目录)弹出来,
        $newDir=implode(&#39;/&#39;,$dirArr); //重新组合成一个文件夹字符串
        Directory($newDir); //试图创建父目录
        if(@mkdir($dir,0777)){
            echo $dir."创建成功<br>";

        } //再次试图创建子目录,成功输出目录名
    }
}

Directory("A/B/C/D/E/F");

Le résultat de sortie est tel qu'indiqué dans la figure :

Mais cela peut être vu que c'est trop compliqué à écrire, en regardant les fonctions de fichier dans le manuel, j'ai vu une fonction dirname() , son prototype est le suivant :

string dirname ( string $path )

Étant donné une chaîne contenant le chemin complet d'un fichier, cette fonction renvoie le nom du répertoire après avoir supprimé le nom du fichier.

Sous Windows, la barre oblique (/) et la barre oblique inverse () peuvent être utilisées comme séparateurs de répertoire. Dans d'autres circonstances, il s'agit d'une barre oblique (/).

peut être légèrement optimisé :

function Directory($dir){

    if(is_dir($dir) || @mkdir($dir,0777)){ 

        echo $dir."创建成功<br>";  

    }else{

        Directory(dirname($dir));

        if(@mkdir($dir,0777)){

            echo $dir."创建成功<br>";

        }

    }

}

L'effet est le même.
Après cela, j'ai cherché des réponses sur Internet et j'ai trouvé un extrêmement perspicace :

function Directory( $dir ){  

   return  is_dir ( $dir ) or Directory(dirname( $dir )) and  mkdir ( $dir , 0777);

}

Maintenant, expliquons tout function:

Introduisez d'abord l'ordre de priorité des opérateurs logiques en PHP  : && > et > ou, c'est-à-dire le type symbolique > type de lettre, type AND> type OR, de sorte que le corps de la fonction peut être vu comme :

is_dir ( $dir ) ou (Directory(dirname( $dir )) et mkdir ( $dir , 0777)) ;

Déterminez d'abord si le répertoire cible existe, s'il existe, en fonction des caractéristiques de court-circuit de ou, tout ce qui suit sera court-circuité et l'exécution sera. être ignoré ; si le répertoire cible n'existe pas, les fonctions suivantes seront exécutées :

Directory(dirname( $dir )) et mkdir ( $dir , 0777)

J'y ai pensé

d'abord Le but de la récursivité : Exécuter d'abord la récursivité pour confirmer que son répertoire parent (dirname($dir)) a été créé, afin que le suivant La fonction mkdir() n'émettra pas d'avertissement lorsqu'elle ne trouvera pas le répertoire parent lors de la création d'un sous-répertoire.

Après avoir entré la profondeur de la récursion, après avoir confirmé que le répertoire racine le plus profond existe, créez des répertoires dans l'ordre à partir du répertoire racine vers le bas.

Enfin, je suggère à ceux qui recherchent un emploi d'aller en ligne et de trouver des questions d'entretien auprès des grandes entreprises. Après tout, leurs examens sont plus complets et plus approfondis. aussi revoir les questions. En plus, il faut aussi que je le fasse un peu, car c'est facile d'avoir trop d'ambition mais pas assez. J'ai optimisé la fonction au début plusieurs fois avant de pouvoir l'utiliser normalement.

Il s'agit d'une question d'entretien sur la création récursive d'un répertoire multi-niveaux en PHP. À l'avenir, l'éditeur trouvera quelques questions d'entretien intéressantes à partager avec vous.

Résumé  : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Utilisation des fonctions each et list en PHP

Recherche de localisation géographique PHP et calcul de distanceUtiliser les compétences

PHP pour obtenir des fichiers dans le répertoire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Oguri Cap Build Guide | Un joli Musume Derby
3 Il y a quelques semaines By Jack chen
Guide de construction d'Agnes Tachyon | Un joli Musume Derby
2 Il y a quelques semaines By Jack chen
Guide de construction de Grass Wonder | Uma musume joli derby
2 Il y a quelques semaines By Jack chen
Pic comment émoter
4 Il y a quelques semaines By Jack chen

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Qu'est-ce que PHP et pourquoi est-il utilisé pour le développement Web? Qu'est-ce que PHP et pourquoi est-il utilisé pour le développement Web? Jun 23, 2025 am 12:55 AM

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Comment rester à jour avec les derniers développements PHP et meilleures pratiques? Comment rester à jour avec les derniers développements PHP et meilleures pratiques? Jun 23, 2025 am 12:56 AM

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

Comment définir le fuseau horaire PHP? Comment définir le fuseau horaire PHP? Jun 25, 2025 am 01:00 AM

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20

Quelles sont les meilleures pratiques pour écrire du code PHP propre et maintenable? Quelles sont les meilleures pratiques pour écrire du code PHP propre et maintenable? Jun 24, 2025 am 12:53 AM

La clé pour écrire le code PHP propre et facile à maintenir réside dans une dénomination claire, des normes suivantes, une structure raisonnable, une bonne utilisation des commentaires et une testabilité. 1. Utilisez des variables claires, des fonctions et des noms de classe, tels que $ userdata et calculatotalprice (); 2. Suivez le style de code unifié standard PSR-12; 3. Divisez la structure du code en fonction des responsabilités et organisez-la à l'aide de catalogues MVC ou de style Laravel; 4. Évitez le code de style nouilles et divisez la logique en petites fonctions avec une seule responsabilité; 5. Ajouter des commentaires aux points clés et écrire des documents d'interface pour clarifier les paramètres, les valeurs de retour et les exceptions; 6. Améliorer la testabilité, adopter l'injection de dépendance, réduire l'état mondial et les méthodes statiques. Ces pratiques améliorent la qualité du code, l'efficacité de la collaboration et la facilité de post-maintenance.

Comment exécuter des requêtes SQL à l'aide de PHP? Comment exécuter des requêtes SQL à l'aide de PHP? Jun 24, 2025 am 12:54 AM

Oui, YouCanrunsqlQueriesUsingPhp, et theprocessInvolvesChoosingAdatabaseextenten, ConnectTotheDatabase, ExecutingQueessaFely, andcosingConnectionSwhendOne.Todothis, FirstChooseBetweenmysqliorpDo, avec unplaying

Comment tester rapidement des extraits de code PHP? Comment tester rapidement des extraits de code PHP? Jun 25, 2025 am 12:58 AM

Toquicklytestaphpcodesnippet, useanonlinephpsandboxlike3v4l.orgorphpize.onlineForinstantexecution withoutsetup; runcodelocallywithphpclibycreatinga.phpfileAndexecutingitviatheterminal; optionallyelephp-rorers-liner

Comment mettre à niveau la version PHP? Comment mettre à niveau la version PHP? Jun 27, 2025 am 02:14 AM

La mise à niveau de la version PHP n'est en fait pas difficile, mais la clé réside dans les étapes de fonctionnement et les précautions. Voici les méthodes spécifiques: 1. Confirmez la version PHP actuelle et l'environnement d'exécution, utilisez la ligne de commande ou le fichier phpinfo.php à afficher; 2. Sélectionnez la nouvelle version appropriée et installez-la. Il est recommandé de l'installer avec 8,2 ou 8,1. Les utilisateurs de Linux utilisent Package Manager et les utilisateurs de MacOS utilisent Homebrew; 3. Migrer les fichiers de configuration et les extensions, mettre à jour PHP.ini et installer les extensions nécessaires; 4. Testez si le site Web s'exécute normalement, vérifiez le journal des erreurs pour vous assurer qu'il n'y a pas de problème de compatibilité. Suivez ces étapes et vous pouvez terminer avec succès la mise à niveau dans la plupart des situations.

Comment utiliser la mise en cache des pages en php? Comment utiliser la mise en cache des pages en php? Jun 24, 2025 am 12:50 AM

La mise en cache de page PHP améliore les performances du site Web en réduisant le chargement du serveur et en accélérant le chargement de la page. 1. Le cache de fichier de base évite la génération répétée de contenu dynamique en générant des fichiers HTML statiques et en fournissant des services pendant la période de validité; 2. Activer Opcache pour compiler les scripts PHP dans ByteCode et les stocker en mémoire, améliorant l'efficacité de l'exécution; 3. Pour les pages dynamiques avec des paramètres, ils doivent être mis en cache séparément en fonction des paramètres URL et éviter le contenu spécifique à l'utilisateur mis en cache; 4. Les bibliothèques de cache légères telles que PhpfastCache peuvent être utilisées pour simplifier le développement et prendre en charge plusieurs pilotes de stockage. La combinaison de ces méthodes peut optimiser efficacement la stratégie de mise en cache des projets PHP.

See all articles