lien absolu pour include ?

lien absolu pour include ? - PHP - Programmation

Marsh Posté le 13-04-2006 à 19:18:25    

Bonjour, j'utilise des fonctions partagées sur plusieurs sites, avec à chaque fois une arborescence différente.
Est-il possible de définir un chemin absolu pour include en php ?
 
Autrement que de cette manière qui d'ailleurs ne fonctionne pas

Code :
  1. <? $R=getenv('HTTP_HOST');include ("http://".$R."/interface/cfg.php" );?>


 
Merci  :)


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 13-04-2006 à 19:18:25   

Reply

Marsh Posté le 13-04-2006 à 19:59:28    

pour inclure une page, tu ne peux que sur le serveur
a partir du moment ou tu appelles une page en http:// elle sera interprétée par le server

Reply

Marsh Posté le 13-04-2006 à 20:31:51    

gatsu35 a écrit :

pour inclure une page, tu ne peux que sur le serveur
a partir du moment ou tu appelles une page en http:// elle sera interprétée par le server

Donc il n'y a aucun moyen d'inclure une page depuis la racine du serveur ?
à la manière de /images/bla.gif en html ?


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 13-04-2006 à 20:37:22    

Hello,
 

Code :
  1. include ('/chemin/du/dossier/fichier.php');
  2. ou
  3. include ('c:/chemin/du/dossier/fichier.php');


suivant l'os.
 
ps : voir aussi include_path dans php.ini ou avec ini_set

Reply

Marsh Posté le 13-04-2006 à 23:12:30    

Merci à toi, ça simplifie extrêmement ma tache  :D


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 18-04-2006 à 19:08:02    

grosbin a écrit :

Bonjour, j'utilise des fonctions partagées sur plusieurs sites, avec à chaque fois une arborescence différente.
Est-il possible de définir un chemin absolu pour include en php ?
 
Autrement que de cette manière qui d'ailleurs ne fonctionne pas

Code :
  1. <? $R=getenv('HTTP_HOST');include ("http://".$R."/interface/cfg.php" );?>


 
Merci  :)


vu dans DotClear :  

Code :
  1. require_once dirname(__FILE__).'/../../inc/prepend.php'; // Configuration


 
 


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 18-04-2006 à 21:24:35    

Gaffe, le __FILE__ depend du fichier qui est executé et non pas de celui qui est inclu :  
 
<?
// truc.php
echo __FILE__;
?>
 
<?
//bidule.php
include(truc.php);
?>
 
L'output : bidule.php
 
Edit : oublié un ;


Message édité par esox_ch le 18-04-2006 à 21:25:00

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-04-2006 à 10:46:58    

horrible  :lol:  

Code :
  1. <? if(getenv('HTTP_HOST')=='127.0.0.1') $R='e:/easyphp1-8/www/';
  2. else $R='/home/ha/bliblu/www/';include ($R."cfg.php" );?>


 :jap:


Message édité par grosbin le 19-04-2006 à 10:47:12

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 19-04-2006 à 10:49:33    

Perso j'ai rien trouvé de plus "confortable" que de faire un .htaccess qui defini un path d'include vers une de mes classes, et apres c'est elle qui load les fichiers et qui fait les path suivant des fichiers de config créés a l'upload de fichier


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-04-2006 à 13:40:38    

Il y a une variable d'environnement qui permet de récupérer depuis la racine et elle est garantie sur facture. [:aloy]  
Elle donne le chemin jusqu'a la racine du site.
$_SERVER['DOCUMENT_ROOT']  
sur l'inux cela peut donner /etc/....
window c: / ...


Message édité par Berceker United le 19-04-2006 à 13:40:51
Reply

Marsh Posté le 19-04-2006 à 13:40:38   

Reply

Marsh Posté le 19-04-2006 à 14:00:21    

Elle donne la racine du serveur web.[:aloy]
...et perso ça ne suffit pas, mais je suis un cas particulier.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-04-2006 à 14:17:54    

