Rânduri separate

sarcină
Este necesar să împărțiți linia în părți. De exemplu, trebuie să accesați fiecare linie pe care utilizatorul o introduce în câmpul de formular.

Soluția
Dacă utilizați o constantă string ca separator al părților de linie, ar trebui să utilizați funcția explode ():







$ words = explode ('', 'Propoziția mea nu este foarte complicată');

Funcția split () sau funcția preg_split () se utilizează dacă descrierea delimitatorului necesită POSIX sau Perl:

$ words = split ('+', 'Această teză are niște spații albe în ea.');
$ words = preg_split ('/ \ d \. /', 'ziua mea: 1. ridica-te 2. se imbraca 3. mananca toastul');
$ lines = preg_split ('/ [\ n \ r] + /', $ _ REQUEST ['textarea']);

În cazul unui separator sensibil la minuscule, utilizați funcția spliti () sau pavilionul / i în funcția preg_split ():

$ words = spliti ('x', '31 inchi x 22 inchi X 9 țoli ');
$ words = preg_split ('/ x / i', '31 inchi x 22 inchi X 9 țoli ');

discuție
Cea mai simplă soluție din toate cele de mai sus este utilizarea explode (). Treceți separatorul liniei, linia însăși să fie divizată și, ca parametru opțional, limita numărului de elemente returnate:

$ dwarves = 'dopey, somnoros, fericit, grumpy, sneezy, bashful, doc';
$ dwarf_array = explode (',', $ dwarves);

Acum, $ dwarf_array este o serie de șapte elemente:







Dacă limita specificată este mai mică decât numărul de piese posibile, atunci ultima parte conține totul:

$ dwarf_array = explode (',', $ dwarves, 5);
print_r ($ dwarf_array);
mulțime
(
[0] => dopey
[1] => somnoros
[2] => fericit
[3] => grumpy
[4] => sneezy, bashful, doc
)

Funcția explode () interpretează literal separatorul de linii.


Dacă delimitatorul unui șir este definit ca o virgulă cu un spațiu, această funcție împarte șirul cu un spațiu urmat de o virgulă, mai degrabă decât cu virgulă sau spațiu. Funcția split () oferă o mai mare flexibilitate. În loc de literal șir, utilizează expresia regulată POSIX ca separator:

$ more_dwarves = 'cheeky, fatso, băiat miraculos, ciudat, grozav, groggy, winky';
$ more_dwarf_array = împărțit ('.', $ more_dwarves);

Această expresie regulată separă șirul de virgulă, urmată de un spațiu opțional, care vă permite să identificați corect toate gnomii noi. Astfel, spațiile din numele lor nu le împart în părți, dar fiecare nume este alocat indiferent dacă este separat printr-o virgulă "," sau cu o virgulă cu un spațiu ",":

print_r ($ more_dwarf_array);
mulțime
(
[0] => cheeky
[1] => grăsime
[2] => băieți minunat
[3] => chunky
[4] => curaj
[5] => groggy
[6] => winky
)

Există o funcție numită preg_split (), care, ca și funcția split (), utilizează expresii regulate compatibile cu Perl în loc de expresii regulate POSIX.


Funcția preg_split () oferă avantajele diferitelor extensii de expresie regulată în Perl, precum și trucuri dificile, cum ar fi includerea unui text delimitat în matricea returnată de șiruri de caractere:

Expresia regulată delimitator privește operatorii matematici (+, -, /, *), înconjurați de spațiile opționale inițiale sau de sfârșit. Steagul PREG_SPLIT_DELIM_CAPTURE instruiește funcția preg_split () să includă potriviri ca parte a delimitatorului citat, o expresie regulată, în matricea șirului returnat. În ghilimele, numai simbolurile operațiilor matematice, astfel încât matricea returnată nu conține spații.







Articole similare

Trimiteți-le prietenilor: