regex - Creating a PHP array from space delimited text file -
i have text file listing of directories turn array. figured space delimiting work number of spaces varies between each item , spaces in directory name problem. parse text php array.
the text file has rigid structure looks this:
04/17/2013 09:49 pm <dir> directory 1 (1994) 03/11/2013 06:48 pm <dir> director 2 (1951) 04/15/2013 08:34 pm <dir> going number 3 (2000) 08/17/2012 09:50 pm <dir> 4 (1998) 10/17/2011 05:12 pm <dir> , lastly 5 (1986)
i need keep folder date (not time), complete name of directory (as 1 entry) , year in parenthesis. in advance!
sure, use preg_split:
<?php $str = "04/17/2013 09:49 pm <dir> directory 1 (1994) 03/11/2013 06:48 pm <dir> director 2 (1951) 04/15/2013 08:34 pm <dir> going number 3 (2000) 08/17/2012 09:50 pm <dir> 4 (1998) 10/17/2011 05:12 pm <dir> , lastly 5 (1986)"; function sp($x) { return preg_split("/\s\s+|\s*\((\d{4}).*\)/", $x,0,preg_split_delim_capture); } $array = preg_split("/\n/", $str); $processed = array_map('sp', $array); print_r($processed);
this create array of arrays. each line become array, containing array each item. instance, $processed[0][3]
contain this directory 1
keep in mind code assume spaces working division must 2 or more; 1 space considered part of same field. (you'll need hand hack according needs)
edit: added part year separated element of array. $processed[0][4]
has 1994
. (you don't need ()
, right?)
see working change here: http://codepad.org/in973ijv
Comments
Post a Comment