[Résolu] Problème "\" et "/"

Problème "\" et "/" [Résolu] - PHP - Programmation

Marsh Posté le 29-02-2008 à 12:34:00    

Bonjour tout le monde,
 
j'essaie de connaître le nom du répertoire parent d'un fichier (répertoire qui le contient), mais juste celui qui le contient, pas toute l'arborescence.
 
Pour cela je bidouille un peu :
 
 $chemin_et_fichier = (__FILE__);
 $repertoire_parent = substr(strrchr(dirname($chemin_et_fichier), '//'),1);
 
1. Je commence le PHP et ne connaît donc pas les fonctions existantes déjà implémentées, peut-être y a-t-il plus simple, oui ?
2. J'ai un problème avec les caractères "/" et "\". Lorsque cela marche sur ma bécane, cela ne marche plus après transfert du fichier sur le serveur et inversement. Problème, je pense, dû à la différence Unix/Windows des caractères de séparation des répertoires. Y aurait-il moyen de faire en sorte que cela marche des 2 côtés ?
 
Merci.


Message édité par Beral2 le 29-02-2008 à 13:07:58

---------------
Portfolio
Reply

Marsh Posté le 29-02-2008 à 12:34:00   

Reply

Marsh Posté le 29-02-2008 à 12:42:30    

Utilises que des /, des chemins absolus et y'aura pas de souci.  
 

Reply

Marsh Posté le 29-02-2008 à 12:50:09    

leflos5 a écrit :

Utilises que des /, des chemins absolus et y'aura pas de souci.


Non. N'utilise que DIRECTORY_SEPARATOR, des chemins absolus, et y'aura pas de souci :D

Reply

Marsh Posté le 29-02-2008 à 12:50:50    

Oui mais là il y a un soucis justement, ce n'est pas moi qui décide du choix de ces caractères, (__FILE__) me retourne des "\" en local et des "/" sur le serveur distant.
Et quand je fais une recherche de caractères dans la chaîne renvoyée, forcément ça pose problème... un problème de configuration d'EasyPHP peut-être ?

Reply

Marsh Posté le 29-02-2008 à 12:52:23    

Sinon avec dirname tu remontes d'un niveau, avec basename tu récupère la dernière partie. Ce qu'il te faut, c'est :

Code :
  1. $repertoire_parent = basename(dirname(__FILE__));

Reply

Marsh Posté le 29-02-2008 à 12:54:32    

Beral2 a écrit :

Oui mais là il y a un soucis justement, ce n'est pas moi qui décide du choix de ces caractères, (__FILE__) me retourne des "\" en local et des "/" sur le serveur distant.


Y'a pas de soucis. C'est juste dépendant de l'OS. C'est pour ça que PHP définit la constante DIRECTORY_SEPARATOR qui contient le bon séparateur.  
 

Beral2 a écrit :

un problème de configuration d'EasyPHP peut-être ?


Non, pas de problème de config. Par contre dans un autre registre, je te déconseille fortement esayphp, qui est beaucoup trop vieux au niveau des versions. Utilise plutôt WAMP

Reply

Marsh Posté le 29-02-2008 à 13:02:23    

Parfait ce que tu me donnes FlorentG, j'utilisais basename pour la suite : $fichier = basename($chemin_et_fichier);
 
Je n'avais pas pensé que cela pouvait donner autre chose que le nom du fichier (nom d'un répertoire donc qd couplé avec dirname).
Beaucoup plus simple que mon moisi $repertoire_parent = substr(strrchr(dirname($chemin_et_fichier), '//'),1);
 
Sinks à vous.
 
Je regarde qd-même DIRECTORY_SEPARATOR

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed