Gå til innhold

Erstatte deler av variabel


Anbefalte innlegg

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.

Videoannonse
Annonse

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...

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.. :)

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...