Explode bruges til nemt at opdele en streng ved hjælp af et separator.
Support | PHP 4 og nyere |
---|---|
Kort beskrivelse | Opdeling af en streng i et array ved hjælp af separator. |
Krav | Ingen |
Bemærk | Du kan ikke indsætte et array, kun en streng. |
Ofte har vi brug for at opdele en streng i henhold til en simpel regel. F.eks. en kommasepareret liste over tal.
Funktionen explode() er fantastisk til dette formål, idet den tager separatoren (som adskiller strengen) som første parameter og selve dataene som anden parameter:
$cisla = '3, 1, 4, 1, 5, 9';$parser = explode(',', $cisla);foreach ($parser as $cislo) {echo $cislo . '<br>';// Her kan vi behandle tallene yderligere}
Men hvad nu, hvis tallene er adskilt af kommaer, men der er mellemrum omkring dem?
Løsningen er at analysere efter den mindste fælles delstreng og derefter fjerne uønskede tegn omkring den (mellemrum og andet whitespace):
$cisla = '3, 1,4, 1 , 5 ,9';$parser = explode(',', $cisla);foreach ($parser as $cislo) {echo trim($cislo) . '<br>';// Her kan vi behandle tallene yderligere}
I dette tilfælde fjerner funktionen trim()
på en elegant måde whitespace omkring tegnene (mellemrum, tabulatorer, linjeskift, ...) og giver kun rene data.
TIP: For mange eksempler er explode() ikke egnet, og det er meget bedre at bruge regulære udtryk.
Ofte ønsker vi dog kun at analysere dataene op til en vis afstand, og den tredje (valgfrie) parameter limit kan bruges til dette formål.
Lad os f.eks. have strukturerede data med kolon-separerede data, hvor vi ønsker at hente indholdet efter det første kolon og ignorere de andre kolontegn. Eksempel:
$cas = 'format: "j.n.Y - H:i"';
Hvis vi kun analyserer strengen som:
$parser = explode(':', $cas);
Vi ville få disse 3 understrenge (i andre tilfælde kan der være mange flere):
'format''"j.n.Y - H''i"'
Derfor sætter vi en grænse for, hvor mange elementer der skal hentes (og eventuelt vil alle andre blive tilføjet til slutningen af det sidste element):
$parser = explode(':', $cas, 2);// komme tilbage:echo $parser[0]; // formatecho $parser[1]; // "j.n.Y - H:i"
Note: Uønskede anførselstegn kan fjernes fra strengen, f.eks. ved at bruge funktionen
trim()
:
echo trim($parser[1], '"'); // den anden parameter angiver det kort over de tegn, der skal fjernes
Ofte har vi brug for at få en streng, der er afgrænset af to andre strenge. Der findes ingen funktion til dette direkte i PHP, men vi kan skrive den selv:
function between(string $left, string $right, string $data): string{$l = explode($left, $data);$r = explode($right, $l[1]);return $r[0];}
Meget mere elegant opdeling og arbejde med strenge kan opnås ved hjælp af regulære udtryk, som jeg diskuterer på en separat side.
$ip = '10.0.0.138';$parser = explode('.', $ip);echo $parser[0]; // udskriver "10"echo $parser[1]; // udskriver "0";
Variablen $ip
indeholder en indtastningsstreng, der analyseres i overensstemmelse med afgrænseren .
, og resultatet er et array. Analyseringen fortsætter til slutningen af strengen, medmindre der er angivet en grænse.
# | Type | Beskrivelse |
---|---|---|
1 | string | Adskillelsesstreng. |
2 | string | Parsed string. |
3 | int | parsing limit. Dette er en valgfri parameter. Eksempel: |
$text = 'PHP er mit yndlingssprog!';$parser = explode('', $text, 1);echo $parser[0]; // udskriver det første ordecho $parser[1]; // udskriver resten af tekstenecho $parser[2]; // udsender ikke noget, fordi der er fastsat en grænse!
Returværdien er et array med en analyseret streng.
Indeksene er nummereret fra nul til X
, medmindre der er angivet en grænse.
PHP-version | Beskrivelse |
---|---|
5.1.0 | Der er tilføjet understøttelse af negativ grænse for overførsler. |
4.0.1 | Tilføjet valgfri parameter limit. |
Når der anvendes en negativ grænse, angives antallet af elementer fra slutningen af strengen.
Eksempel:
$str = 'en|to|tre|fire';// positiv grænseprint_r(explode('|', $str, 2));// negativ grænse (siden PHP 5.1)print_r(explode('|', $str, -1));
Følgende felter vil blive returneret:
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: ... | da