Explode används för att enkelt dela upp en sträng med en separator.
Stöd | PHP 4 och senare |
---|---|
Kort beskrivning | Dela en sträng till en matris med separator. |
Krav | Inga |
Obs | Du kan inte infoga en array, bara en sträng. |
Ofta behöver vi dela upp en sträng enligt en enkel regel. Till exempel en kommaseparerad lista med siffror.
Funktionen explode() är utmärkt för detta, eftersom den tar separatorn (som separerar strängen) som första parameter och själva datan som andra parameter:
$cisla = '3, 1, 4, 1, 5, 9';$parser = explode(',', $cisla);foreach ($parser as $cislo) {echo $cislo . '<br>';// Här kan vi bearbeta siffrorna ytterligare}
Men vad händer om siffrorna är separerade med kommatecken, men det finns mellanslag runt dem?
Lösningen är att analysera den minsta gemensamma delsträngen och sedan ta bort oönskade tecken runt den (mellanslag och andra vitrymder):
$cisla = '3, 1,4, 1 , 5 ,9';$parser = explode(',', $cisla);foreach ($parser as $cislo) {echo trim($cislo) . '<br>';// Här kan vi bearbeta siffrorna ytterligare}
I det här fallet tar funktionen trim()
på ett elegant sätt bort vitrymden runt tecknen (mellanslag, tabulatorer, radbrytningar, ...) och ger endast rena data.
TIPS: För många exempel är explode() olämpligt och det är mycket bättre att använda reguljära uttryck.
Ofta vill vi dock bara analysera data upp till ett visst avstånd, och den tredje (valfria) parametern limit kan användas för detta ändamål.
Låt oss till exempel ha strukturerade data som är separerade med kolon och där vi vill hämta innehållet efter det första kolonet och ignorera de andra kolonerna. Exempel:
$cas = 'format: "j.n.Y - H:i".';
Om vi skulle analysera strängen endast som:
$parser = explode(':', $cas);
Vi får dessa tre understrängar (i andra fall kan det finnas många fler):
'format''"j.n.Y - H''i"'
Därför sätter vi en gräns för hur många element som ska hämtas (och eventuellt kommer alla andra element att läggas till i slutet av det sista elementet):
$parser = explode(':', $cas, 2);// komma tillbaka:echo $parser[0]; // formatecho $parser[1]; // "j.n.Y - H:i"
Note: Oönskade citationstecken kan tas bort från strängen, till exempel genom att använda funktionen
trim()
:
echo trim($parser[1], '"'); // den andra parametern anger den karta med tecken som ska tas bort
Ofta behöver vi hämta en sträng som avgränsas av två andra strängar. Det finns ingen funktion för detta direkt i PHP, men vi kan skriva den själva:
function between(string $left, string $right, string $data): string{$l = explode($left, $data);$r = explode($right, $l[1]);return $r[0];}
Mycket elegantare uppdelning och arbete med strängar kan uppnås med regelbundna uttryck, som jag diskuterar på en separat sida.
$ip = '10.0.0.138';$parser = explode('.', $ip);echo $parser[0]; // skriver ut "10"echo $parser[1]; // skriver ut "0";
Variabeln $ip
innehåller en inmatningssträng som analyseras enligt avgränsaren .
, och resultatet är en array. Parsningen fortsätter till slutet av strängen om inte en gräns har angetts.
# | Typ | Beskrivning |
---|---|---|
1 | string | Separationssträng. |
2 | string | Parsed string. |
3 | int | gräns för analysering. Detta är en valfri parameter. Exempel: |
$text = 'PHP är mitt favoritspråk!';$parser = explode('', $text, 1);echo $parser[0]; // skriver ut det första ordetecho $parser[1]; // skriver ut resten av textenecho $parser[2]; // ger inte ut något eftersom en gräns har fastställts!
Returvärdet är en array med en analyserad sträng.
Indexen är numrerade från noll till X
om inte en gräns anges.
PHP-version | Beskrivning |
---|---|
5.1.0 | Stöd för negativ gräns för passeringar har lagts till. |
4.0.1 | Parametern limit har lagts till som valfritt alternativ. |
När du använder en negativ gräns anges antalet element från strängens slut.
Exempel:
$str = 'ett|två|tre|fyra';// positiv gränsprint_r(explode('|', $str, 2));// negativ gräns (sedan PHP 5.1)print_r(explode('|', $str, -1));
Följande fält kommer att returneras:
Array([0] => one[1] => two|three|four)Array([0] => one[1] => two[2] => three)
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sv