utilisation d'un joker pour exprimer un groupe de dossiers

Eléphant du PHP | 76 Messages

02 nov. 2005, 01:51

Salut !
Je cherche eu nmoyen simple d'exprimer en PHP soit (les 2 solutions donnent le même résultat) :
_ un fichier / dossier commençant par "c_" (comme pour faire une recherche en tappant c_*)
_ un fichier / dossier nommé "c_1" à "c_99"

Je veux en fait dans un listage de dossiers en excluant des dossiers nommés j_1, j_2, ... sans avoir à tapper une liste de 99 cas (c_1 à c_99) dans mon exclusion !
      if ($fichiers_s!="c_" && $fichiers_s!=".htaccess" && $fichiers_s!="." && $fichiers_s!=".." && $fichiers_s!="details.php"){
@++
Gakman
-> http://gakman.free.fr

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 nov. 2005, 01:54

il y a plusieurs solutions, en voici une :
couper les 2 premiers caractères du nom du dossier et regarder à quoi il correspondent
if (substr($dossier, 2) != 'c_') {
   echo 'le nom du dossier ne commence pas par "c_"';
}
Tu pourrais aussi utiliser les expressions régulières et les fonctions qui vont avec :
PCRE : http://fr.php.net/manual/fr/ref.pcre.php
POSIX : http://fr.php.net/manual/fr/ref.regex.php

Eléphant du PHP | 76 Messages

02 nov. 2005, 02:03

Merci !
Je n'arrive pas à l'utiliser. Voilà mon code. Or dans ma page mes dossiers c_1 et c_2 s'affichent toujours :( . Il me semble que substr() supprime les 2 premiers caractères non ? moi je souhaiterais logiquement l'inverse : la focntion qui ne garde que les 2 premiers.
      if (substr($fichiers_s,2)!="c_" && $fichiers_s!=".htaccess" && $fichiers_s!="." && $fichiers_s!=".." && $fichiers_s!="details.php"){
       echo '<a href='.$sav_dossier.'/'.$fichiers_s.'>'.$fichiers_s.'</a><br />';
Et aussi je chercherais à savoir comment dire en PHP : les dossiers de c_1 à c_99 ?
@++
Gakman
-> http://gakman.free.fr

Eléphant du PHP | 353 Messages

02 nov. 2005, 13:06

Regarde comment fonctionne la fonction glob
http://fr.php.net/glob

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 nov. 2005, 13:22

Oui il y avait une petite erreur dans ma fonction c'était :
substr($fichiers_s,0,2)!="
pour récupérer les 2 premiers caractères

désolé, normalement ça devrait marcher, il te suffit de faire afficher le résultat de substr() pour vérifier
sinon essaye la solution de nicolas que je ne connaissais pas

Invité
Invité n'ayant pas de compte PHPfrance

02 nov. 2005, 19:52

Merci !

Eléphant du PHP | 76 Messages

02 nov. 2005, 19:53

Merci !
(c'était déjà moi mais avec oubli de connexion :wink: )
@++
Gakman
-> http://gakman.free.fr