/** * Main regex processing to extract numbers and ranges, to be able to expand them later */ private function _processRangeText($text) { $regEx = SELF::_constructRegEx(); # echo "<pre>$text\n" . print_r($regEx,true) . "</pre>"; foreach ($regEx as $key => $val) { ${$key} = $val; } $allCount = preg_match_all("({$combinedRegEx})i", $text, $allMatches); // echo "<p>$text</p>"; // echo "<pre>Count: $allCount\n" . print_r($allMatches,true) . "</pre>"; // die(); $cookedRanges = array(); foreach (array_unique($allMatches[0]) as $singleMatch) { $usedRegExId = false; foreach ($singleRegEx as $id => $testString) { $count = preg_match("({$testString})i", $singleMatch); if ($count) { $usedRegExId = $id; break; } } if ($usedRegExId) { $usedUnit = substr($usedRegExId, 0, strrpos($usedRegExId, "/")); $number = $unitRegEx[$usedUnit]; #echo "<pre>'$singleMatch' = $usedRegExId / $usedUnit ($number)</pre>"; $singleCount = preg_match_all("({$number})i", $singleMatch, $singleSplit); # echo "<pre>singleCount: $singleCount\n" . print_r($singleSplit,true) . "</pre>"; $numberRange = array(); $numberRange[] = $singleSplit[0][0]; $numberRange[] = $singleSplit[0][$singleCount == 2 ? 1 : 0]; $numberRange = SELF::_expandNumberRange($numberRange); # echo "<pre>" . print_r($numberRange,true) . "</pre>"; $numberRange[] = $usedUnit; $cookedRanges[] = $numberRange; } } // echo "<pre>" . print_r($cookedDates,true) . "</pre>"; die(); return $cookedRanges; }