Glob absolute vs. relative path

Tags:    php

Hej

Jeg har et webhotel (Surftown) hvor jeg bruger glob ifbm. læsning af nogle filer. Mine php filer ligger f.eks. i hosmig.dk/dimser og alle filer ligger på samme server/webhotel.

Hvis path er relativ virker alt som det skal, f.eks.

foreach (glob('input/*.txt') as $filename) { osv. hvor input er et subdir til dimser.

Men hvis path er absolut virker det ikke, f.eks.
foreach (glob('/hosmig.dk/input/*.txt') as $filename) { osv. hvor input "er parallelt til dimser".

Er dette en egenskab ved glob? Er det mig, som gør noget forkert? Er det Surftown?

Hvordan løser jeg dette problem, når dimser og input skal være "parallelle" directories?

Mik D.




7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
glob('/hosmig.dk/input/*.txt'
skråstregen foran "hosmig.dk" er skal ikke være der hvis du spørger mig, men det er et stykke tid siden jeg har rodet rigtig meget med det, det er måske endda nødvendigt med "http://" foran?
Hvad er der iøvrigt ivejen med relativ path? Det er da ihvert fald hvad jeg foretrækker.

Når du snakker paralelle directorys tror jeg godt jeg ved hvad du mener, nemlig at du må gå en mappe tilbage for at finde den du skal bruge, men det er slet ikke svært.

./ = samme mappe
../ = en mappe tilbage
../../ = 2 mapper tilbage etc.

fx. du har to paralelle mapper: mappe1 og mappe2.
Du befinder dig i mappe1 men vil have fat i noget i mappe2, så hedder stien ../mappe2



Indlæg senest redigeret d. 13.06.2006 11:44 af Bruger #4414
Prøv at bruge din UNIX PATH i stedet for /hosmig.dk/..osv, hvis det da ikke er din unix path. Du finder den ved at echo'e $_SERVER['DOCUMENT_ROOT']







Hej Felix

Jeg kan ikke få relative skift til at virke, dvs. ../ op dir osv.

Men et eller andet siger mig at glob er klar på både abs. og rel. dirs men det nok snarere er mit webhotel der "driller" mig.

Mik D.



tja, jeg kender go ikke glob, men det ville være meget mærkeligt hvis den ikke understøtter rel dir, det er nu engang det man bruger, absolut er bare for besværligt.



glob('../input/*.txt'); burde virke, dog virke glob kun hvis du kan komme fra hvor du er til hvor du globber gennem serverens filsystem.

du skal indlysende nok i ovenstående script stå i en fil i.

hosmig.dk/dir/

hvor di kan være hvad som helst.



Hej

Hmm, hmm, hmm. Jeg har nu fundet årsagen. Løsningen er koblet til den måde mit webhotel er sat op på. Dvs. glob gør som den skal/forventes at gøre. Så den er frikendt.

Problemet ligger i at når man logger ind på FTP så kommer man til noget man tror er root, men det er faktisk kun en slags account root og ikke server root. Der hvor man faktisk kommer ind er noget a la /server_no/hotel_type/much_more/user_name/hosmig.dk.

Så løsningen er hele webhotel-stien eller relative allokeringer.

Mik D.



t