コード例 #1
0
ファイル: FtpHelper.php プロジェクト: AnduZhang/nws
 public function performScan($fileNames)
 {
     $i = 0;
     $filesArray = [];
     foreach ($fileNames as $file) {
         //            $i++;
         //Test code starts here
         //            $fileUrl = $this->_downloadFile($file);
         //            Yii::$app->LSRParser->url = $fileUrl;
         //            Yii::$app->LSRParser->fileName = $file;
         //            $fileArray = Yii::$app->LSRParser->getContent();
         //Test code ends here
         if (preg_match($this->fileNameFormat, $file)) {
             $lastModifiedDate = $this->_getLastModifiedDateForFile($file);
             $isFileRecordExists = models\ProcessedLSR::find()->where('fileName = :filename', [':filename' => $file])->one();
             if ($isFileRecordExists && $isFileRecordExists->modifiedDate != $lastModifiedDate || !$isFileRecordExists || $this->forceScan) {
                 $fileUrl = $this->_downloadFile($file);
                 Yii::$app->LSRParser->url = $fileUrl;
                 Yii::$app->LSRParser->fileName = $file;
                 $fileArray = Yii::$app->LSRParser->getContent();
                 $validationString = $fileArray['state'] . ' ' . $fileArray['city'] . ' ' . $fileArray['date'] . ' ' . $fileArray['time'];
                 if ($isFileRecordExists) {
                     if ($isFileRecordExists->validationString != $validationString || $this->forceScan) {
                         //Update required
                         $isFileRecordExists->validationString = $validationString;
                         $isFileRecordExists->modifiedDate = $lastModifiedDate;
                         $isFileRecordExists->save();
                         $this->insertNewLSRRecords($fileArray);
                     }
                 } else {
                     //We need to add a new record
                     $ProcessedLSRModel = new models\ProcessedLSR();
                     $ProcessedLSRModel->fileName = $file;
                     $ProcessedLSRModel->validationString = $validationString;
                     $ProcessedLSRModel->modifiedDate = $lastModifiedDate;
                     $ProcessedLSRModel->save();
                     $this->insertNewLSRRecords($fileArray);
                 }
                 $filesArray[] = $fileArray;
             }
             $i++;
             @unlink(\Yii::getAlias('@app') . '/tmp/' . $file);
         }
     }
     return $filesArray;
 }