/** * Save file attributes from File * @param File $file * @param boolean $update */ private function setAutoFileAttributes($file, $update = false) { // We download the file first in /tmp/ folder if (!file_exists(ReadFile::TEMP_FOLDER . $file->name)) { ReadFile::downloadRemoteFile($file->location, $file->name); } // from update page, we delete all auto attributes and make them again if ($update) { $criteria = new CDbCriteria(); $criteria->addCondition('file_id = ' . $file->id); $fileAttributes = FileAttributes::model()->findAll($criteria); foreach ($fileAttributes as $fileAttribute) { if (strpos(Attribute::AUTO_ATTRIBUTE, $fileAttribute->attribute->structured_comment_name)) { $fileAttribute->delete(); } } } $fileAttribute = new FileAttributes(); $fileAttribute->file_id = $file->id; /*$name = strpos($file->name, '.') ? explode('.', $file->name) : $file->name; $name = is_array($name) ? $name[0] : $name;*/ $extension = str_replace('.', '', $file->extension); switch ($extension) { case 'fasta': case 'fa': case 'fastq': case 'seq': case 'bam': case 'sam': case 'cram': // Launche the python script to get the result list($aminoAcids, $nucleotides) = ReadFile::readPythonFile($file->name); // Number of Amino Acids $numberAminoAcids = clone $fileAttribute; $attribute = Attribute::model()->findByAttributes(array('structured_comment_name' => 'num_amino_acids')); $numberAminoAcids->attribute_id = $attribute->id; $numberAminoAcids->value = $aminoAcids; $numberAminoAcids->save(); // Number of nucleotides $numberNucleotides = clone $fileAttribute; $attribute = Attribute::model()->findByAttributes(array('structured_comment_name' => 'num_nucleotides')); $numberNucleotides->value = $nucleotides; $numberNucleotides->attribute_id = $attribute->id; $numberNucleotides->save(); break; case 'txt': case 'text': case 'doc': case 'docx': case 'rtf': case 'odt': case 'wpd': case 'lwd': case 'readme': case 'README': case 'pdf': case '': $result = null; if (in_array($extension, array('txt', 'text', 'readme', 'README', '', 'wpd', 'lwd'))) { $result = ReadFile::readTextFile($file->name); } if (in_array($extension, array('docx', 'odt'))) { $result = ReadFile::readDocxOdtFile($file->name); } if ($extension == 'doc') { $result = ReadFile::readDocFile($file->name); } if ($extension == 'rtf') { $result = ReadFile::readRtfFile($file->name); } if ($extension == 'pdf') { $result = ReadFile::readPdfFile($file->name); } $numberOfLines = $numberOfWords = 0; $numberOfWords = str_word_count($result); $numberOfLines = substr_count($result, "\n"); // Number of words $numberWords = clone $fileAttribute; $attribute = Attribute::model()->findByAttributes(array('structured_comment_name' => 'num_words')); $numberWords->attribute_id = $attribute->id; $numberWords->value = $numberOfWords; $numberWords->save(); // Number of lines $numberLines = clone $fileAttribute; $attribute = Attribute::model()->findByAttributes(array('structured_comment_name' => 'num_lines')); $numberLines->attribute_id = $attribute->id; $numberLines->value = $numberOfLines; $numberLines->save(); break; case 'csv': case 'tsv': case 'xls': case 'xlsx': case 'tab': case 'sdc': case 'ods': case 'gff': case 'gff3': case 'snp': case 'vcf': case 'ipr': $rows = $columns = 0; if ($extension == 'xls') { list($rows, $columns) = ReadFile::readXlsFile($file->name); } if ($extension == 'ods') { list($rows, $columns) = ReadFile::readOdsFile($file->name); } if ($extension == 'xlsx') { list($rows, $columns) = ReadFile::readXlsxFile($file->name); } if (in_array($extension, array('csv', 'tsv', 'vcf', 'gff'))) { list($rows, $columns) = ReadFile::readTableFile($file->name, $extension); } // Number of rows $numberRows = clone $fileAttribute; $attribute = Attribute::model()->findByAttributes(array('structured_comment_name' => 'num_rows')); $numberRows->attribute_id = $attribute->id; $numberRows->value = $rows; $numberRows->save(); // Number of columns $numberColumns = clone $fileAttribute; $attribute = Attribute::model()->findByAttributes(array('structured_comment_name' => 'num_columns')); $numberColumns->value = $columns; $numberColumns->attribute_id = $attribute->id; $numberColumns->save(); break; } }
if ($argument[0] == 'show_file') { show_file(); } else { if ($argument[0] == "cls") { system("cls"); } else { if ($argument[0] == "optab") { display_optab(); } else { if ($argument[0] == 'check') { ## determine the opcode table if (empty($argument[1])) { echo "Empty target_name\n"; continue; } $ReadFile = new ReadFile(); ## use my ReadFile class [ReadFile.php] to store the operand table into array and return it ## seem the defaultDirectory never finish it.. ## let disable" absolution path " use in readFile if (($OPTB = $ReadFile->readFile(FIGURE_PATH . $argument[1])) == false) { echo "Error in source file..\n"; } else { $path_parts = pathinfo($argument[1]); $OUTPUT_LOG_PREFIX = date("Y-m-d-His") . "_" . $path_parts['filename'] . "." . $path_parts['extension'] . "_"; echo "\n"; ## ## convert operand table into operand table(with object code) ## ## fix into respond column... $OPTB_WOC = optb_to_optb_woc($OPTB); if ($argument[2] == '') { $argument[2] = 'SIC/XE'; }
define('DS', DIRECTORY_SEPARATOR); //right directory separator in current file system define('HOME', dirname(__FILE__)); //location of home directory = this is where write.php file is // // include 2 files with required classes // require HOME . DS . "Classes" . DS . "GetFile.class.php"; require HOME . DS . "Classes" . DS . "ReadFile.class.php"; if (isset($argv[1]) && $argc == 2) { // // object of GetFile class // $file = new GetFile($argv[1]); //check filetype of output file $file->checkFileType(); // // object of ReadFile class // $read = new ReadFile($argv[1]); //read file and write content on the screen $read->read(); } else { if ($argc > 2) { //if user enter 2 or more arguments die("Too much arguments!"); } else { //if user not enter any arguments die("You don't enter file!"); } }
/** * Before save file */ public function setSizeValue() { // Save the size from file if not set by user if ($this->attributes['location'] && $this->attributes['name']) { $size = trim($this->attributes['size']); if (empty($size)) { if (!file_exists(ReadFile::TEMP_FOLDER . $this->attributes['name'])) { ReadFile::downloadRemoteFile($this->attributes['location'], $this->attributes['name']); } if (empty($this->size)) { $this->size = filesize(ReadFile::TEMP_FOLDER . $this->name); } } } }