Maison > développement back-end > tutoriel php > Comment copier le contenu d'un répertoire à l'aide de PHP ?

Comment copier le contenu d'un répertoire à l'aide de PHP ?

Mary-Kate Olsen
Libérer: 2024-10-31 13:49:01
original
1089 Les gens l'ont consulté

How to Copy Directory Contents Using PHP?

Copier le contenu du répertoire à l'aide de PHP

Problème d'implémentation : caractères génériques non reconnus

La commande copy ("old_location/*.*", new_location/ ") a échoué car les caractères génériques (*.*) ne sont pas reconnus directement par la fonction copy().

Fonction de copie récursive

Pour copier le contenu d'un répertoire entier, y compris les sous-répertoires et les fichiers, une fonction de copie récursive est nécessaire. Voici un exemple :

<code class="php">function recurseCopy(string $sourceDirectory, string $destinationDirectory, string $childFolder = ''): void 
{
    $directory = opendir($sourceDirectory);

    if (is_dir($destinationDirectory) === false) {
        mkdir($destinationDirectory);
    }

    if ($childFolder !== '') {
        if (is_dir("$destinationDirectory/$childFolder") === false) {
            mkdir("$destinationDirectory/$childFolder");
        }

        while (($file = readdir($directory)) !== false) {
            if ($file === '.' || $file === '..') {
                continue;
            }

            if (is_dir("$sourceDirectory/$file") === true) {
                recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file");
            } else {
                copy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file");
            }
        }

        closedir($directory);

        return;
    }

    while (($file = readdir($directory)) !== false) {
        if ($file === '.' || $file === '..') {
            continue;
        }

        if (is_dir("$sourceDirectory/$file") === true) {
            recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$file");
        } 
        else {
            copy("$sourceDirectory/$file", "$destinationDirectory/$file");
        }
    }

    closedir($directory);
}</code>
Copier après la connexion

Utilisation

Pour utiliser cette fonction, appelez-la avec le répertoire source, le répertoire de destination et le sous-dossier facultatif (si nécessaire).

<code class="php">recurseCopy("old_location", "new_location");</code>
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal