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 :

Chemin du fichier � lire


Sujet :

Langage PHP

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Inscrit en
    Octobre 2005
    Messages
    908
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par d�faut Chemin du fichier � lire
    Bonjour,

    je me retrouve devant un casse-t�te et j'esp�re qu'il y a une m�thode/solution !
    Disons que j'ai 2 pages (a 2 emplacements diff�rents) qui chargent un m�me script php.

    index.php � la racine du site qui inclus pageX.php se trouvant dans un dossier "php" de cette mani�re :
    index.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <?php
    if (file_exists("php/pageX.php")) {
        include("php/pageX.php");
    }
    ?>
    pageA.php dans un dossier "dossier" qui inclus pageX.php de cette mani�re :
    dossier/pageA.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <?php
    if (file_exists("../php/pageX.php")) {
        include("../php/pageX.php");
    }
    ?>
    Jusqu'ici pas de probl�me... le souci vient du fait que pageX.php doit charger le contenu d'un *.txt de cette mani�re :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $texte = file_get_contents("php/fichier.txt");
    Du coup, le ciblage est forc�ment faux pour l'un des 2 appels.
    Dans le cas pr�sent, c'est l'appel de pageA.php qui ne peut pas fonctionner car il ne se trouve pas au m�me endroit que le dossier php.

    Y a-t-il une astuce, une m�thode pour pallier � ces d�sagr�ments ?


    Merci d'avance.

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par d�faut
    J'ai d�j� eu le m�me genre de d�sagr�ment.
    Je me souviens plus du d�tail, mais j'avais mis le traitement "sensible" dans une fonction, qui prenait en param�tre le r�pertoire de travail du script courant, � partir duquel travailler.

  3. #3
    Membre �clair�
    Inscrit en
    Octobre 2005
    Messages
    908
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par d�faut
    merci Eusebius pour ta participation

    y aurait pas une m�thode pour cibler toujours � partir de la racine du site ?
    moi, je pensais que :
    ../ : remont� d'un niveau
    ./ : dossier actuel
    / : racine du site (ce qui d'apr�s mes tests est inexact... )

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par d�faut
    ah si, normalement en commen�ant par un slash c'est un chemin absolu... [edit : uniquement sous UNIX, merci Taum] Moi je ne l'avais pas utilis� parce que j'avais besoin que �a reste portable lors d'une migration.

  5. #5
    Membre �m�rite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Par d�faut
    Salut,

    Tu peux utiliser la constante __FILE__ qui contient toujours le nom (chemin complet) du fichier courant. De plus on peut extraire le dossier avec dirname().
    Par exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    php/pageX.php:
    -------------
    // Appellera toujours php/fichier.txt, quelque soit le fichier qui inclus
    $texte = file_get_contents(dirname(__FILE__).'/fichier.txt');
    Une autre solution est de d�finir une constante dans tes pages (ou dans un fichier de config) que tu utiliseras partout.
    Par exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    config.php:
    ----------
    define('APP_ROOT', dirname(__FILE__)); // Vaudra toujours le dossier racine de l'application
     
    php/pageX.php:
    -------------
    $texte = file_get_contents(APP_ROOT.'/fichier.txt'); // Pas d'ambiguité puisqu'on utilise la constante prédéfinie

    Quand au "/" simple, il designe la racine du site en HTML seulement. Pour le syst�me de fichier local, c'est la racine du syst�me de fichier sur unix mais pas pour windows (qui utilise C:\, D:\ etc..).
    En d'autres termes, tu peux utiliser en HTML (<a href="/page.html">) mais pas en PHP (fopen("/page.html")).


    cf. aussi http://php.developpez.com/faq/index....riptdansscript qui propose d'utiliser $_SERVER['DOCUMENT_ROOT'], et oui en PHP aussi there's more than one way to do it

  6. #6
    Membre �clair�
    Inscrit en
    Octobre 2005
    Messages
    908
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par d�faut
    Merci Taum
    avec toutes ces pr�cisions, je devrais arranger la chose...

    Encore merci � vous deux !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. r�cuperation de chemin de fichiers !!!
    Par massiliaman dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 31/07/2007, 18h17
  2. R�ponses: 3
    Dernier message: 21/06/2005, 16h18
  3. [SAX] Chemin du fichier XML
    Par mikemikemike dans le forum Format d'�change (XML, JSON...)
    R�ponses: 3
    Dernier message: 25/11/2004, 15h04
  4. [Fichier] Lire le contenu d'un fichier
    Par bart64 dans le forum Entr�e/Sortie
    R�ponses: 6
    Dernier message: 19/09/2004, 18h18
  5. [Fichier] Lire un fichier texte long
    Par _Eric_ dans le forum Entr�e/Sortie
    R�ponses: 9
    Dernier message: 18/08/2004, 15h22

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