type = $type; //$this->hash = bin2hex(mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)); } function setOriginalContent($line,$refresh=false) { if($refresh) { $this->originalContent = array(); } $this->originalContent[] = trim($line); $this->lineCount = count($this->originalContent); $this->composedContent = implode(" ",$this->originalContent); } function setComposedData($key,$value) { $this->composedData[$key] = $value; } function getType() { return $this->type; } function getComposedData() { return $this->composedData; } function getReportMatrix() { return $this->reportMatrix; } function process() { switch($this->type) { case 'license-header': if($this->debug) echo "
Top Label(lh) - Parsing -> ".$this->composedContent; $this->__processLicenseHeader(); break; case 'school-report-head': if($this->debug) echo "
Top Label(rh) - Parsing -> ".$this->composedContent; $this->__processSchoolReportHead(); break; case 'school-name-head': if($this->debug) echo "
Top Label(sh) - Parsing -> ".$this->composedContent; $this->__processSchoolNameHead(); break; case 'result-label': if($this->debug) echo "
Top Label(rl) - Parsing -> ".$this->composedContent; $this->__processResultLabel(); break; case 'line-break': if($this->debug) echo "
Content - Parsing -> Blank Line"; $this->__processLineBreak(); break; case 'report-data': $this->__processReportData(); break; } } function __processLicenseHeader() { $info_divider = "-"; $words = ParserUtility::getWords($this->composedContent); $licenseToPart = array(); $subLicencePart = array(); $subLicenceToPart = array(); $subLicenceDatePart = array(); $foundDivider = false; foreach($words as $word) { if( !$foundDivider && trim($word)===$info_divider) { $foundDivider = true; continue; } if(!$foundDivider) { $licenseToPart[] = trim($word); } else { $subLicencePart[] = trim($word); } } $foundDivider = false; foreach($subLicencePart as $word) { if(preg_match("/^(((0)[0-9])|((1)[0-2]))(\/)([0-2][0-9]|(3)[0-1])(\/)\d{4}$/i", $word) || preg_match("/^\d{1,2}(\/)\d{1,2}(\/)\d{4}$/i", $word) ) { $foundDivider = true; } if(!$foundDivider) { $subLicenceToPart[] = trim($word); } else { $subLicenceDatePart[] = trim($word); } } $this->composedData["LICENCE TO"] = implode(" ",$licenseToPart); $this->composedData["SUB-LICENSE"] = implode(" ",$subLicenceToPart); $this->composedData["LICENSE DATE"] = implode(" ",$subLicenceDatePart); } function __processSchoolReportHead() { $info_divider = "-"; $words = ParserUtility::getWords($this->composedContent); $eventNamePart = array(); $datePart = array(); $foundDivider = false; foreach($words as $word) { if( !$foundDivider && trim($word)===$info_divider) { $foundDivider = true; continue; } if(!$foundDivider) { $eventNamePart[] = trim($word); } else { $datePart[] = trim($word); } } $this->composedData["EVENT NAME"] = implode(" ",$eventNamePart); $this->composedData["EVENT DATE"] = implode(" ",$datePart); } function __processSchoolNameHead() { $words = ParserUtility::getWords($this->composedContent); $schoolNamePart = array(); foreach($words as $word) { $schoolNamePart[] = trim($word); } $this->composedData["SCHOOL NAME"] = implode(" ",$schoolNamePart); } function __processResultLabel() { $words = ParserUtility::getWords($this->composedContent); $resultLabelPart = array(); foreach($words as $word) { $resultLabelPart[] = trim($word); } $this->composedData["LABEL"] = implode(" ",$resultLabelPart); } function __processLineBreak() { $this->composedData["LINE-COUNT"] = count($this->originalContent); } function __processReportData() { $this->__processReportHeaderLabel(); $this->reportMatrix = new ReportMatrix(@$this->composedData["SPORT-GROUP"], @$this->composedData["SPORT"]); $this->reportMatrix->setSportsLevel(@$this->composedData["SPORT-ROUND"]); } function __processReportHeaderLabel() { if($this->debug) echo "
LINE - Parsing -> ".$this->composedContent; $words = ParserUtility::getWords($this->composedContent); $labelPart = array(); foreach($words as $word) { $labelPart[] = trim($word); } $this->composedData["HEADER"] = implode(" ",$labelPart); $hAnalysis = new Lexicon($this->composedData["HEADER"]); $hAnalysis->analyse(); $this->composedData["HEADER-ANALYSIS"] = $hAnalysis; $this->composedData["GENDER"] = $hAnalysis->getGender(); $this->composedData["SPORT-GROUP"] = $hAnalysis->getSportsType(); $this->composedData["SPORT"] = $hAnalysis->getSports(); $this->composedData["SPORT-ROUND"] = $hAnalysis->getSportsRound(); if($this->debug) { echo '
LINE - Parsed ->
';print_r($this->composedData); echo '
'; } } } ?>