Include

Tags:    php

Hej

Jeg har et script jeg gerne vil include flere forskellige steder fra, men jeg har det problemet, at når det inkluderes så opfattes alle paths fra der hvor scriptet inkluderes og ikke hvor scriptet rent faktisk ligger.

Ex.

dirA/index.php
dirA/dirB/index.php
dirA/dirB/scriptet.php
dirA/dirB/dirC

scriptet.php læser filer i dirC, og af forskellige grunde vil jeg gerne gøre det også når dirA/index.php besøges. Så i dirA/index.php laves en include('dirB/scriptet.php'). En slags pseudo-cron job.

Jeg har prøvet at lave path i scriptet.php absolutte men får en fejl. Jeg tror, at det skyldes, at en absolut path ikke er "helt fri" på mit webhotel.

Er der nogen, som har en ide til løsning eller noget jeg kan prøve?

Jeg kan naturligvis lave et scriptet.php og lægge det i dirA men kunen godt tænke mig en mere generel løsning for netop at kunne lave flere af denne slags pseudo-cron jobs som tiden går.

Mik D.



Indlæg senest redigeret d. 09.07.2006 19:31 af Bruger #4912
6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
hmm...
du kunne lave en variable der varierer alt efter hvilken mappe du ligger i.
Så i hver fil laver du en variable, ex: $relative_path, hvis indhold varierer, f.eks hvis du skal includere en fil fra dirA og du er i dirC, så må $relative_path være: '../../';
så ved hver include kunne se sådan ud: include($relative_path . "fil";




Hej Krille

scriptet.php er lavet sådan at det kører fra dirB. Jeg har kikket på ovenstående links og fundet dette om include_path .:/usr/local/lib/php.

Hvis jeg forstår dig ret så ligger mit problem i startpunktummet i include_path? Hvis dette er væk så kører scriptet absolut.

Jeg mener ikke at jeg kan få lov til at ændre include_path på mit webhotel. Så jeg må lave nogle pseudo-cron jobs der er tilrettet hvor de skal køre fra :-(

Mik D.



Indlæg senest redigeret d. 09.07.2006 19:31 af Bruger #4912
lidt alternativ ide.
du laver en file der readfile på hele dit script og dets includes i den rækkefølge de nu kommer.

også includer du den fil med dens fulde path.



Hej Krille og Nørden

Jeg har fundet en metode der måske ikke er den mest elegante men ligger sig et sted midt i forslagene. I hovedtræk ser det ud som:

I den fil jeg kalder fra i dirA
$runPath='dirB/';
include('dirB/scriptet.php');

osv.

Fra hjemmedir er
$runPath='';

Tak for inspirationen.

Mik D.





du har også en $_SERVER['DOCUMENT_ROOT'] variabel er gå ud fra



t