CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

PHP fonction suppression dossiers

Pseudo supprimé
Pseudo supprimé 18 septembre 2015 à 21:36:17
<?php

/*
* Delete the file or the directory with the files
* If the files have been deleted it returns true, else it returns false
* @path = filename or dirname
*/

function deleteFiles($path) {

	//If the filename is a regular file, the function delete it
	if(is_file($path)) {
		unlink($path);
		return true;
	}

	//Else if the filename is a directory...
	elseif(is_dir($path)) {

		//Scan the directory, remove '.' and '..'
		$scan = scandir($path);
		array_shift($scan);
		array_shift($scan);

		//Remove if the directory is empty
		if(empty($scaned)) {
			rmdir($path);
			return true;
		}

		//Else, read all files or directories
		else {
			$file = opendir($path);

			while(false !== ($read = readdir($file))) {
				$realpath = $path."\\".$read;

				//Delete
				if($read != '.' && $read != '..') {
					deleteFiles($realpath);
				}
			}
			closedir($file);
		}

	}
	//Else return false
	else {
		return false;
	}

}

if(!deleteFiles('C:\wamp\www\Exos&tests\handle\DELETE'))
	echo 'failed';
?>

Marche pas, un coup ça me dépasse la mémoire à cause de la fonction récursive, l'autre j'ai des problèmes à cause de ça je crois
//Scan the directory, remove '.' and '..' $scan = scandir($path); array_shift($scan); array_shift($scan);

Si une âme charitable trouve l'erreur :merci:

Grabugelelion
Grabugelelion
Niveau 5
19 septembre 2015 à 02:53:36

A mon avis si tu veux taper dans le récursif avec les dossiers, il faut que tu passe par http://php.net/manual/fr/spl.iterators.php tu aura un tas de fonction qui te permettent d'allez à l'infinis sans tuer les performances.

J'ai vu un tuto récemment sur ce sujet : http://www.grafikart.fr/tutoriels/php/yaml-front-matter-646
(Le début du tuto parle du récursif avec les itérateurs de la SPL PHP)

L'idée est d'utiliser RecursiveIteratorIterator pour faire du récursif et RegexIterator
Un peut complexe au début mais tu avancera plus vite au final.

Message édité le 19 septembre 2015 à 02:55:40 par Grabugelelion
deepblue
deepblue
Niveau 16
19 septembre 2015 à 17:49:06

Utilises le composant filesystem de symfony :

$ tree test 
test
├── a
│   └── c (fichier)
└── b
    └── d
        └── e (fichier)

composer.json :

{
    "require": {
        "symfony/filesystem": "^2.7"
    }
}

test.php :

<?php

require './vendor/autoload.php';

use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;

$filesystem = new Filesystem();

try {
	$filesystem->remove('./test/');
} catch (IOExceptionInterface $e) {
    echo sprintf(
        'An error occurred wile removing the directory: %s',
        $e->getMessage()
    );
}
Pseudo supprimé
Pseudo supprimé 20 septembre 2015 à 07:25:48

OK merci je lirai
sinon j'ai résolu mon problème a ma maniere : avec une boucle et ma fonction : j'arrive a supprimer un dossier !

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment