[ 2012/10/31 02:54 | by 孤城浪子 ]
来源 http://blog.csdn.net/sha_cq/article/details/8033767
- <?php
- /*
- 这是一个在服务器端备份和恢复数据库的类,张伟 2012-09-21 qq:3340971
- */
- class DBBack{
- private $back_dir='./';//备份的路径
- private $back_file=array();//当前已存在的备份
- private $host='localhost';
- private $user='root';
- private $pwd='123456';
- private $conn;
- private $dbname='navgoods';
- private $charset='utf8';
- private $sql='';
- private $limit=";\r\n[*_*]";
- public $tips='';//执行得到的提示信息
- private $cg_line=0;//操作成功的记录总条数
- private $cg_tb=0;//操作成功的表的个数
- private $sb_line=0;//操作失败的记录总条数
- private $sb_tb=0;//操作失败的表的个数
- private static $instance;
- public static function getInstance(){
- if(!self::$instance instanceof self){
- self::$instance=new self();
- }
- return self::$instance;
- }
- private function __construct(){
- date_default_timezone_set('Asia/Shanghai');
- $this->conn=@mysql_connect($this->host,$this->user,$this->pwd);
- if(!$this->conn){
- $this->tips='数据库连接失败!'.mysql_error();
- return false;
- }
- mysql_query("SET NAMES '".$this->charset."'");
- mysql_query("SET CHARACTER_SET_CLIENT='".$this->charset."'");
- mysql_query("SET CHARACTER_SET_RESULTS='".$this->charset."'");
- if(!mysql_select_db($this->dbname,$this->conn)){
- $this->tips='不存在数据库:'.$this->dbname.',请核对后再试!'.mysql_error();
- return false;
- }
- }
- //以库为单位备份
- public function dbBack(){
- mysql_query("set names '{$this->charset}'");
- $this->sql='';
- $this->sql= "CREATE DATABASE IF NOT EXISTS `$this->dbname` DEFAULT CHARACTER SET {$this->charset}{$this->limit}";
- $this->sql.= "USE `$this->dbname`{$this->limit}";
- $tb_result=mysql_query("show tables");
- while($t=mysql_fetch_array($tb_result)){
- $tb_name[]=$t[0];
- }
- $this->sql.=$this->tbBack($tb_name);
- return $this->saveFile();
- }
- //以表为单位备份,传入一个数组
- public function tbBack($arr_tb_name){
- $mysql=array();
- $i=0;
- $this->cg_line=0;
- foreach($arr_tb_name as $tb_name){
- $mysql[$i]= "set charset {$this->charset}{$this->limit}";
- $mysql[$i].= "DROP TABLE IF EXISTS `$tb_name`{$this->limit}";
- $tb_create=mysql_query("show create table `$tb_name`");
- $row=mysql_fetch_assoc($tb_create);
- $mysql[$i].=$row['Create Table'].$this->limit;
- $mysql[$i].= "LOCK TABLES `$tb_name` WRITE{$this->limit}";
- $result=mysql_query("select * from `$tb_name`");
- while($data=mysql_fetch_assoc($result)){
- foreach ($data as $k=>$v){
- if($v==''){
- unset($data[$k]);
- }
- }
- $keys=array_keys($data);
- $keys=array_map(addslashes,$keys);
- $keys=join('`,`',$keys);
- $keys="`".$keys."`";
- $vals=array_values($data);
- $vals=array_map(addslashes,$vals);
- $vals=join("','",$vals);
- $vals="'".$vals."'";
- $mysql[$i].="insert into `$tb_name`($keys) values($vals){$this->limit}";
- $this->cg_line++;
- }
- $mysql[$i].= "UNLOCK TABLES{$this->limit}";
- $i++;
- }
- $this->cg_tb=$i;
- $mysql=implode('',$mysql);
- return $mysql;
- }
- //恢复数据库
- function restore($fname){
- if (file_exists($fname)) {
- $cg=0;
- $sb=0;
- $this->cg_line=0;
- $this->sb_line=0;
- $this->cg_tb=0;
- $this->sb_tb=0;
- $handle = @fopen($fname, "r");
- $buffer='';
- $this->tips='';
- if ($handle){
- while (!feof($handle)){
- $buffer .= fgets($handle, 4096);
- }
- fclose($handle);
- }else{
- $this->tips.="备份文件读取失败!";
- }
- $a=explode($this->limit, $buffer);
- unset($buffer);
- $total=count($a)-1;
- for ($i=0;$i<$total;$i++){
- if(mysql_query($a[$i])){
- if(strpos($a[$i],'insert into')!==false||strpos($a[$i],'INSERT INTO')!==false)$this->cg_line++;
- if(strpos($a[$i],'create table')!==false||strpos($a[$i],'CREATE TABLE')!==false)$this->cg_tb++;
- $cg+=1;
- }else{
- if(strpos($a[$i],'insert into')!==false||strpos($a[$i],'INSERT INTO')!==false)$this->sb_line++;
- if(strpos($a[$i],'create table')!==false||strpos($a[$i],'CREATE TABLE')!==false)$this->sb_tb++;
- $sb+=1;
- $sb_command[$sb]=$a[$i].'---'.mysql_error();
- }
- }
- $this->tips.=" 操作完毕,<br/>共处理 $total 条命令,<br/>成功 $cg 条,<br/>失 败 $sb 条.<br/>成功恢复{$this->cg_tb}张表,{$this->cg_line}条记录。<br />恢复失败{$this->sb_tb}张表,{$this->sb_line}条记录.";
- if ($sb>0){
- $this->tips.="<hr><br><br>失败命令如下:<br>";
- for ($ii=1;$ii<=$sb;$ii++){
- $this->tips.="<p><b>第 ".$ii." 条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>";
- }
- }
- }else{
- $this->tips.="MySQL备份文件不存在,请检查文件路径是否正确!";
- }
- }
- private function saveFile(){
- $this->tips='';
- $this->back_dir=rtrim($this->back_dir,'/').'/';
- $filename=$this->back_dir.$this->dbname.date('YmdHis').".sql";
- $fsize=file_put_contents($filename,$this->sql,FILE_USE_INCLUDE_PATH);
- $this->sql='';
- if($result===false){
- $this->tips='文件备份失败!';
- return false;
- }else{
- $this->tips='文件保存成功^_^<br/>文件名:'.$filename.'<br/>大小:'.round($fsize/1024/1024,2).'兆.<br/>';
- $this->tips.="共备份了{$this->cg_tb}张表,{$this->cg_line}条记录。";
- return true;
- }
- }
- //检测已存在的备份
- public function check(){
- $this->back_dir=rtrim($this->back_dir,'/').'/';
- if(!is_dir($this->back_dir)){
- if(!mkdir($this->back_dir)){
- $this->tips='存放备份文件的文件夹不存在,并且创建失败,请确保您在服务器有创建该目录的权限!';
- return false;
- }
- }
- $arrFile=scandir($this->back_dir);
- foreach($arrFile as $key=>$value){
- if(is_dir($this->back_dir.$value)){unset($arrFile[$key]);continue;}
- if(substr($value,-4,4)!='.sql')unset($arrFile[$key]);
- }
- if(emptyempty($arrFile)){
- $this->back_file=array();
- $this->tips='数据库目前还没有备份!';
- return false;
- }else{
- $i=0;
- foreach($arrFile as $k=>$v){
- $url=$this->back_dir.$v;
- $this->back_file[$i]['name']=iconv('GBK','UTF-8',$v);//转码文件名
- $this->back_file[$i]['url']=$url;
- $this->back_file[$i]['time']=filectime($url);
- $this->back_file[$i]['size']=round(filesize($url)/1024/1024,2).'Mb';
- $i++;
- }
- return $this->back_file;
- }
- }
- }
- ?>
[ 2011/11/24 23:16 | by 孤城浪子 ]
使用firefox默认搜索框的google搜索引擎,firefox会在搜索命令后添加一些参数,导致搜索时有时会被GFW重置 (非敏感词也会重置)
添加GOOGLE其它域名搜索的方法:
访问 http://mycroft.mozdev.org/google-search-plugins.html
点其中列表里的链接会弹出添加搜索引擎对话框
比如点 Google HK - 所有網頁 (google.com.hk)
就会添加 google.com.hk(香港)
添加GOOGLE其它域名搜索的方法:
访问 http://mycroft.mozdev.org/google-search-plugins.html
点其中列表里的链接会弹出添加搜索引擎对话框
比如点 Google HK - 所有網頁 (google.com.hk)
就会添加 google.com.hk(香港)
[ 2011/11/15 05:28 | by 孤城浪子 ]
准备:
1.下载ROOT文件。
2.下载刷机工具FlashTool汉化版:
http://115.com/file/e6m47w0w
操作:
1. 下载 FlashTool,并解压到任意目录。以前下载过的就不用再下载了。主要是用到它的 adb 工具。
2. 下载Root新方法 .rar 并解压到FlashTool 中的“x10flasher_lib”目录里。
3.为增加成功机率,准备一张sd卡,记得要格式化,我格式化成Fat32的。
4. 双击“x10flasher_lib”目录中的“Root.bat”,根据提示操作即可。
5.中间有个等待10秒,再按任意键,过几秒手机开始重启,root成功......
1.下载ROOT文件。
下载文件 (已下载 1128 次)
2.下载刷机工具FlashTool汉化版:
http://115.com/file/e6m47w0w
操作:
1. 下载 FlashTool,并解压到任意目录。以前下载过的就不用再下载了。主要是用到它的 adb 工具。
2. 下载Root新方法 .rar 并解压到FlashTool 中的“x10flasher_lib”目录里。
3.为增加成功机率,准备一张sd卡,记得要格式化,我格式化成Fat32的。
4. 双击“x10flasher_lib”目录中的“Root.bat”,根据提示操作即可。
5.中间有个等待10秒,再按任意键,过几秒手机开始重启,root成功......
[ 2011/06/07 15:26 | by 孤城浪子 ]
UltraISO软碟通是一款功能强大而又方便实用的光盘映像文件制作/编辑/转换工具,它可以直接编辑ISO文件和从ISO中提取文件和目录,也可以从CD-ROM制作光盘映像或者将硬盘上的文件制作成ISO文件。同时,你也可以处理ISO文件的启动信息,从而制作可引导光盘。使用UltraISO,你可以随心所欲地制作/编辑/转换光盘映像文件,配合光盘刻录软件烧录出自己所需要的光碟。
UltraISO 独有的智能化ISO文件格式分析器,可以处理目前几乎所有的光盘映像文件,包括 ISO、BIN、NRG、CIF等,甚至可以支持新出现的光盘映像文件。使用UltraISO,你可以打开这些映像,直接提取其中的文件,进行编辑并将这 些格式的映像文件转换为标准的ISO格式。
更新日志 UltraISO 9.36 PE (2010-2-8):
用户名:李明
注册码:509F-BA54-BBA6-73C5
UltraISO 独有的智能化ISO文件格式分析器,可以处理目前几乎所有的光盘映像文件,包括 ISO、BIN、NRG、CIF等,甚至可以支持新出现的光盘映像文件。使用UltraISO,你可以打开这些映像,直接提取其中的文件,进行编辑并将这 些格式的映像文件转换为标准的ISO格式。
更新日志 UltraISO 9.36 PE (2010-2-8):
+) 改进了写入硬盘映像特性, 可以将Ubuntu UNR 9.10 映像写入启动U盘,也可以制作包含多个分区的可启动移动硬盘(便捷写入)
+) 可以处理 .C2D 映像中的 CD-TEXT 信息
+) 刻录时显示时间信息
+) 支持 25G/50G 介质类型
*) 可以检测并使用Daemon-Tools 4.35 和 Alcohol 120% 2.00 的虚拟光驱
*) 修正了使用 isocmd.exe 加载多个映像到虚拟光驱时存在的错误
*) 一些小的改进和错误修正
用户名:李明
注册码:509F-BA54-BBA6-73C5
下载文件 (已下载 1638 次)
[ 2010/12/02 16:46 | by 孤城浪子 ]
在Windows中,有一个很方便的功能,那就是右键的发送到选项,比如,发送到桌面快捷方式、发送到可移动设备等,可以说是相当实用的一个功能。其实除此之外,我们还可以发送到任意我们常用的文件夹或位置。
以前版本的WINDOWS的SendTo位置在
Widnows 7 的SendTo位置在
以前版本的WINDOWS的SendTo位置在
- C:\Documents and Settings\用户名\Sendto
Widnows 7 的SendTo位置在
- C:\Users\用户名\AppData\Roaming\Microsoft\Windows\SendTo
- 快速进入方法:开始菜单 - 搜索 shell:sendto 并打开