Slettet bruger
11. juni 2004 - 10:07
Der er
13 kommentarer og 1 løsning
Hjælp til reg exp
Hej! Jeg har strengen "/mappe2/mappe1/undermappe 1.1/" Denne vil jeg gerne dele op i 2 variabler, den ene skal indeholde "/mappe2/mappe1/" den anden skal indeholde "undermappe 1.1/" Nogen der kan hjælpe?
Annonceindlæg fra Computerworld
Er det altid den sidste/dybeste mappe du vil have i variabel 2 og alt resten i variabel 1? //sostack
Nu er det godt nok ikke regex (det er ikke nødvendigt) $parts = explode('/' . $str); $first = $parts[0] . '/' .$parts[1] . '/'; $second = $parts[2] . '/';
eller $pos = strrpos(substr($str,0,-1),'/'); $first = substr($str,0,$pos); $second = substr($str,$pos+1);
Eller som function: <?php function del_sti($stien) { $tempvar = explode("/", $stien); for($i = 0; $i < count($tempvar) - 2; $i++) { $variabel1 .= "/" . $tempvar[$i]; } $variabel[1] .= "/"; $i++; $variabel[2] = $tempvar[$i] . "/"; return $variabel; } print_r(del_sti( "/mappe2/mappe1/undermappe 1.1/")); ?> //sostack
Slettet bruger
11. juni 2004 - 11:10
#5
sostack> Ja til dit spørgsmål :) dennismp> Ouput er lidt forkert, dit script skriver "/mappe2/mappe1" "/undermappe 1.1/" Det er ret vigtigt at de kommer ud "rigtigt" da de skal bruges til at sammensætte nogle stier bagefter.
Slettet bruger
11. juni 2004 - 11:18
#6
sostack> Din virker ikke, men $variabel1 skal vel også være $variabel[1] eller hva? Men den er der også problemer med ift. for mange/få /
prøv: $pos = strrpos(substr($str,0,-1),'/'); $first = substr($str,0,$pos+1); $second = substr($str,$pos);
Slettet bruger
11. juni 2004 - 11:21
#8
stadig et / for meget i $second
Sorry: <?php function del_sti($stien) { $tempvar = explode("/", $stien); for($i = 1; $i < count($tempvar) - 2; $i++) { $variabel[1] .= "/" . $tempvar[$i]; } $variabel[1] .= "/"; $variabel[2] = $tempvar[$i] . "/"; return $variabel; } $delt = del_sti( "/mappe3/mappe2/mappe1/undermappe 1.1/"); echo "variabel 1 : " . $delt[1] . "<br />"; echo "variabel 2 : " . $delt[2] . "<br />"; ?> //sostack
11. juni 2004 - 11:23
#10
ret til $second = substr($str,$pos+1);
11. juni 2004 - 11:50
#11
Eller regexp versionen: $path = "/mappe2/mappe1/undermappe 1.1/"; if( ereg ("^(.+\/)([^\/]+\/)$", $path, $regs) ){ echo "$regs[1]\n"; echo "$regs[2]\n"; }
Slettet bruger
11. juni 2004 - 12:36
#12
Jeg endte med at bruge dennismp's udgave, håber det er ok med i andre. Så vil dennismp lægge et svar :)
11. juni 2004 - 12:42
#13
Joda
Slettet bruger
11. juni 2004 - 12:52
#14
Tak for hjælpen!
Vi tilbyder markedets bedste kurser inden for webudvikling