Bra rubrik va... ;)
Vad jag vill veta är hur man gör för att ta bort ett okänt antal tecken mellan två kända ord i en sträng?
Ex. Ta bort allt mellan "början" och "slut" i strängen "börjanABCabc123=/?slut". Resultat: "börjanslut"
Tack så mkt!
16 svar · 368 visningar · startad av learn
Bra rubrik va... ;)
Vad jag vill veta är hur man gör för att ta bort ett okänt antal tecken mellan två kända ord i en sträng?
Ex. Ta bort allt mellan "början" och "slut" i strängen "börjanABCabc123=/?slut". Resultat: "börjanslut"
Tack så mkt!
Det skulle inte funka då strängen kan vara längre och det är bara det som är mellan de två givna orden som skall tas bort.
Jag vet att det finns funktioner som kan vara användbara i detta sammanhang (preg_replace mm) men jag vet inte hur man använder dem. Med andra ord vill jag gärna ha ett exempel... :)
<?php
$str = 'börjanABCabc123=/?slut';
echo preg_replace("'(början)(.*?)(slut)'is","$1$3",$str);
?>
Tack Peeer! Men nu måste du förklara vad du gjorde. Jag må vara nybörjare, men jag vill lära mig :) Vad står tex "$1$3" för?
Kort och gott, du delar upp strängen i tre delar som sedan blir till tre variabler. Varje del är innesluten i parenteser.
(början)(.*?)(slut). (början) blir till $1, (slut) blir till $3 och (.*?) (som innehåller allting mellan de två andra strängarna) blir till $2. Typ :P
Jasså! Tänk att man kan aldrig sluta bli imponerad... otroligt! Tack för förklaringen, det där kommer jag kunna leva länge på! :birp
learn skrev:
Det skulle inte funka då strängen kan vara längre och det är bara det som är mellan de två givna orden som skall tas bort.
Jag vet att det finns funktioner som kan vara användbara i detta sammanhang (preg_replace mm) men jag vet inte hur man använder dem. Med andra ord vill jag gärna ha ett exempel... :)
Det går ändå, det är bara till att räkna in bakifrån istället. Men Peeer's sätt är mycket smartare. :)
För att spara på wF:s krafter så spinner jag vidare på tråden.
Here we go... Om jag nu vill att den där sträng-biten ska följa med i URL:en över hela sidan jämt och ständigt, finns det ngn genväg eller måste jag i samtliga länkar skriva in $trimmadStrang..???
Jag skulle sätta den i en session.
ja det kanske är en bra idé. Hur är pålitligheten vad gäller sessioner generellt sett? Är det något speciellt som man bör tänka på? Hur många sessioner kan man ha på en sida samtidigt, är det kapacitetkrävande??
Måste säga att pålitligheten är hög och att det inte finns några större risker.
Det man bör tänka på är att inte döpa en sessionsvariabel till ett namn som används av en annan variabel. Ett tips är att döpa alla sessionsvariabler med sess_ i början. T ex sess_username så det inte förväxlas med en annan variabel som kan heta $username.
Har aldrig hört att det är ett begränsat antal sessioner eller att det skulle vara krävande på kapaciteten.
ok, schysst! då är det bara att köra med andra ord!
Det kan även vara smart att spara sessionerna i en array, dels för man vet direkt när det är en session och dels för att om man vill ta bort sessionen kör man bara unset på "huvudet".
$_SESSION['moo']['anv'] = "admin";
$_SESSION['moo']['id'] = 4;
// För att ta bort båda.
unset($_SESSION['moo']);
:)
Qimen skrev:
Det kan även vara smart att spara sessionerna i en array, dels för man vet direkt när det är en session och dels för att om man vill ta bort sessionen kör man bara unset på "huvudet".
$_SESSION['moo']['anv'] = "admin"; $_SESSION['moo']['id'] = 4; // För att ta bort båda. unset($_SESSION['moo']);:)
Vad är det för skillnad på det och:
$_SESSION['anv'] = "admin";
$_SESSION['id'] = 4;
// För att ta bort båda.
unset($_SESSION);
???
Det kanske fungerar nu, har för mig det inte fungerade förut. Men iaf, då avsätter man alla sessioner, på "mitt" sätt kan man avsätta grupper. :p :)
ok, men i mitt fall blir det nog endast till att avsätta alla samtidigt.