View file application/system/library/class.scanreader.php

File size: 2.27Kb
<?PHP
	class scanReader {
		private $triggerList = [
			'дсп', 'қбпү', 'секретно', 'құпия'
		];
		
		/*
			Чтение документа WORD
		*/
		public function Word($filename) {
			$zip = zip_open($filename);
			
			if(!$zip || is_numeric($zip)) {
				return false;
			}
			
			while($zip_entry = zip_read($zip)) {
				if(zip_entry_open($zip, $zip_entry) == FALSE) {
					continue;
				}
				
				if(zip_entry_name($zip_entry) != "word/document.xml") {
					continue;
				}
				
				$content = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
				
				foreach($this->triggerList as $triggerItem) {
					if(stripos($content, $triggerItem) !== false) {
						zip_close($zip);
						return $triggerItem;
					}
				}
				
				zip_entry_close($zip_entry);
			}
			
			zip_close($zip);
			return false;
		}
		
		/*
			Чтение документа EXCEL
		*/
		public function Excel($filename) {
			$zip = zip_open($filename);
			
			if(!$zip || is_numeric($zip)) {
				return false;
			}
			
			while($zip_entry = zip_read($zip)) {
				if(zip_entry_open($zip, $zip_entry) == FALSE) {
					continue;
				}
				
				if(zip_entry_name($zip_entry) != "xl/sharedStrings.xml") {
					continue;
				}
				
				$content = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
				
				foreach($this->triggerList as $triggerItem) {
					if(stripos($content, $triggerItem) !== false) {
						zip_close($zip);
						return $triggerItem;
					}
				}
				
				zip_entry_close($zip_entry);
			}
			
			zip_close($zip);
			return false;
		}
		
		/*
			Чтение документа PDF
		*/
		public function Pdf($filename) {
			$content = shell_exec("pdftotext " . escapeshellarg($filename) . " -");
			
			foreach($this->triggerList as $triggerItem) {
				if(stripos($content, $triggerItem) !== false) {
					return $triggerItem;
				}
			}
			
			return false;
		}
		
		/*
			Чтение текстового документа
		*/
		public function Txt($filename) {
			$content = file_get_contents($filename);
			
			foreach($this->triggerList as $triggerItem) {
				if(stripos($content, $triggerItem) !== false) {
					return $triggerItem;
				}
			}
			
			return false;
		}
	}