[php] explode et switche .!!

Résolu
Bonjour,
$i = 2;
$user_location = $_SERVER['PHP_SELF'];
$user_location = explode('/',$user_location);
if ($user_location != explode('.php',$user_location))
{
$user_location = $user_location[$i++];
}
else
{
$user_location = $user_location[2];
}
switch ($user_location)
{
case 'core.php':
$u_location = 'hhhhhhh tu es dans le fichier core.php';
break;
...........

celui là est mon code ou bien une petite partie de mon code.

comment je peut faire pour que si la partie ne contien pas .php ou bien le point . (s'il ya dautre extension de pages) $i++ tourne dans le premier IF ??
Configuration: Windows XP
Firefox 3.0.1

9 réponses

  1. bonjour

    $user_location = $_SERVER['PHP_SELF']; 
    
    switch (substr($user_location,-9)) 
    { 
    case '/core.php': 
    $u_location = 'hhhhhhh tu es dans le fichier core.php'; 
    break; 
    


    ça ne serait pas ça que tu veux ?
    1. $i = 1;
      $user_location = $_SERVER['PHP_SELF'];
      $user_location = explode('/',$user_location);
      $user_location = $user_location[0];

      if (preg_match("/.php/", $user_location[1]))
      {
      $user_location = $user_location[1];
      }

      else
      {
      $user_location = $user_location[$i++];
      }

      switch ($user_location)
      {
      case 'core.php':
      $u_location = 'hhhhhhh tu es dans le fichier core.php';
      break;
      ...........

      j'ai esayé plusieur truc mais tjr pas de résultat satisfait, le truc que j'ai trouvé plus proche c'est celui là mais :(
      1. Je peut pas trop te répondre parce j'ai pas trop compris ce que tu voulais faire...
        1. ok ami ;)

          je vais expliqué un petit peut:

          si vous aver un dossier sur ta racing de votre domain et tu as posé ton scripte laba

          $user_location = $_SERVER['PHP_SELF'];
          $user_location = explode('/',$user_location);
          $user_location = $user_location[2];

          switch ($user_location)
          {
          case 'core.php':
          $u_location = 'hhhhhhh tu es dans le fichier core.php';
          break;
          ...........

          $user_location ici c'est votre fichier.php donc ce scripte ça marche parfaitement

          mais si vous avez un dossier sous un autre est ainsi de suite.

          là $user_location ça ne marche jamais il faut que je fais une astuce pour qu'elle détecte automatiquement votre dossier de scripte ou bien le fichier qu'il a une extension .php

          si .php est dans $user_location[1] c'est bon si non en vas ajouter 1 chaque fois pour qu'on trouve la résultat satisfait

          voila maintenant je crois que tout est claire ;) et merci d'avance cher ami
          1. ouiiii ça marche trééééés bien mon ami toto merci trés bien encore une fois
            1. il y a une autre solution car cella là, ça ne marche pas pour toutes les hébergements :(
              1. pour les hébergements pour lesquels ça ne marche pas, peux-tu faire :
                 echo '<BR>**',htmlentities($_SERVER['PHP_SELF']),'**<BR>';

                pour voir ce qu'ils mettent dans cette variable ? (en particulier si le nom de fichier est bien tout en minuscules)
                1. lool

                  Bonjour a tous:

                  j'ai trouver une très belle solution et il est opérationnelle a 100% avec une belle fonction système du PHP strrev()

                  le rôle de cette fonction et de reversé le résulta, par exemple: on a un lien comme le suivant :
                   http://www.google.com/index.html 

                  en utilisant cette fonction, il se transforme a celui là :
                   lmth.xedni/moc.elgoog.www//:ptth

                  là, pour avoir ce qu'on veux on découpe le lien avant le "/" avec la fonction explode

                  et voilà ce qu'il donne :
                  lmth.xedni

                  il ne rassemble pas à ce qu'on veut, n'est ce pas? donc il reste quoi a faire???

                  encore une fois la belle fonction strrev()qui serve a rendre inversé le code:
                  index.html

                  dans le switch maintenant si case est
                  "core.php"
                  avec la fonction print ou echo vous pouvez afficher ce que vous avez écrire dans
                  $u_location


                  voila la solution et merci Bcp pour votre aide ;)

                  $user_location   = $path;   
                  $user_location   = strrev($user_location);   
                  $user_location   = explode('/',$user_location);   
                  $user_location   = $user_location[0];   
                  $user_location   = strrev($user_location);   
                  
                  switch ($user_location)   
                  {    
                         case 'core.php':    
                         $u_location = ' tu es dans le fichier core.php';    
                         break;  
                  }  
                  
                  echo $u_location;