muffe Skrevet 19. april 2004 Del Skrevet 19. april 2004 Jeg har en variabel $path som er ca. sånn: /admin/admin.php Den skal til slutt bli sånn: ../Images Hvordan får jeg erstattet "/admin" delen av variabelen med "../" delen, og deretter erstatte "admin.php" delen med Images? Problemet er at vatiabelen ($path) er forskjellig alt etter som hvilket script den kjøres fra (den ligger i en side som blir brukt i include(). Derfor er den noen ganger /admin/admin.php, andre ganger /multimedia/video/show.php, og andre ganger /includes/shout.php. Dvs: Alt som er mellom to slash-er (inkludert slashene) skal erstattes med "../", og det som er etter siste slashen skal erdtattes med "Images" Hvordan kan dette gjøres enklest? På forhånd takk for hjelpen. Lenke til kommentar
Ueland Skrevet 19. april 2004 Del Skrevet 19. april 2004 $variabel ="admin/"; $variabel =str_replace("admin", "nyttnavn", $variabel); Rekner med at du ser hvordan str_replace blir brukt der og den bør kansje kunne gjøre susen her Lenke til kommentar
muffe Skrevet 19. april 2004 Forfatter Del Skrevet 19. april 2004 Eneste er at "admin" delen er variabel... Den kan være mye forskjellig... Det jeg skal gjøre er det motsatte av dette: http://no.php.net/manual/en/function.realpath.php Dvs. å lage en symbolsk link av en "virkelig" link. Lenke til kommentar
Ueland Skrevet 19. april 2004 Del Skrevet 19. april 2004 str_replace kan fint brukes med variabler og $variabel =str_replace("$enting", "$entingtil", $variabel); Lenke til kommentar
joffar Skrevet 19. april 2004 Del Skrevet 19. april 2004 $relative = $_SERVER['PHP_SELF']; Deretter fjerner du http://dinwebadd/ $relative = str_replace("http://dinwebadd/","",$relative); $path= str_replace($relative,"../images",$path); trur eg..... Kanskje en tungvint måte å gjøre det på.. men skulle virke dersom jeg ikke misforstod problemet... Lenke til kommentar
eXZire Skrevet 19. april 2004 Del Skrevet 19. april 2004 Skal resultatet alltid bli ../Images ? Gi oss flere eksempler av hvordan resultatet kan bli! Lenke til kommentar
muffe Skrevet 20. april 2004 Forfatter Del Skrevet 20. april 2004 Resultatet skal ikke alltid bli ../Images, men det er alltid det samme i det samme scriptet. Dvs: bruker jeg denne koden i Includes/top.php så skal det alltid bli ../Images (uansett hvilket script som includer top.php). Grubet på dette i mattetimen i dag, og har muligens en løsning, men jeg vet ikke hvordan jeg skal sette den i live: Antall slasher i variabelen minus én definerer hvor mange ganger du skal legge "../" etter hverandre i en ny variabel. Så er det bare å legge på "Images" til slutt i den nye variabelen. Vil ikke det funke (i teorien)? Problemet er å sette det ut i live... Lenke til kommentar
The Red Devil Skrevet 20. april 2004 Del Skrevet 20. april 2004 Eg forstår ikkje heilt kva du meiner, men vist du allerede legger til fullt server path til filene kvifor ikkje bare bruke det ? Da kan du jo åpne filene fra kva folder du vil, og dei vil starte/hente dei nødvendige filene. Lenke til kommentar
muffe Skrevet 20. april 2004 Forfatter Del Skrevet 20. april 2004 Det er fordi jeg skal lage link til bildene i en HTML fil, og den forstår jo ikke full path. Den må ha relativ path... Lenke til kommentar
muffe Skrevet 20. april 2004 Forfatter Del Skrevet 20. april 2004 Finnes det en funksjon for å telle antall "spesielle" tegn i en variabel? Dvs. telle antall slasher? Lenke til kommentar
Pangaea Skrevet 20. april 2004 Del Skrevet 20. april 2004 Mulig substr_count() funker... <?php echo substr_count("This is a test", "is"); // prints out 2 ?> Lenke til kommentar
JackT Skrevet 20. april 2004 Del Skrevet 20. april 2004 Dersom hele greia kun består er å forandre det som står mellom to /'er, kan du bruke eregi_replace. eregi_replace($mønster, $kilde). I $mønster skriver du hva som skal byttes ut. Dersom det varierer (slik som du nevnte med at det som sto mellom // varierte) bruker du såkalte regulære uttrykk. Her er et eksempel som ser etter bla/hvasomhelsther/ og bytter det ut med bla/blablabla. <? $opprinneligtekst = "http://www.skole.no/bla/herskalnoenyttinn/"; $nytekst = eregi_replace("bla/[^/]+/", "bla/blablabla/", $opprinneligtekst); print($nytekst); ?> Denne vil printe ut http://www.skole.no/bla/blablabla/ . Du skjønner tegningen.. Lenke til kommentar
muffe Skrevet 20. april 2004 Forfatter Del Skrevet 20. april 2004 Med litt omskriving funket det brillefint. Hjertlig tusen takk. 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å