. */ /** * _file classe pour gerer un fichier * @author Mika * @link http://mkf.mkdevs.com/ */ class _file{ private $_sAdresse; private $_sContent; /** * constructeur * @access public * @param string $sAdresse l'adresse du fichier */ public function __construct($sAdresse=null){ if($sAdresse!=null){ $this->setAdresse($sAdresse); } $this->_sContent=null; } /** * indique que ce n'est pas un repertoire (utilise apres un _file->getList * @access public * @return false */ public function isDir(){ return false; } /** * indique que c'est un fichier (utilise apres un _file->getList * @access public * @return true */ public function isFile(){ return true; } /** * defini l'adresse du fichier * @access public * @param string $sAdresse adresse du fichier */ public function setAdresse($sAdresse){ if($sAdresse!=null){ $this->_sAdresse=$sAdresse; } } /** * retourne l'adresse complete du fichier * @access public * @return string */ public function getAdresse(){ return $this->_sAdresse; } /** * initialise le contenu du fichier * @access public * @param string $sContent contenu du fichier */ public function setContent($sContent){ $this->_sContent=$sContent; } /** * ajoute du contenu au fichier * @access public * @param string $sContent contenu du fichier a ajouter */ public function addContent($sContent){ $this->_sContent.=$sContent; } /** * sauvegarde le fichier * @access public */ public function save($sOption='w'){ $this->write($this->_sContent,$sOption); } /** * retourne le contenu du fichier * @access public * @return string */ public function getContent(){ $this->verif(); $sFichier=file_get_contents($this->_sAdresse); return $sFichier; } /** * charge le contenu du fichier * @access public */ public function load(){ $this->_sContent=$this->getContent(); } /** * reinitialise le fichier * @access public */ public function clean(){ $this->_sContent=null; $this->_sAdresse=null; } /** * retourne le contenu du fichier sous forme d'un tableau * @access public * @return array */ public function getTab(){ $this->verif(); return file($this->_sAdresse); } /** * supprime le fichier * @access public */ public function delete(){ $this->verif(); unlink($this->_sAdresse); } /** * test l'existence du fichier * @access public * @return bool true ou false */ public function exist(){ return file_exists($this->_sAdresse); } /** * retourne le nom du fichier * @access public * @return string */ public function getName(){ $this->verif(); return basename($this->_sAdresse); } /** * retourne l'extension du fichier * @access public * @return string */ public function getExtension(){ $this->verif(); $tTmp=preg_split('/\./',$this->_sAdresse); return end($tTmp); } /** * ecrit $sContent avec l'option $sOption * @access public * @param string $sContent * @param string $sOption */ public function write($sContent,$sOption='w'){ if($sContent==''){ file_put_contents($this->_sAdresse,$sContent); }else if(!file_put_contents($this->_sAdresse,$sContent)){ throw new Exception('Can t write "'.$sContent.'"'.$this->_sAdresse); } } /** * retourne le timestamp de modification du fichier * @access public * @return int */ public function filemtime(){ return filemtime($this->_sAdresse); } /** * change les droits d'un fichier * @access public * @param string $iVal du chmod a faire */ public function chmod($iVal=0777){ chmod($this->_sAdresse,$iVal); } private function verif(){ if(!$this->exist()){ throw new Exception($this->_sAdresse.' n\'existe pas'); } return true; } }