I have a fairly large and very messy data file from which I wish to filter useful data. Its structure looks something like this:
!bla bla
more bla
some useless data
something interesting
something interesting
something interesting
some useless data
something interesting
something interesting
some useless data
bla bla
My plan was to read the file with file_get_contents()
, then use str_replace()
to replace some data and use it as markers. Next, I tried to remove useless data from the beginning of the file to marker1
, then from marker2
to marker3
, then from marker4
to the end of the file, so that I would only get the useful data in the output (at this point I'm not yet sure if I will or will not need the markers in the data). I tried using strstr()
but could not make it work.
!bla bla
more bla
some useless data
==marker1==
something interesting
something interesting
something interesting
==marker2==
some useless data
==marker3==
something interesting
something interesting
==marker4==
some useless data
bla bla
I will be using explode()
to transfer the resulting useful data to my database.
EDIT: Well i got this solved like this.
preg_match('/(==marker1==)(.*?)(==marker2==)/s', $input, $marker1to2);
$marker1to2 = trim($marker1to2[2]);
$marker1to2 = preg_replace('/something /', '==marker1== something ', $marker1to2, 1);
echo $marker1to2;
You need regular expressions:
$data = "!bla bla
more bla
some useless data
==marker1==
something interesting
something interesting
something interesting
==marker2==
some useless data
==marker3==
something interesting
something interesting
==marker4==
some useless data
bla bla";
preg_match("/(==marker1==)(.*)(==marker2==)/s", $data, $marker1to2);
$marker1to2 = trim($marker1to2[2]);
preg_match("/(==marker3==)(.*)(==marker4==)/s", $data, $marker3to4);
$marker3to4 = trim($marker3to4[2]);
echo "Marker 1 to 2:
$marker1to2
";
echo "Marker 3 to 4:
$marker3to4
";
Output:
Marker 1 to 2: something interesting something interesting something interesting Marker 3 to 4: something interesting something interesting