function getKeywordValue() { $keywords = ''; if (!self::isEmpty() && SJB_Settings::getSettingByName('get_keyword_from_file')) { $fileId = $this->getComplexParent() . ":" . $this->property_info['id'] . ":" . $this->complexEnum . "_" . $this->object_sid; $fileInfo = SJB_UploadFileManager::getUploadedFileInfo($fileId); if ($fileInfo) { $uploadManager = new SJB_UploadFileManager(); $uploadManager->setFileGroup("files"); $fileUrl = $uploadManager->getUploadedFileLink($fileId, $fileInfo, true); $fileExtension = substr(strrchr($fileInfo['saved_file_name'], "."), 1); if (file_exists($fileUrl)) { switch ($fileExtension) { case 'doc': $doc = new doc(); $doc->read($fileUrl); $keywords = preg_replace('/[\\n\\r]/', '', strip_tags($doc->parse())); break; case 'docx': $keywords = SJB_HelperFunctions::docx2text($fileUrl); $keywords = preg_replace('/[\\n\\r]/', '', strip_tags(html_entity_decode($keywords))); break; case 'xls': case 'xlsx': $fileInfo['tmp_name'] = $fileUrl; $fileObj = new SJB_ImportFileXLS($fileInfo); $fileObj->parse(); $data = $fileObj->getData(); $keywords = ''; foreach ($data as $val) { $val = array_unique($val); $val = array_diff($val, array('')); $keywords .= implode(' ', $val); } $keywords = preg_replace("/[[:punct:]^\\s]/ui", " ", $keywords); break; case 'pdf': $outFilename = str_replace("." . $fileExtension, '.txt', $fileUrl); exec("pdftotext {$fileUrl} {$outFilename}"); if (file_exists($outFilename)) { $keywords = file_get_contents($outFilename); $keywords = preg_replace('/[\\n\\r]/', '', strip_tags(html_entity_decode($keywords))); unlink($outFilename); } break; case 'txt': $keywords = file_get_contents($fileUrl); $keywords = preg_replace('/[\\n\\r]/', '', strip_tags(html_entity_decode($keywords))); break; } } } } return $keywords; }
function doc2text($filename) { $doc = new doc(); $doc->read($filename); return $doc->parse(); }