Page 1 sur 1

utilisation d'un joker pour exprimer un groupe de dossiers

Posté : 02 nov. 2005, 01:51
par Gakman
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"){

Posté : 02 nov. 2005, 01:54
par ouckileou
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

Posté : 02 nov. 2005, 02:03
par Gakman
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 ?

glob

Posté : 02 nov. 2005, 13:06
par nicolas
Regarde comment fonctionne la fonction glob
http://fr.php.net/glob

Posté : 02 nov. 2005, 13:22
par ouckileou
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

Posté : 02 nov. 2005, 19:52
par Invité
Merci !

Posté : 02 nov. 2005, 19:53
par Gakman
Merci !
(c'était déjà moi mais avec oubli de connexion :wink: )