Kommunauty
Connexion
Inscription

fonction is_dir


Darkevil Messages : 221

Bonjour,

Je ne sais pas si j'ai poster au bon endroit.

Donc, m’apercevant que la fonction is_dir n'existe pas, je me suis permis d'en créer une, et de la partager ici.

Je ne sais pas s'il y en a des plus développées sur internet, car mon code est extrêmement simple :


/**
 * @param string $dirname
 * @return bool true si le dossier existe & bool false s'il n'existe pas
 */
function dir_exists($dirname) {
    if(file_exists($dirname)) {
        if(is_dir($dirname)) {
            return TRUE;
        } else {
            return FALSE;
        }
    } else {
        return FALSE;
    }
}

Cette fonction retourne le booleen TRUE si le dossier existe, et FALSE s'il n'existe pas

En espérant avoir été utile à quelqu'un

Cordialement,

Darkevil

EDIT :Hum, je suis d'humeur a partager, voilà un autre fichier pour savoir s'il le dossier est vide (oui, je suis entrain de travailler sur la gestion des dossier en php )


/**
 *
 * @param type $dirname
 * @return boolean|string
 */
function emptyFold($dirname) {
    if($handle = opendir($dirname)) {
        $entry = array();
        while (false !== ($ent = readdir($handle))) {
            array_push($entry, $ent);
        }
        if(count($entry) <= 2) {
            return TRUE;
        } else {
            return FALSE;  
        }
    } else {
        return 'error';
    }
}

ATTENTION : pour l'utiliser, il faut d'abord tester s'il y a une erreur, et ensuite s'il est TRUE ou FALSE. Exemple :


if(emptyFold($dir) == 'error') { echo "erreur"; } elseif(emptyFold($dir)) { echo "le dossier est vide"; } else { echo "le dossier est plein"; }

Ha, j'ai oublié que je distribue ces deux scripts en WTFPL

samedi 3 novembre 2012 (Dernière édition dimanche 4 novembre 2012)

db77 Messages : 79

Depuis quand is_dir n'existe pas ?

http://php.net/manual/fr/function.is-dir.php

Et même is_file d'ailleurs :

http://www.php.net/manual/fr/function.is-file.php

Et si ce n'est ni un file ni un dir, c'est quoi ?

Bin, peut-être un link :

http://www.php.net/manual/fr/function.is-link.php

mercredi 21 novembre 2012 (Dernière édition mercredi 21 novembre 2012)

Darkevil Messages : 221

=) si tu avais lu, la fonction s'appelle dir_exist, qui n'existe pas (enfin au moment du post du message)

mercredi 21 novembre 2012

db77 Messages : 79

Et ça "Donc, m’apercevant que la fonction is_dir n'existe pas, " c'est quoi alors ?

En plus, je ne vois pas l'intérêt d'utiliser la fonction file_exists pour créer une fonction dir_exists, peut-être le plaisir de réinventer la roue

Un simple :


function dir_exist($dirname){
return (file_exists($dirname)&&is_dir($dirname))? true:false;
}

Aurait été plus simple

Mais bon, chacun voit midi à sa porte.

mercredi 21 novembre 2012

Darkevil Messages : 221

Ben, quand on l'utilise 10 - 15 fois le même code, ça allège je trouve.

En tout cas, merci pour l'amélioration du code. (C'est du PDO ?, j'ai jamais vu écrit comme ça)

EDIT: Et quand j'utilise un IDE, ça me permet d'aller plus vite

jeudi 22 novembre 2012 (Dernière édition jeudi 22 novembre 2012)

db77 Messages : 79

Oui, mais faire dir_exists ou file_exists, ça revient un peu au même car un fichier a en général une extension donc tester is_dir est un peu "exagéré" à mon avis. Et là, on ne gagne pas grand chose

Du coup faire :

if((file_exists($dirname)&&is_dir($dirname))){action}

ou

if(file_exists($dirname)){action}

revient au même si on considère qu'un fichier a toujours une extension.

Mais bon, comme je te disais, chacun voit midi à sa porte et l'important c'est de comprendre ce que l'on fait.

jeudi 22 novembre 2012

Darkevil Messages : 221

Merci en tout cas.

Mais, je repose ma question : comment tu as obtenu ceci :

return (file_exists($dirname)&&is_dir($dirname))? true:false;

Enfin, par simple curiosité.

Merci et bonne soirée

EDIT : Et qu'en pense-tu de la deuxième fonction ??

jeudi 22 novembre 2012 (Dernière édition jeudi 22 novembre 2012)

db77 Messages : 79

Bin, c'est une affectation conditionnelle, je ne vois pas ce que tu veux dire ... Et ça a toujours existé.

Le principe est le suivant :

$result=condition? vrai : faux ;

Donc après, tu fais ce que tu veux.

Pour la deuxième fonction elle m'a l'air encore une fois bien compliquée pour pas grand chose, mais bon, il faudrait que je trouve un peu de temps pour l'améliorer

jeudi 22 novembre 2012

Darkevil Messages : 221

Je suis encore débutant, et je n'ai pas encore usage de toutes les base du php. En tout cas, merci pour ton aide.

Je n'avais jamais entendu parler de l'affectation conditionnelle.

Bonne soirée

vendredi 23 novembre 2012

db77 Messages : 79

On entend aussi parler de "opérateur ternaire"

Exemple :

$eleve_admis = ($moyenne >= 10) ? true : false;

Et ça peut aller loin :

$resultat = $condition1

 ? ( $condition2 ? $resultat21 : $resultat22 )

 : ( $condition3 ? $resultat31 : $resultat32 );

Mais ça devient vite incompréhensible

vendredi 23 novembre 2012

Page suivante »