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 :

Fichiers inclus : Utilisation de ressources externes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Fichiers inclus : Utilisation de ressources externes
    Bonjour à tous,

    J'ai un petit souçis qui me gène dans la portabilité de mon code. J'ai certaine de mes classes qui génère du code html dans lequel je peut avoir besoin de placer une image.

    Si je place un dossier images à la racine de mes classes , pas de soucis j'affiche les images.
    Mais si par exemple ma classe est inclues dans une page qui se trouve dans une arborescence différente, la référence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="images/images.gif">
    Se fera à partir du fichier qui inclues la classe et donc l'image ne s'affichera pas.

    Je n'arrive pas à trouve rde solution. Quand on utilise par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SERVER['SCRIPT_NAME']
    dans la classe , c'est le nom du fichier qui inclus la classe qui est gardé et donc pas moyen de retrouver le chemin vers mon dossier images d'origine.

    Y'a t'il une solution autre que de passer le chemin du dossier / fichier à utiliser pour que je puisse inclure mes classes sans me soucier des ressources externe qu'elles peuvent utiliser ?

    Merci
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Salut,

    Personnellement je définis une constante ROOT dans mon script de base (index.php par exemple), et je définis tous mes chemins par rapport à cette racine.

    dans index.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    define ('ROOT', './');
    require_once (ROOT.'inc/common.php');
    require_once (ROOT.'headers.php');
    ///etc...

    dans common.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (!defined('ROOT'))
        exit('Pas de racine !');
     
    require_once (ROOT.'inc/cls/MyException.php');
    require_once (ROOT.'inc/cls/MyDB.php');
    require_once (ROOT.'styles/style01.php'); //au même niveau que inc/ mais pas gênant
    //etc... aussi

    Le deuxième avantage est qu'on ne peut accéder à common.php directement par le navigateur, même si on connait son existence : la constante n'étant pas définie, le script s'arrête.

    De même, tu peux définir une autre page :
    ./autre_page/index.php :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    define ('ROOT', '../'); //notez bien les deux points !
    require_once (ROOT.'inc/common.php');
    require_once (ROOT.'headers.php');
    ///etc...

    Un tout petit point qui aurait pu changer tant de choses sinon...

  3. #3
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Par défaut
    Moi sur chaque projet, je fais pratiquement pareil sauf que j'ai une double constante.

    ROOT_PATH (include php, require php et fichier du serveur)
    ROOT_URL (pour les images, les css et tout ce que dois reconstituer le client)

Discussions similaires

  1. [Eclipse]Inclure/Utiliser des ressources "externes"
    Par manube dans le forum GWT et Vaadin
    Réponses: 8
    Dernier message: 26/11/2008, 13h28
  2. Comment utiliser session_start() dans un fichier inclus
    Par nicolas2603 dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2007, 17h00
  3. Utilisation de $PHP_SELF dans un fichier inclus
    Par Dia_FR dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2006, 19h36
  4. [VB.NET 2.0] Utiliser un fichier EXE inclu comme ressource
    Par MatP dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/08/2006, 18h29
  5. Réponses: 8
    Dernier message: 29/01/2006, 17h48

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