Avatar billede acmed Nybegynder
04. oktober 2005 - 18:29 Der er 11 kommentarer

Del af streng

Hej eksperter

Hvordan udtager jeg en del denne streng:
/sti/home/includes/skabeloner/
så jeg kun får
/sti/hom/includes/ tilbage
Det skal også virke hvis tien er længere, f.eks.¨
/sti/home/includes/skabeloner/ekspempel/test
Avatar billede spindoktoren Nybegynder
04. oktober 2005 - 18:35 #1
str_replace("/includes", "", "/sti/home/includes/skabeloner/")

Skulle gerne blive: /sti/home/skabeloner/
Avatar billede spindoktoren Nybegynder
04. oktober 2005 - 18:36 #2
hmm... mente str_replace("skabeloner/", "", $string)
Avatar billede acmed Nybegynder
04. oktober 2005 - 18:40 #3
Det jeg mente var, at hvis jeg har en sti af varierende længde, altså også hvis stien er længere såsom /sti/home/includes/skabeloner/ekspempel/test
skal jeg kun have /sti/home/includes/
tilbage.
Jeg går ud fra at man skal bruge noget med preg_match eller lignende.
Avatar billede jaw Nybegynder
04. oktober 2005 - 18:41 #4
$str = "/sti/home/includes/skabeloner/ekspempel/test";
$array = explode("/", $str);
echo "/".$array[1]."/".$array[2]."/".$array[3]."/";
Avatar billede acmed Nybegynder
04. oktober 2005 - 18:53 #5
;-)
Jeg prøver lige at forklare igen. Jeg har en sti der kan være af varierende længde, f.eks.:
/sti/home/includes/skabeloner/ekspempel/test
/sti/home/includes/skabeloner/ekspempel/
/sti/home/includes/skabeloner/ekspempel/test/endnuentest

Jeg ønsker hver gang kun at få /sti/home/includes/ tilbage.
Dvs. at den skal smide alt fra includes/ og frem efter væk.
Jeg kender ikke på forhånd /sti/home/includes/, det udtages via
$serverpath = $PATH_TRANSLATED;
Det kan være variende stier alt afhængig af hvilken server scriptet ligger på.
Jeg ved bare at stien altid indeholder /includes/ - jeg ved så bare ikke hvad der kommer før og efter /includes/.

Håber det giver mening...
Avatar billede jaw Nybegynder
04. oktober 2005 - 18:56 #6
Og includes er så heller ikke altid 3. i rækken?
Avatar billede acmed Nybegynder
04. oktober 2005 - 19:00 #7
nope
Avatar billede acmed Nybegynder
04. oktober 2005 - 19:01 #8
Går ud fra man kan gøre det med preg_match - men jeg er ikke ret god til at matche - jeg synes det som regel ligner volapyk...
Avatar billede jaw Nybegynder
04. oktober 2005 - 19:36 #9
Du kan så prøve det her:
$str = "/sti/home/includes/skabeloner/ekspempel/test";
$array = explode("/", $str);
$ny_str = "";
for($i = 1; $i <= count($array); $i++) {
    if($array[$i] != "includes") {
        $ny_str .= "/".$array[$i];
    } else {
        $ny_str .= "/".$array[$i];
        break;
    }
}
echo $ny_str;
Avatar billede ksoren Nybegynder
04. oktober 2005 - 19:41 #10
eller måske

preg_replace("/(includes\/).*/", "$1", $str);
Avatar billede acmed Nybegynder
31. oktober 2005 - 20:24 #11
Fandt ud af det med:
$HTTP_SERVER_VARS['DOCUMENT_ROOT']
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester