Autor | Zpráva | ||
---|---|---|---|
Mastodont Profil |
#1 · Zasláno: 9. 1. 2008, 19:44:02 · Upravil/a: Mastodont
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 |
#2 · Zasláno: 9. 1. 2008, 20:38:09
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 * |
#3 · Zasláno: 9. 1. 2008, 21:33:43
nebolo by lepšie použiť explode("\n",$_POST[...]) ?
|
||
Mastodont Profil |
#4 · Zasláno: 9. 1. 2008, 22:49:21
bukaj
Aha, díky za nakopnutí. Ten finální regulár by měl být $s = preg_split("'(\r\n|\n|\r)'", $_POST['...']); |
||
Časová prodleva: 16 let
|
0