IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Obtenir chemin relatif d'un fichier au script à partir de l'absolu du fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Points : 67
    Points
    67
    Par défaut Obtenir chemin relatif d'un fichier au script à partir de l'absolu du fichier
    Salut
    (Désolé du titre pas très... explicite)
    J'aimerais savoir si vous sauriez récupérer le chemin relatif au script d'un fichier par le chemin absolu de ce dernier.
    Par exemple, si on sait que le fichier est /home/thomaskowalski/fichier.txt et que le script est dans /home/thomaskowalski/php/test.php, obtenir "../fichier.txt".

    Je fais ça dans le cadre d'un explorateur de fichiers, et j'ai les droits root :-°

    Merci d'avance

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 209
    Points : 4 687
    Points
    4 687
    Par défaut
    re-bonjour,
    toujours la même réponse:

    Pour relatif au script : __DIR__ : chemin absolu ou se trouve le fichier php en cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    __DIR__ . "/../fichier.txt"
    // "/home/thomaskowalski/php" . "/../fichier.txt"

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Points : 67
    Points
    67
    Par défaut
    Non en fait je connais le chemin absolu du fichier mais pas son chemin relatif.
    Comment retrouver ../fichier.txt à partir de /home/thomaskowalski/fichier.txt et de /home/thomaskowalski/php/test.php ?

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    En faisant une fonction, qui prend en paramètre adresse 1 et adresse 2, et qui te retourne le relatif par un traitement de la chaîne de caractères.
    C'est ça que tu cherches ?

    edit : je viens de corriger à 13H49 car dans nos tableaux explode, il ne faut pas compter l'index 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    /*fonction qui retourne le chemin relatif
     à partir de /home/toto/fichier.txt et de /home/toto/php/test.php*/
    function returnRelativePath($fromPath,$toPath){
    	$p1=explode('/',$fromPath);
    	$p2=explode('/',$toPath);
    	$sizeOfP1=sizeof($p1);
    	$sizeOfP2=sizeof($p2);
    	$i=1;
    	$same=0;
    	echo '<pre>';
    	print_r($p1);
    	echo '</pre>';
    	echo '<pre>';
    	print_r($p2);
    	echo '</pre>';
    	//il faut qu'au moins une fois, l'on ait un chemin commun !
    	while($p1[$i]==$p2[$i] && $i<min($sizeOfP1,$sizeOfP2)){
    		$same++;
    		$i++;
    	}
    	if($same==$sizeOfP1 && $sizeOfP1==$sizeOfP2){
    		//on a entré deux fois la mm adresse !
    		return './'.$p1[$i-1];
    	}
    	//on traite
    	elseif($same>0){
    		$r='';
    		for($i=$sizeOfP1-1;$i>$same+1;$i--){
    			$r.='../';
    		}
    		while($i<$sizeOfP2){
    			$r.=$p2[$i].'/';
    			$i++;
    		}
    		return $r;
    	}
    	elseif($same==0){
    		//les 2 adresses n'ont aucune partie commune
    		return false;
    	}
    }
    $curPath=returnRelativePath('/home/toto/fichier.txt','/home/toto/php/test.php');
    if($curPath !== false){
    	echo $curPath;
    }
    else{
    	echo 'Ces deux fichiers ne sont pas relatifs.';
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Points : 67
    Points
    67
    Par défaut
    Merci c'est tout à fait ce que je voulais !
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter un fichier.m (script) à partir de Simulink .
    Par cicinho22 dans le forum Simulink
    Réponses: 2
    Dernier message: 19/05/2014, 16h14
  2. Réponses: 18
    Dernier message: 08/10/2009, 15h22
  3. [aSp.net][c#] chemin relatif pour acceder a un fichier
    Par mahboub dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/04/2006, 00h59
  4. [tomcat][struts]comment acceder fichier chemin relatif ?
    Par v1nc3kr0 dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/07/2005, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo