Include ou filegetcontent ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par jeremie_, 15 Novembre 2014.

  1. jeremie_
    jeremie_ WRInaute occasionnel
    Inscrit:
    30 Juillet 2009
    Messages:
    415
    J'aime reçus:
    0
    Bonjour

    Pour l'architecture de mon site, j'essaie de regrouper au maximum tous les morceaux de code commun dans des fichiers, que j'appelle ensuite sur les pages du site, via la fonction php INCLUDE.

    Sachant que dans mon site il y a de nombreux répertoires et sous répertoires de créés, ... naturellement j'ai eu envie de faire un appel du type :
    Include "http://www.monsite.com/file.php", afin de pouvoir appeler les fichiers depuis les répertoires.

    Sauf que je viens de découvrir que la fonction include ne marche pas avec un appel à une url complète.

    Une solution pourrait être d'utiliser la fonction php FILEGETCONTENT, qui elle fonctionne avec une url et repond à mon attente.

    Par contre, voyez vous un inconvénient, ou un risque à utiliser cette fonction ?


    Merci par avance pour votre retour.

    Jérémie
     
  2. madri2
    madri2 WRInaute impliqué
    Inscrit:
    29 Décembre 2007
    Messages:
    655
    J'aime reçus:
    0
    fais un include en indiquant le nom du dossier et fichier, pas l'url
     
  3. jeremie_
    jeremie_ WRInaute occasionnel
    Inscrit:
    30 Juillet 2009
    Messages:
    415
    J'aime reçus:
    0
    Merci pour la reponse.
    Je fais cela pour appeler en effet le fichier de 1er niveau.
    Par contre, mon problème se pose en fait surtout pour appeler des fichiers depuis un fichier déjà appelé par la fonction INCLUDE ! C'est là que mon problème se pose.... j'aurais dû le preciser.
     
  4. madri2
    madri2 WRInaute impliqué
    Inscrit:
    29 Décembre 2007
    Messages:
    655
    J'aime reçus:
    0
    pourquoi tu veux inclure 2 fois le même fichier
     
  5. jeremie_
    jeremie_ WRInaute occasionnel
    Inscrit:
    30 Juillet 2009
    Messages:
    415
    J'aime reçus:
    0
    En fait toutes les pages du site vont appeler un fichier file_head.php.
    Et dans le fichier file_head.php, je fais appel à d'autres fichiers.

    Pour appeler le fichier file_head.php, je peux à chaque appel préciser sa position. Par contre, concernant son contenu, je ne peux pas le modifier à chaque appel. C'est pour ça que je voudrais donner l'adresse complète des fichiers appelés dans le file_head.
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 182
    J'aime reçus:
    331
  7. jeremie_
    jeremie_ WRInaute occasionnel
    Inscrit:
    30 Juillet 2009
    Messages:
    415
    J'aime reçus:
    0
    Merci pour ce lient fort interessant.
    Je n avais encore jamais utilise cette constante.
    J essaie des demain et vous tiens au courant.
     
  8. liens-geeks.com
    liens-geeks.com WRInaute discret
    Inscrit:
    6 Octobre 2011
    Messages:
    188
    J'aime reçus:
    0
    La solution de spout devrait régler ton problème
     
  9. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 181
    J'aime reçus:
    1
    Il n'y a, à la base, aucune question a se poser c'est une histoire de technologie.

    Include (bien qu'il puisse travailler sur http cf faille include bien connue) travail a priori sur un système de fichier on inclus donc un code local.

    filegetcontent est plus adapté a un travail sur http donc sur une couche réseau.

    Bref un script actif ne dois pas si il peut s'en passer passer a travers le réseau pour fonctionner dans la mesure ou c'est 1000 fois plus lent et gourmand qu'un accès direct au système de fichier.

    Après comme cela semble souligné (j'ai pas suivi les liens), les souci de multiples présences d'un script avec include se compensent avec require voir les déclinaisons _once, mais sont surtout le reflet d'une architecture mal pensée.
     
  10. jeremie_
    jeremie_ WRInaute occasionnel
    Inscrit:
    30 Juillet 2009
    Messages:
    415
    J'aime reçus:
    0
    Bonjour,

    J'ai donc essayé ... ça marche ... mais je dois avouer ne pas tout bien comprendre.
    Peut-être pourrez vous m'expliquer certaines choses.

    Je vous explique mon architecture.
    Je vais essayer d'être clair.


    ==> A la racine de mon site, j'ai un ficher qui s'appelle "global.php" et qui contient : define( 'ROOT_DIR', dirname(__FILE__) );
    J'appelle ce fichier dans toutes les pages de mon site, avec un : <? include 'global.php' ; ?>

    ==> J'ai un autre fichier à la racine de mon site, "global2.php", également appelé dans toutes les pages de mon site (avec un <? include 'global2.php' ; ?>) et dans lequel je fais (entre autre) un appel à un autre fichier situé dans le sous répertoire "rep1", où je vais chercher la connection à la BD.
    Pour appeler ce fichier (donc dans le "global2.php"), je fais : "require_once( ROOT_DIR.'rep1/bd.php' );"

    (vous suivez toujours ??!!)

    ==> Ensuite, dans le répertoire "rep2", j'ai un fichier qui s'appelle "calcul.php"
    Dans le fichier "calcul.php", je fais donc normalement ces 2 appels :
    ------->> <? include '../global.php' ; ?>
    ------->> <? include '../global2.php' ; ?>

    Tout fonctionne correctement.

    Par contre, étrangement, la page "calcul.php" fonctionne même si je modifie le contenu de la page "global2.php", en retirant le ROOT_DIR :
    ----->> "require_once( ROOT_DIR.'rep1/bd.php' );"
    ----->> "require_once( 'rep1/bd.php' );"


    Finalement, je ne comprends pas trop comment fonctionne le "require_once" et le "ROOD_DIR".


    Jérémie
     
  11. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 181
    J'aime reçus:
    1
    "require_once", "inclus" un fichier si il n'est pas déjà "inclus", pour la constante que tu as défini, ROOT_DIR, fait un echo pour comprendre. Ce n'est pas car tu ne l'a pas définie que ton chemin est forcement mauvais en relatif.
     
  12. jeremie_
    jeremie_ WRInaute occasionnel
    Inscrit:
    30 Juillet 2009
    Messages:
    415
    J'aime reçus:
    0
    Merci pour ton retour.
    En fait je n'ai pas réussi à afficher la valeur de la constante en faisant <? Echo ROOT_DIR ; ?>
    Comment peut il reconnaître une constante sans le $ ?
     
Chargement...
Similar Threads - Include filegetcontent Forum Date
WordPress Bloquer ou non WP include dans le robots.txt ? Référencement Google 5 Septembre 2018
require ou include sont-ils conditionnels ? Développement d'un site Web ou d'une appli mobile 10 Novembre 2017
[Wordpress] Google indexe le dossier /wp-includes/ Débuter en référencement 25 Mai 2017
Problème avec include Demandes d'avis et de conseils sur vos sites 11 Avril 2016
Autoriser l'accès que pour include. Développement d'un site Web ou d'une appli mobile 9 Janvier 2015
10-15 includes par page appelée, c'est trop? Développement d'un site Web ou d'une appli mobile 21 Mai 2014
Fichier php include Développement d'un site Web ou d'une appli mobile 16 Mai 2014
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013
Include Débuter en référencement 24 Mai 2012
@include ou if(is_file($file)) include $file ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012