Autor Zpráva
Mastodont
Profil
Lameřina, ale nechápu :-(((

Bez oddělovačů:
$s = preg_split("\r?\n?", $_POST['...']);
print_r($s);

Array ([0] => first [1] => second [2] => third )

S oddělovači:
$s = preg_split("/\r?\n?/", $_POST['...']);
print_r($s);

Array ([0] => [1] => f [2] => i [3] => r [4] => s [5] => t [6] => [7] => s [8] => e [9] => c [10] => o [11] => n [12] => d [13] => [14] => t [15] => h [16] => i [17] => r [18] => d [19] => )

Heh?? Díky za vysvětlení. (Apache 2, windows)
bukaj
Profil
Mastodont
Nezdá se to, ale i v tom prvním jsou oddělovače - a to ?. Jelikož je \r bílý znak, tak se jako pattern modifier ignoruje. A regulárním výrazem je tedy jen "\n".

V druhém případě je regulárním výrazem to mezi /. Ale, když se na to podíváš, tak jsou celkem čtyři možnosti, podle kterých bude řetězec rozdělován:
1) "\r\n"
2) "\r"
3) "\n"
4) "" (prázdný řetězec)

A když se může rozdělovat prázdným řetězcem, je řetězec rozdělen po znacích.

Pokud jsem pochopil, oč jde, tak by měl být regulární výraz:
$s = preg_split("'(\r|\n|\r\n)'", $_POST['...']);
asdafaf
Profil *
nebolo by lepšie použiť explode("\n",$_POST[...]) ?
Mastodont
Profil
bukaj
Aha, díky za nakopnutí. Ten finální regulár by měl být

$s = preg_split("'(\r\n|\n|\r)'", $_POST['...']);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0