source: extensions/PHP_Optimisateur/files/functions.php @ 7988

Revision 7988, 2.2 KB checked in by mistic100, 9 years ago (diff)

version 1.0

Line 
1<?php
2/***************************************\
3|                       PHP OPTIMISATEUR                        |
4|                          Version 1.0                          |
5\***************************************/
6
7// Supprime les accents et tous caractères non conforme
8function delete_special_car($string) {
9        global $renameORNOT;
10        $search = array ('#[éèêë]#','#[ÊËÈÉ]#','#[àâäã]#','#[ÂÄÁÀ]#','#[îïíì]#','#[ÎÏÍÌ]#','#[ûùüú]#','#[ÛÙÚÜ]#','#[ôóòõö]#','#[ÓÒÖÔÕ]#',
11                '#[ç]#','#[Ç]#','#[ñ]#','#[Ñ]#','#[ýÿ]#','#[Ý]#','#[ \&\!\#\"\(\)\{\}\'\=\+\~]#','#[^a-zA-Z0-9_\.\-]#');
12        $replace = array ('e','E','a','A','i','I','u','U','o','O','c','C',',n','N','y','Y','_','');
13       
14        if ($renameORNOT) {
15                return preg_replace($search, $replace, $string);
16        } else {
17                return $string;
18        }
19}
20
21// Teste si un dossier est vide
22function is_dir_empty($dir) {
23        $array = scandir($dir);
24        if (count($array) > 2) {
25                return false;
26        } else {
27                return true;
28               
29        }
30}
31
32// Supprime un repertoire non-vide
33function rrmdir($dir) {
34        if (is_dir($dir)) {
35                $objects = scandir($dir);
36                foreach ($objects as $object) {
37                        if ($object !== '.' && $object !== '..') {
38                                if (filetype($dir.'/'.$object) == 'dir') rrmdir($dir.'/'.$object); 
39                                else unlink($dir.'/'.$object);
40                        }
41                }
42                reset($objects);
43                rmdir($dir);
44        }
45} 
46
47// Parcours récursivement un dossier
48function recursive_readdir($dir, $array, $dirs=false) {
49        # si $dirs=true liste les dossiers plutot que les fichiers
50        global ${$array}; // Charge la tableau pour la sortie, déclaré à l'exterieur à cause de l'appel recursif de la fonction
51        $dir = rtrim($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
52
53        if (is_dir($dir)) {
54                $dh = opendir($dir);
55        } else {
56                exit;
57        }
58        while (($file = readdir($dh)) !== false ) { //boucle pour parcourir le repertoire
59                if ($file !== '.' && $file !== '..') {
60                        $path = $dir.'/'.$file;
61                        if (is_dir($path)) { //si on tombe sur un sous-repertoire
62                                if($dirs) ${$array}[] = $path;
63                                recursive_readdir($path, $array, $dirs); // appel recursif pour lire a l'interieur de ce sous-repertoire
64                        } else { // si il s'agit d'un fichier
65                                if(!$dirs) ${$array}[] = $path;
66                        }
67                }
68        }
69        closedir($dh);
70}
71?>
Note: See TracBrowser for help on using the repository browser.