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 :

Problème de répertoire courant


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut Problème de répertoire courant
    Bonjour à tous,

    Je vous expose brièvement l'arborescence des répertoires de mon application et ce que j'aimerais réaliser avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /projet
        /public_html
            /img
                hello.jpg
            template.html
        /index.php
    Mon fichier template.html est une page HTML qui affiche une image via un chemin relatif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Hello !</b><img src="img/hello.jpg" />
    Et dans index.php qui est un niveau plus bas, j'aimerais simplement pouvoir afficher correctement mon template, sans devoir le modifier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    chdir('public_html/');
    require('template.html')
    ?>
    Ca paraît idiot, pourtant, bien que le fichier HTML soit correctement inclus, l'image ne s'affiche pas. Elle ne s'affiche que si je spécifie <img src="public_html/img/hello.jpg" />, comme si mon chdir() n'avait aucun effet. Est-il possible de trouver une solution pour ne pas devoir modifier les templates, ni l'arborescence actuelle ?

    Merci

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut
    extrait du manuel php http://no2.php.net/require
    La commande require() se remplace elle-même par le contenu du fichier spécifié
    sa veut dire qu'il faut bien mettre <img src="public_html/img/hello.jpg" /> pour que sa fonctionne dans ton index.

  3. #3
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut
    Oui tu as tout a fait raison, mais n'existe-t-il pas un moyen pour changer le DocumentRoot d'Apache en fonction du projet en cours ?

    Les idées de solutions que j'ai imaginé, mais plutôt lourdes à implémenter :
    • charger le fichier via par exemple file_get_contents au lieu d'un include, et remplacer toutes les occurences de [<img src="] par [<img src="public_html/], mais ça implique le même traitement pour tous les élements externes à la page (CSS, Javascript, Flash, etc...)
    • peut-être y a-t-il moyen en utilisant une règle de réécriture... mais je ne maîtrise pas bien cette technique
    • changer la config d'Apache pour déplacer le DocumentRoot, mais je préfère éviter cette solution, supposant que je n'aurai pas toujours forcément accès à ces options


    D'autres idées ? Elles sont toutes les bienvenues, même les plus folles

    Merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    La seule solution que j'ai trouvé utilise la variable $_SERVER.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $path= $_SERVER[DOCUMENT_ROOT];
    include ($path.'/includes/premiere.php');
    include ($path.'/template/template.php');
    ?>
    et dans ton template.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $path= $_SERVER[DOCUMENT_ROOT];
    ?>
    <b>Hello !</b>
    <img src="<?php echo $path;?>/img/hello.jpg" />

Discussions similaires

  1. Problème de répertoire courant
    Par saymon dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 18/05/2009, 13h53
  2. Problème de répertoire courant
    Par demando77 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 17/05/2008, 18h32
  3. [JAR / Linux] Problème de répertoire courant
    Par Nanawel dans le forum Langage
    Réponses: 8
    Dernier message: 01/07/2007, 17h24
  4. [File] Problème de répertoire courant
    Par seb_asm dans le forum Applets
    Réponses: 5
    Dernier message: 03/05/2005, 19h44
  5. répertoire courant ".\"
    Par tut dans le forum MFC
    Réponses: 2
    Dernier message: 10/03/2004, 09h57

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