I'm trying to get some data from text file, those data are repeated every random line
I'm trying to get this from text file, and there are alot of 2/6 blocks. i need to get them all, using aloop.
Example data I need to get it.
TRAFFIC MEASUREMENT REPORT PART     2/    6 VLR MEASUREMENT            VLRMEAS 
SAMPLE DATE:    FROM    2020-10-22 14:00:00:09
                TO      2020-10-22 15:00:00:13
REGISTERED SUBSCRIBERS:
LOCATION AREA CODE     CURRENT     AVERAGE        TMS1        TMS2        TMS3
       UNKNOWN LAC           2           2           0           0           0
               113       75868       75749           0           0           0
               115       40627       40732           0           0           0
              1102       70422       70489           0           0           0
              1105       87075       87067           0           0           0
              1117       56150       56180           0           0           0
              1118       67175       67444           0           0           0
              1120       74385       74381           0           0           0
              1121       65034       65060           0           0           0
              1122       21636       21407           0           0           0
              1217       22944       22856           0           0           0
              1218       49054       48993           0           0           0
              1318       24283       24066           0           0           0
              1418       16366       16350           0           0           0
              2118       17812       17674           0           0           0
              2120       79644       79489           0           0           0
TOTAL                   768477      767939           0           0           0
PART     2/    6
END OF REPORT
from big file (1/6 ,3/6 ect..).
I tried doing like this
    $lines = file($file,FILE_IGNORE_NEW_LINES);
    foreach ($lines as $line){
     if(strstr($line,'2/    6')){
         echo $line .'<br>';
     }elseif (preg_match('/(\w+)\s+(\d\end\:\report\d)\s+-->/', $line, $match)){
         print_r($match);
     }
    }
I get only one line from each block
TRAFFIC MEASUREMENT REPORT PART 2/ 6 VLR MEASUREMENT VLRMEAS PART 2/ 6 TRAFFIC MEASUREMENT REPORT PART 2/ 6 VLR MEASUREMENT VLRMEAS PART 2/ 6 TRAFFIC MEASUREMENT REPORT PART 2/ 6 VLR MEASUREMENT VLRMEAS PART 2/ 6 TRAFFIC MEASUREMENT REPORT PART 2/ 6 VLR MEASUREMENT VLRMEAS PART 2/ 6
I hope you get me well, I tried to find any answers but I couldn't find what I want.
 
                        
One option is to use preg_match_all and file_get_contents and a pattern like:
Or use the exact digits in the pattern
^Start of string.*\d/\h*\d.*Match a line with a digit/optional spaces and a digit, then the rest of the line(?:\R.*)*?Repeat as least lines as possible\RMatch a newlineEND OF REPORT\bMatchEND OF REPORTand a word boundary to prevent a partial word matchRegex demo | Php demo
Output will be an array with all the matched parts.
Or another variation:
Regex demo