Includen in mappen en verschillende bestanden

Status
Niet open voor verdere reacties.

5blabla5

Gebruiker
Lid geworden
27 apr 2009
Berichten
485
Goeiemiddag!

Ik heb een vraag over includen in een bepaalde mappenstructuur. Ik heb de volgende mappenstructuur:
Code:
/test.php
/system
/system/includeme.php
/system/config.inc.php
/system/config
/system/config/dir.conf.php
/system/config/login.conf.php
/system/functions.inc.php
/system/functions
/system/functions/aes.func.php

Nu werkt het als volgt: test.php include includeme.php. includeme.php include config.inc.php en functions.inc.php. config.inc.php include alle bestanden in de config map, en functions.inc.php alles in de functions map.

Nu zit ik met het probleem dat test.php een foutmelding geeft dat dir.conf.php niet te vinden is (daarna stopte het script).

Include methoden:
Code:
test.php include 'system/includeme.php';
system
system/includeme.php require_once 'config.inc.php'; require_once 'functions.inc.php';
system/config.inc.php require_once 'config/dir.conf.php'; require_once 'config/login.conf.php';
system/config
system/config/dir.conf.php
system/config/login.conf.php
system/functions.inc.php require_once 'functions/aes.func.php'; 
system/functions
system/functions/aes.func.php

Alles is dus relatief geinclude. Verder is system niet geplaatst in de root, en kan het zijn dat die in de toekomst verplaatst moet worden. test.php kan ook overal worden geplaatst, aangezien includeme.php van overal geinclude moet kunnen worden.

Hebben jullie een oplossing voor dit probleem?
 
als je in / een bestand include wordt die code uiteraard in / uitgevoerd.

Je zult in de system/ map dus ook system/config/dir.conf.php moeten includen. (Aangezien het uitgevoerd wordt in /)

Beter is om overal absolute paden te gebruiken. Je kunt bijvoorbeeld de map van config.inc.php bepalen door daar __DIR__ voor nieuwe php versies te gebruiken ( dirname(__FILE__) voor oudere )
Vervolgens zet je de zojuist verkregen directory voor je include regel.
 
Ik heb wat gekeken naar include_path, dirname() en een aantal andere functies op dat gebied, en ik heb nu een oplossing gevonden!

Ik gebruik realpath(dirname( __FILE__ )) voor alle bestanden, en ik kan nu test.php overal neerzetten op men server, zonder dat het script foutmeldingen geeft!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan