PHP REGEX - text to array by preg_split at line break
12,301
Solution 1
Here's an example that works, even if you have a colon character embedded inside the string (but not at start of the line):
$input = ":some normal text
:some long text here, and so on... sometimes
i'm breaking: down and...
:some normal text
:some normal text";
$array = preg_split('/$\R?^:/m', $input);
print_r($array);
result:
Array
(
[0] => some normal text
[1] => some long text here, and so on... sometimes
i'm breaking: down and...
[2] => some normal text
[3] => some normal text
)
Solution 2
"line break" is ill-defined. Windows uses CR+LF (\r\n), Linux LF (\n), OSX CR (\r) only.
There is a little-known special character \R in preg_* regular exceptions that matches all three:
preg_match('/^\R$/', "\r\n"); // 1
Solution 3
file()
reads a file into an array.
Comments
-
Luca Filosofi almost 2 years
EDITED:
need help on split Array
array example:
array ( [0] => :some normal text :some long text here, and so on... sometimes i'm breaking down and... :some normal text :some normal text )
ok, now by using
preg_split( '#\n(?!s)#' , $text );
i get
[0] => Array ( [0] => some normal text [1] => some long text here, and so on... sometimes [2] => some normal text [3] => some normal text )
I want get this:
[0] => Array ( [0] => some normal text [1] => some long text here, and so on... sometimes i'm breaking down and... [2] => some normal text [3] => some normal text )
what Regex can get the entire line and also split at line break!?