quand ça me suffit pas je me crée une méthode statique me renvoyant la racine (comment ça jsuis un bourrin ?)

Reply

Marsh Posté le 19-04-2006 à 14:19:23    

perso j'ai un passage obligé sur l'index dans tout ce que je développe pour le taf...donc je colle le chemin de ma "racine relative" en session à-partir de l'index avec un getcwd()...[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-04-2006 à 14:20:35    

moi c'est un passage par le frontcontroller quoiqu'il arrive, et qui contient donc une méthode statique renvoyant la racine :p
Ca raukse plus que par session !

Reply

Marsh Posté le 19-04-2006 à 14:23:39    

...sauf que tu es obligé de la mettre en dur dans ta méthode, la racine, non? [:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-04-2006 à 14:29:55    

bah en général je part de $_SERVER['DOCUMENT_ROOT']  et je rajoute ce que je veux derrière, ce qui est non-variable en général.
Enfin, tu fais ce que tu veux, ça change rien par rapport à ce que tu fais ^^
(juste que dire qu'une méthode statique me donne ma racine ça raukse !)

Reply

Marsh Posté le 21-04-2006 à 15:32:35    

Djebel1 a écrit :

bah en général je part de $_SERVER['DOCUMENT_ROOT']  et je rajoute ce que je veux derrière, ce qui est non-variable en général

Mais quand on développe plusieurs sites en local, c'est très chiant de redéterminer pour chaque site le chemin absolu par rapport à la racine ( css, images et toutça )
 
Y'à t-il moyen d'éviter cela avec easyphp ? Peux-on déterminer deux localhosts distincts ou on doit perpétuellement ajouter cela :

<link rel="shortcut icon" href="/'.$_CFG['REL'].'rjl.gif">
 <script type="text/javascript">var root="/'.$_CFG['REL'].'"</script>
 <script type="text/javascript" src="/'.$_CFG['REL'].'library/js/flash.js"></script>
<link href="/'.$_CFG['REL'].'rjl.css" rel="stylesheet" type="text/css">

Message cité 1 fois
Message édité par grosbin le 21-04-2006 à 15:33:11

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 21-04-2006 à 17:04:03    

> Mais quand on développe plusieurs sites en local, c'est très chiant de redéterminer pour chaque site le chemin absolu par rapport à la racine
tu le fais une seule fois à un seul endroit de ton projet, c'est pas la mort ;)
 
Sinon je pense que tu dois perpétuellement l'ajouter, mais je suis pas très fort sur les méthodes de sioux qui te donnent moins de boulot

Reply

Marsh Posté le 21-04-2006 à 18:29:07    

grosbin a écrit :

Mais quand on développe plusieurs sites en local, c'est très chiant de redéterminer pour chaque site le chemin absolu par rapport à la racine ( css, images et toutça )
 
Y'à t-il moyen d'éviter cela avec easyphp ? Peux-on déterminer deux localhosts distincts ou on doit perpétuellement ajouter cela :

<link rel="shortcut icon" href="/'.$_CFG['REL'].'rjl.gif">
 <script type="text/javascript">var root="/'.$_CFG['REL'].'"</script>
 <script type="text/javascript" src="/'.$_CFG['REL'].'library/js/flash.js"></script>
<link href="/'.$_CFG['REL'].'rjl.css" rel="stylesheet" type="text/css">



et pourquoi tu mets pas tout en relatif ?


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 21-04-2006 à 18:39:03    

Djebel1 a écrit :

Sinon je pense que tu dois perpétuellement l'ajouter, mais je suis pas très fort sur les méthodes de sioux qui te donnent moins de boulot

Recherchons les méthodes de sioux ensemble  :jap:  

zapan666 a écrit :

et pourquoi tu mets pas tout en relatif ?

Parceque cette partie est commune  ;)


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed