Include en PHP, lien relatif, absolu, ...

Le problème exposé dans ce sujet a été résolu.

Bonjour,

j'ai un problème avec mon site, pour le header, footer, etc. J'utilise la fonction require_once(""). Mais j'ai un problème lorsque j'inclue un fichier qui lui même include un fichier. Car j'ai l'impression que les liens sont pris du premier include et non du fichier qui l'inclue.

1
2
3
4
5
6
Dossier1
  -file1.php
  dossier2
    -file2.php
dossier3
  -file3.php

Disons que file2 inclue en lui file1, et que file1 include file3. A mon avis, voici se que devrait être leur contenu:

1
2
3
4
5
6
7
8
//file2.php:
require_once("../file1.php");

//file1.php
require_once("../dossier3/file3.php");

//file3.php
echo 'Bonjour';

Mais se script pose problème, puisque quand file1 se trouvera dans file2, le chemin de file1 à file3 ne jouera pas. Le problème pourrait se résolver en modifiant les chemin, mais imaginons que j'e créer un nouveau fichier situé ailleurs ça ne jouerais pas. Comment puis-je faire ?

WinXaito (Et vraiment désoler, je sais que c'est assez confus.)

donc dans file1.php ça devrait être quelque chose du type

1
require_once(''.dirname(__FILE__).'../dossier3/file3.php');

Car si c'est cela, ça ne fonctionne pas. (J'utilise dirname(__FILE__), car je crois que __DIR__ est uniquement disponible dans PHP3, or j'utilise la verison 2.)

[edit] En lisant la doc de PHP, c'est moi qui ai fait une petite faute, en faites __DIR__? (Ou dirname(__FILE__)) ne retourne pas le slash à la fin du dossier.

Et donc ça fonctionne. Merci à toi !

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte