diff options
Diffstat (limited to 'system/libraries/Ftp.php')
-rw-r--r-- | system/libraries/Ftp.php | 77 |
1 files changed, 34 insertions, 43 deletions
diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index 73a68441a..991769a6a 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -18,7 +18,7 @@ * * @package CodeIgniter * @author EllisLab Dev Team - * @copyright Copyright (c) 2008 - 2013, EllisLab, Inc. (http://ellislab.com/) + * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (http://ellislab.com/) * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * @link http://codeigniter.com * @since Version 1.0 @@ -463,28 +463,26 @@ class CI_FTP { $filepath = preg_replace('/(.+?)\/*$/', '\\1/', $filepath); $list = $this->list_files($filepath); - - if ($list !== FALSE && count($list) > 0) + if ( ! empty($list)) { - foreach ($list as $item) + for ($i = 0, $c = count($list); $i < $c; $i++) { - // If we can't delete the item it's probaly a folder so - // we'll recursively call delete_dir() - if ( ! @ftp_delete($this->conn_id, $item)) + // If we can't delete the item it's probaly a directory, + // so we'll recursively call delete_dir() + if ( ! @ftp_delete($this->conn_id, $list[$i])) { - $this->delete_dir($item); + $this->delete_dir($list[$i]); } } } - $result = @ftp_rmdir($this->conn_id, $filepath); - - if ($result === FALSE) + if (@ftp_rmdir($this->conn_id, $filepath) === FALSE) { if ($this->debug === TRUE) { $this->_error('ftp_unable_to_delete'); } + return FALSE; } @@ -507,14 +505,13 @@ class CI_FTP { return FALSE; } - $result = @ftp_chmod($this->conn_id, $perm, $path); - - if ($result === FALSE) + if (@ftp_chmod($this->conn_id, $perm, $path) === FALSE) { if ($this->debug === TRUE) { $this->_error('ftp_unable_to_chmod'); } + return FALSE; } @@ -531,12 +528,9 @@ class CI_FTP { */ public function list_files($path = '.') { - if ( ! $this->_is_conn()) - { - return FALSE; - } - - return ftp_nlist($this->conn_id, $path); + return $this->_is_conn() + ? ftp_nlist($this->conn_id, $path) + : FALSE; } // ------------------------------------------------------------------------ @@ -585,6 +579,7 @@ class CI_FTP { $this->upload($locpath.$file, $rempath.$file, $mode); } } + return TRUE; } @@ -601,13 +596,12 @@ class CI_FTP { */ protected function _getext($filename) { - if (FALSE === strpos($filename, '.')) + if (($dot = strrpos($filename, '.')) === FALSE) { return 'txt'; } - $x = explode('.', $filename); - return end($x); + return substr($filename, $dot + 1); } // -------------------------------------------------------------------- @@ -621,20 +615,20 @@ class CI_FTP { protected function _settype($ext) { $text_types = array( - 'txt', - 'text', - 'php', - 'phps', - 'php4', - 'js', - 'css', - 'htm', - 'html', - 'phtml', - 'shtml', - 'log', - 'xml' - ); + 'txt', + 'text', + 'php', + 'phps', + 'php4', + 'js', + 'css', + 'htm', + 'html', + 'phtml', + 'shtml', + 'log', + 'xml' + ); return in_array($ext, $text_types) ? 'ascii' : 'binary'; } @@ -648,12 +642,9 @@ class CI_FTP { */ public function close() { - if ( ! $this->_is_conn()) - { - return FALSE; - } - - return @ftp_close($this->conn_id); + return $this->_is_conn() + ? @ftp_close($this->conn_id) + : FALSE; } // ------------------------------------------------------------------------ |