从输入文件中过滤有用的数据

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