'Nettoyage' d'une variable ??

Shadow_Source Messages postés 7 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 18 janvier 2005 - 18 janv. 2005 à 12:44
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 18 janv. 2005 à 20:09
Bonjour à tous,


je suis en train de faire un petit
browser de fichiers en php sans prétention qui me permettra juste de
donner accès à certains membres à une partie des fichiers du server
sans pour autant avoir les info de connection ftp.

Le systeme marche avec un listing des fichiers dont
le repertoire est $dir. Mais voilà, quand l'utilisateur ouvre un
repertoire puis reviens en arrier avec le dossier "..", il est ajouté
au $dir un /.. permetant de revenir en arrière.

Le problème est que en fait le /.. reste inscrit
dans $dir. Au bout d'un moment on peut donc avoir un $dir assez bizard (/test/test2/../../images/../test etc). Donc je solicite votre aide pour m'aider à 'nettoyer' le $dir.

Etant donner que je ne connais pas du tout les
procédés qui me permettrais de faire cette opération, je ne sais
absolument pas ou chercher. Je ne demande pas une solution toute faite
(sauf si vous l'avez sous la main) mais plustot un tutoriel qui me
ferai apprendre ou le nom du procéder qui aiguillerait mes recherches.



Merci d'avance

4 réponses

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
18 janv. 2005 à 13:39
Chercher : www.php.net

Famille : Dossiers

Fonction : getcwd



Famille : Système de fichiers

Fonction : realpath





Si cette réponse te satisfait, choisis "Réponse Acceptée"

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
0
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
18 janv. 2005 à 13:56
C'est très simple. Au lieu de rajouté /.. à la fin je te conseil de
plutôt supprimé le dossier de la fin avec le lien. Voici la commande
pure et simple: $dir = substr($dir,0,strrpos($dir,'/'));
0
Shadow_Source Messages postés 7 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 14:36
Merci à vous deux, vos solutions sont toutes deux tres interessantes.

Je pense les utiliser toutes les deux.




Sinon, pour nettoyer un texte, j'ai trouvé ceci ausi:

$dir = "test/../test/";

echo str_replace("/../", "/", $dir);

ou

echo ereg_replace("/../", "/", $dir);



Mais c'est vrai qu'il est plus simple de faire par vos techniques. Encore merci !!
0
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
18 janv. 2005 à 20:09
Choisi Réponse acceptée pour celles qui t'interessent !

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
0
Rejoignez-nous