[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. 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;  
      
      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. il y a une autre solution car cella là, ça ne marche pas pour toutes les hébergements :(
          1. ouiiii ça marche trééééés bien mon ami toto merci trés bien encore une fois
            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. Je peut pas trop te répondre parce j'ai pas trop compris ce que tu voulais faire...
                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 :(