Parser des répertoires

coco68100
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 16:19

Bonjour;
Chacun est maitre chez lui..
Mais chez moi ca marche pas aidez moi svp
Ma structure

Code : Tout sélectionner

Modules EnTete.php Pied-de-page.php Page(1).php ............php Page(N).php Cours Cours.php Cours1.php ............php Cours(N).php

Modules et Cours sont deux Repertoires à la racine "dans le Rep-Root" (Niveau 0)"
Je suis dans la page Cours.php
Ma syntaxe
 
require dirname(__FILE__).'/Modules/EnTete.php'; 

C'est normalement bien un chemin absolu non?
Voici ce que me retourne cette synthaxe
 
Fatal error: require() [function.require]: Failed opening required 'C:\wamp\www\Cours/Modules/EnTete.php' (include_path='.;C:\php5\pear') in
 C:\wamp\www\Cours\Cours.php on line 10[b] 


Donc

Code : Tout sélectionner

'C:\wamp\www\Cours/Modules/EnTete.php' et un chemin RELATIF ???

Alors que moi je voudrais CHEMIN ABSOLU SVP

Code : Tout sélectionner

:C:\wamp\www\Modules\EnTete.php

ou*

Code : Tout sélectionner

MonSite.com/Modules/EnTete.php

[/b]
Si vous pouviez me donné la bonne syntaxe en chemin absolu donc en evitant de redecendre d'un niveau avec ../

Je souhaite un require chemin absolu non un include si possible.SVP
Et si vous pouviez equalement me donné la meme chose mais avec le nom de serveur pour que je puisse voir la difference si possible
DU STYLE MAIS CA MARCHE PAS
 
$server = $_SERVER['SERVER_NAME']; 
require $server/Modules/EnTete.php;

ou
 
require $_SERVER['DOCUMENT_ROOT']./Modules.EnTete.php';

S'il vous plait aidez moi en me donnant "juste" les bonnes syntaxes je les comprendrai.
Sans me noyer dans trop de blabla en me disans de reviser le php ;-)
lol c'est pas mon damaine(ligne2).
Un grand merci à touts ceux et celles qui se pencherons sur mon probleme pour m'aider

ViPHP
ViPHP | 2287 Messages

18 janv. 2009, 16:33

...
Bonjour,

A l'avenir préfère ouvrir un nouveau sujet si tu as une question à poser stp, merci :-)

Ton problème vient du fait que tu es sous windows (ça tu le savais déjà). Sous windows le séparateur de dossiers est l'antislash. Pour être parfaitement portable il faudrait donc transformer ce code :
 
require dirname(__FILE__).'/Modules/EnTete.php'; 


en ceci :
 
require dirname(__FILE__).DIRECTORY_SEPARATOR.'Modules'.DIRECTORY_SEPARATOR.'EnTete.php'; 


La constante DIRECTORY_SEPARATOR est fournie par défaut avec PHP, tout comme __FILE__, et contient un slash ou un antislash selon le système qui fait tourner le script :-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 447 Messages

18 janv. 2009, 18:23

hello,

une question au passage, que signifie "magique"?
Probably (only a) Human Problem?

ViPHP
ViPHP | 4674 Messages

18 janv. 2009, 20:52

Une histoire de chapeau et de lapin, mais j'ai pas tout pigé …
:P

