Archief - PHP : includes relatief ten opzichte van huidig bestand

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

servi

Legacy Member
het probleem is als volgt
ik heb 2 pagina's in verschillende mappen die een bepaalde pagina includen, het probleem is echter dat deze pagina een bestand opent en de padnaam dus verschillend is :

voorbeeld :

index.php :
<?php
include('functie.php');
?>

admin/index :
<?php
include('../functie.php');
?>

functie.php :
<?php
$bestand = 'templates/tekst.templ';
$fp = fopen($bestand,'r');
$grootte = filesize($bestand);
$tekst = fread($fp,$grootte);
fclose($fp);
?>

Het probleem is dan natuurlijk dat hij bij index.php het bestand /templates/tekst.templ gaat openen en bij admin/index.php het bestand admin/templates/tekst.templ gaat proberen te openen.

Nu zou je dit kunnen oplossen met een simpele variabele, maar dit is in mijn geval behoorlijk onnetjes en nauwelijks te doen .( ik heb hier enkel wat gedachte-code gezet, de volledige code is uitgebreider )

Is er een eenvoudige manier om te zeggen dat het bestand moet geopend worden vanaf de pad van functie.php en niet vanaf de pad van de pagina include ?

Lashknife

Legacy Member
ja, je bestand dat je wil openen absoluut aanspreken tov root
/templ-folder/templ-file.ext

dan gaat hij toch altijd vanaf de root zien en heb je geen last.
Maar je gaat dan wel absoluut en da's mss niet wat je wou :)
(heb dit ook niet getest of je vanaf root kunt file readen, zou toch moeten kunnen....)

servi

Legacy Member
had ik al aan gedacht, maar vanaf root is ook geen optie.

Wat ik natuurlijk wel kan doen is heel die padnaam opbouwen, zodanig dat ik de absolute padnaam heb, maar dat vind ik toch een beetje overkill ;)

GuntherDW

Legacy Member
wat ge ook kunt doen is de path in een config file zette en gewoon bv

include($path.'file.php');

doen?

bv h ttp://server/file.php

dJeez

Legacy Member
Servi, dirname en __FILE__ zijn heel handig als je ze goed weet te combineren :p.

In een algemene include definieer 'k 1x een constante met het basispad in op die manier. Daarna include 'k alles tov dat pad.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan