case switch automatique avc glob besoin d'aide

WRInaute discret
bonjour a tous

j'essaye se matin de faire un petit script qui pourrais m'etre bien utile mais je recontre quelques petit problemes et j'espere que certains d'entre vous pourrons m'aider.

En effet sur mes sites j'utilise les include avec switch et case pour l'affichage du contenue

par exemple



Code:
switch($rub)
{
case'menu':
 switch($page)
 {



 case'liens':
 include('liens.php');
 break;

 case'referenceurs':
 include('referenceurs.php');
 break;

 default:
 include('news.php');
 break;

 }
 break;


default:

include('news.php');
break;
}
?>




mais cela demande a chaque fois l'edition de se bout de code pour ajouter de nouvelles pages

donc en gros je veux optimiser pour gagner du temps. vue que chaque case et include ont le meme nom (l'extension en moins) j'ai fait se bout de code mais il ne fonctionne evidemment pas je pense que cest surtout l'ecriture du code qui pose probleme.



Code:
<?


switch($rub)
{
case'menu':
 switch($page)
 {

$files = glob("*.php" );
foreach ($files as $filename)
{   
$filename2 = substr($filename, 0, -4);     
$ss = "
case'$filename2':
include('$filename');
break;
";
print_r($ss);
}


 default:
 include('news.php');
 break;

 }
 break;


default:

include('news.php');
break;
}
?>


bon la j'ai mis un print_r qui ne sert a rien car je ne sais pas comment stocker tout sa pour que cela sois pris en compte

Un petit coup de main svp ???

Cela ne doit pas etre si compliquer mais je me prend la tete la dessus sans arriver a rien depuis 2h

merci de votre aide
 
WRInaute occasionnel
Salut,

A ta place je n'utiliserai pas glob ni switch.

Code:
$inclusions = array('page1', 'page2', 'page3');
foreach ($inclusions as $inc) {
      include $inc.'.php';
}

Edit : Et si tu tiens vraiment à utiliser glob,

Code:
foreach (glob('*.php') as $file) {
      include $file;
}

Le soucis c'est que ça t'incluera tous les fichiers...
 
WRInaute discret
dans se cas je doit toujours editer le array a moins de l'automatiser aussi

edit
avec ta technique il ne reconnaitra pas les inclusion a faire en foction du nom de la page

si je souhaite ouvrir la page accueil.php?rub=menu&page=news comment va t-il reconnaitre le bon include sans le switch ?
 
WRInaute occasionnel
Code:
$includes = glob('*.php');

foreach ($includes as $inc) {
      if ($page.'.php' === $inc) {
            include $inc;
      } 
}
 
Discussions similaires
Haut