En fait, ce sont des éléments liés à PHP. Ils peuvent être changés, évolués, évaluée, appelée etc. par PHP (ou par l'utilisateur mais pas pour tous). En gros, ce sont des noms sur lesquels PHP peut influencer. Exemple : quand on utilise la constante magique __FILE__, elle sera remplacée par le numéro de ligne, comme le numéro est changeant, on ne peut pas vraiment appeler ça une constante, mais PHP la modifie selon le contexte (ici le numéro de ligne), c'est donc magique. On trouve les méthodes __construct, __destruct, __invoke, __call, __set, __isset, __clone, __autoload etc etc., il en existe un bon nombre très pratique. Ça fait partie et ça ajoute du dynamisme dans le comportement de PHP.
On les connaît car ils commencent toujours par un double underscore : __.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 21:51

Ca ne marche pas Calimero Merci d'essayé mais tu n'as pas compris
Le sens des slash ou antislash n'a pas d'importance dans mon cas!

Merci de m'aider ma version de php renvoi apparement un chemin relatif ou le probleme viens d'ailleurs

Voici la syntaxe dans la page Cours.php
require dirname(__FILE__).DIRECTORY_SEPARATOR.'Modules'.DIRECTORY_SEPARATOR.'EnTete.php';

Code : Tout sélectionner

Warning: require(C:\wamp\www\Cours\Modules\EnTete.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\Cours\Cours.php on line 9 Fatal error: require() [function.require]: Failed opening required 'C:\wamp\www\Cours\Modules\EnTete.php' (include_path='.;C:\php5\pear') in C:\wamp\www\Cours\Cours.php on line 9
Donc il cherche le repertoire Modules dans le repertoire Cours
Ceux qui peuvent m'aider merci je vais devoir tout remettre

ViPHP
ViPHP | 4674 Messages

18 janv. 2009, 22:01

Bah où est le fichier que tu dois inclure (le chemin complet, écrit à la main pas en code) ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 4674 Messages

18 janv. 2009, 22:08

La fonction dirname() retourne les dossiers pour un chemin. Donc ça te donne le répertoire courant. Si tu veux remontrer d'un dossier, il suffit d'appliquer deux fois dirname() …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 22:35

'/Modules/EnTete.php'

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 22:37

Comment ca ""il suffit d'appliquer deux fois dirname""
Tape la syntaxe stp

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 22:40

Il suffit de lire bien.
Ca sert a rien de fuire le prob ou de faire comme calimero il faut le resoudre s'il vous plait
Je ne vous comprend pas!!!!
C clair

ViPHP
ViPHP | 2287 Messages

18 janv. 2009, 22:43

Ca sert a rien de fuire le prob ou de faire comme calimero il faut le resoudre s'il vous plait
Je ne vous comprend pas!!!!
C clair
Si ce que je fais ne sert à rien, rassure toi : je ne ferai plus rien du tout pour toi, ni aujourd'hui ni plus tard :-) Bonne journée.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

ViPHP
ViPHP | 4674 Messages

18 janv. 2009, 22:45

L'appliquer deux fois ça signifie dirname(dirname(…)). C'est moi où t'es drôlement agressif ? On ne fuit pas le problème d'une part, et on est ici pour te faire trouver la réponse et non pas pour te la donner. Alors on se calme ou ça va modérer sévère dans les chaumières :evil:
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

coco68100
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 22:57

Bref c pas grave Merci quand meme pour vos efforts!
Si quelqu'un d'autre a une reponse correct je suis preneur.
Merci a ceux qui modestement se pencherons sur mon probleme!
Aucune solutions correct pour l'instant.
Apparament c'est vraiment un métier lol
Question:
chemin absolu pour require

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 janv. 2009, 22:58

Il suffit de lire bien.
Ca sert a rien de fuire le prob ou de faire comme calimero il faut le resoudre s'il vous plait
Je ne vous comprend pas!!!!
C clair
Modération :
Ce genre d'accusation n'est pas accepté ici. :evil:
Calimero a passé du temps à étudier ta question et à te proposer des réponses.
HyWaN a également réfléchi à ton problème.

Si leurs réponses ne t'ont pas permis de le résoudre,
c'est peut-être que tu n'as pas donné tous les éléments nécessaires.

Quoi qu'il en soit, les valeurs que nous apprécions sur ce forum sont : courtoisie, humilité et respect.
Si tu fais preuve d'arrogance, de colère, d'impatience,... la question sera vite réglée.

Merci de corriger le tir.

coco68100
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 23:05

voila une syntaxe qui marche et pas que en local mais elle ne me satisfait que a moitier les connaisseur du ['DOCUMENT_ROOT'].comprendron le problem
Ca marche mais je ne peus le mettre en resolu ce n'est pas ce que je souhaite.
require $_SERVER['DOCUMENT_ROOT'].'/Modules/EnTete.php';
Merci a ceux qui perseverons