Beispiel #1
0
 /**
  * 文件哈希
  */
 public function sha1()
 {
     $file = $this->file('file');
     if (intval($file['size']) <= 0) {
         return;
     }
     $tmp = sharePHP::get_application_dir() . 'tmp/';
     $extension = substr($file['name'], strrpos($file['name'], '.') + 1);
     filesystem::mkdir($tmp);
     $filename = $tmp . '1.' . $extension;
     move_uploaded_file($file['tmp_name'], $filename);
     $result = sha1_file($filename);
     filesystem::rm($tmp);
     view::assign('result', $result);
 }
Beispiel #2
0
 /**
  * 备份
  * @param $filename 文件名
  * @param $db 数据库名(默认当前库)
  * @param $table 数据表名(默认为所有表)
  * @param $backup_data 是否备份数据(默认只备份数据结构)
  */
 public function backup($filename, $db = '', $table = '', $backup_data = false)
 {
     filesystem::rm($filename);
     if ($db) {
         $this->db_name = $db;
         $this->mysqli->select_db($this->db_name);
     }
     set_time_limit(0);
     $table = $this->mysqli->query('show tables') or die($this->show_error());
     $temp_dir = sys_get_temp_dir();
     while ($t = $table->fetch_assoc()) {
         $table_name = '`' . $this->db_name . '`.`' . $t['Tables_in_' . $this->db_name] . '`';
         $rs_ = $this->mysqli->query('show create table ' . $table_name) or die($this->show_error());
         while ($row = $rs_->fetch_assoc()) {
             $rs = $row;
         }
         $data = $rs['Create Table'] . ";\r\n\r\n";
         if ($backup_data) {
             $result = $this->mysqli->query('show columns from ' . $table_name) or die($this->show_error());
             $insert = 'insert into ' . $t['Tables_in_' . $this->db_name] . ' (';
             while ($row = $result->fetch_assoc()) {
                 $insert .= '`' . $row['Field'] . '`,';
             }
             $result->free_result();
             $insert = substr($insert, 0, -1);
             $insert .= ') values ';
             $result = $this->mysqli->query('select * from ' . $table_name) or die($this->show_error());
             $i = 0;
             while ($row = $result->fetch_assoc()) {
                 $insert .= '(';
                 foreach ($row as $r) {
                     $insert .= '\'' . trim(addslashes($r)) . '\',';
                 }
                 $insert = substr($insert, 0, -1);
                 $insert .= '),';
                 $i += 1;
             }
             $result->free_result();
             if ($i > 0) {
                 $data .= substr($insert, 0, -1) . ";\r\n\r\n";
             }
         }
         $data = preg_replace('/(?i)AUTO_INCREMENT=\\d+\\s+/', '', $data);
         filesystem::write($filename, $data, true);
     }
 }