Jag har en sträng som kan se ut enligt följande:
första/andra/tredje/
Hur gör jag för att ta bort "tredje/", obs ordet "tredje" kan vara vad som helst men slashen delar alltid upp strängen i "sektioner". Alltså hur tar man bort den sista sektionen?
9 svar · 537 visningar · startad av learn
Jag har en sträng som kan se ut enligt följande:
första/andra/tredje/
Hur gör jag för att ta bort "tredje/", obs ordet "tredje" kan vara vad som helst men slashen delar alltid upp strängen i "sektioner". Alltså hur tar man bort den sista sektionen?
ok, kan man ha en variabel som "sökord"?
preg_replace( $str, "", $str2 ) funkar ju inte, hur ska man skriva?
Hur menar du att du skulle använt ett sökord ?
$str menar jag är "sökordet", men jag löste det på egen hand. En annan fråga, hur gör man ifall det är en slash som skall bytas ut.
Alltså om slashen är sökordet ;)
Har inget som helst grepp om vad du försöker göra.
Är det något på det här hållet du söker?
// Ditt sökord, kommer från något för mig okänt ställe
$sokord = 'tredje';
$search = $sokord == '*' ? '[^\/]+' : preg_quote($sokord, '/');
$string = preg_replace("/$search(\/)?$/", "", $string);
Då kan du använda '*' för att ta bort tredje sektionen, oberoende av innehåll.
Kan du utveckla lite vad du försöker göra, så kanske du kan få lite bättre hjälp.
Ah, sorry. jag tar det från början.
Jag försöker göra ett mappsystem. Det fungerar bra att "gå in i" mappar, alltså stega nedåt i hierarkin. Nu vill jag även kunna stega uppåt, dvs det ska finnas en länk som skickar användaren till den mapp som den aktuella mappen ligger i.
preg_replace ska då ta bort en bit av QUERY_STRING:en. Fast str_replace fungerar ju lika bra.
Och vad är ditt problem ?
Det verkar ju fungera för dig, om jag förstår rätt.
Problemet är väl att sökordet inte alltid är samma, antar jag.
$str = "första/andra/tredje";
$lastSlashPos = strrpos($str, '/');
substr($ip, 0, $lastSlashPos);
$lastSlashPos hittar / mellan andra och tredje.
substr plockar ut allt före denna slash.
precis, tack så mkt!