Xqtor Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 (endret) Jeg har noen php-filer jeg benytter 'include' på, men det ser ut til at det er et problem å få lest de fra sub-directories: Fra rot-nivå for website'n har jeg to sub-directories (disse ligger begge et nivå ned); includes/ sql/ Planen var at jeg skulle samle alle filer jeg bruker 'include' på , ja - du gjettet riktig, i directoriet 'include'. Men hvis jeg i en fil i 'sql'-directoriet prøver meg på include('../includes/en_fin-fin_fil.php'); går ikke det veldig bra, og feilmeldingen klager på at filen ikke finnes. Tips, anyone? Endret 22. oktober 2006 av Xqtor Lenke til kommentar
lefsaker Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 Prøv: include('includes/en_fin-fin_fil.php'); Lenke til kommentar
Canute Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 (endret) Husk at du må bruke stien i fra den filen hvor alt begynner. Hvis du starter i index.php og inkluderer mappe1/fil.php. Hvis du nå i fra fil.php skal inkludere mappe2/fil2.php så må du bruke include('mappe2/fil2.php'); Endret 22. oktober 2006 av Canute Lenke til kommentar
Xqtor Skrevet 22. oktober 2006 Forfatter Del Skrevet 22. oktober 2006 Men når 'includes'-katalogen og 'sql'-katalogen ligger på samme nivå må jeg jo først ut av 'sql'-katalogen (../ ) - det ligger ingen 'includes'-katalog i sql-katalogen (?). Kan jeg evt. definere en variabel (f.eks. $include_path ) og så bruke sessions for å håndtere denne, slik at jeg kan henvise til '$include_path/en_fin-fin_fil.php' ? Lenke til kommentar
Peter Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 (endret) evt. bruk absolutt path: require( dirname(__FILE__).'/../includes/en-fin-fil.php' ); evt. bruk: http://no2.php.net/manual/en/function.set-include-path.php Les mer: http://no2.php.net/require http://no2.php.net/dirname http://no2.php.net/manual/en/language.cons....predefined.php Endret 22. oktober 2006 av Nazgul Lenke til kommentar
PHPdude Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 Jeg pleier å løse dette med å definere en konstant "DIR_MAIN" i hovedfilen som inneholder den relative stien til dokument-roten. Også definerer jeg en ny konstant 'DIR_INCLUDES' som dette: define('DIR_INCLUDES', DIR_MAIN . '../'); Da kan de filene du inkluderer også benytte seg av mappe-konstantene Dette er spesielt kjekt vis du har PHP-filer på siden som ikke ligger i rot-mappa. PS: Glem sessions. Det har ingenting med dette å gjøre. Lenke til kommentar
Peter Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 Synes ikke din løsning er så bra, du skaper unødvendige avhengigheter av definisjoner. Synes dirname(__FILE__) er best, for den er helt uavhengig. Lenke til kommentar
PHPdude Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 Skjønner hva du mener ja, har faktisk hvert på utkikk etter en bedre metode, men dirname(__FILE__) blir jo noe helt annet da, siden den returnerer mappa til filen der hvor koden kjører, men vis du er ute etter å vite mappa til filen som har inkludert fila som koden ligger i så hjelper ikke dirname(__FILE__) noe. Ble vist en lang setning det der... Lenke til kommentar
Peter Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 Nei, men hele poenget er jo å kode relativt i forhold til hvor filen er, ikke hvor hovedfilen er. Hvorfor trenger du å vite mappen til hovedfilen? Poenget er jo å redusere avhengighetene. Lenke til kommentar
PHPdude Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 (endret) Mulig jeg uttrykte meg litt uklart... Når jeg definerer DIR_MAIN så peker ikke den til mappa til filen som definerer den men til "hovedmappa", altså den øverste mappa - der hvor index.php - Hovedsiden ligger. For når jeg vet hvor den mappa er så er det enkelt å finne alle de andre mappene. Eksempel: /index.php - DIR_MAIN = '' /undermappe/index.php - DIR_MAIN = '../' Og i den fila som "knytter prosjektet sammen" putter jeg noe sånt som dette: define('DIR_INCLUDES', DIR_MAIN . '../'); define('DIR_CLASSES', DIR_INCLUDES . 'classes/'); define('DIR_STYLESHEETS', DIR_MAIN . 'stylesheets/'); define('DIR_JAVASCRIPT', DIR_MAIN . 'jscript/'); Det jeg misliker med denne metoden er at jeg er nødt til å definere DIR_MAIN i toppen av alle PHP-filene som brukes. (ikke de som inkluderes da) Så vis noen har en smart måte å løse dette på så... Endret 22. oktober 2006 av PHPdude Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå