SQL文件切割器 v0.00001

< html >
< head >
< title > SQL文件切割器 v0 . 00001 </ title >
</ head >
<? php
// ///
//昨天用myAdmin导入数据库的时候,因为数据库文件大于了2M,所以失败了
//手动?太麻烦了,上网找个分割文件的工具,太笨了,没找到,就自己
//这是一个主要用来分割备份的mysql数据库文件,现在还非常简陋,<img src="images/smilies/frown.gif" border="0" alt="">
//它通过文件的回车符来判别行数,可以判别此行是否为一句完整的sql语句,
//如果不是的话,就继续读取下一行....
//嗯...就是这样了..现在还不能指定保存的范围,有时间会写吧...
//哦对,我是thenorman.com/bbs混的坛主Norman

//
///
//每次读取多少行的代码,以"/n"来分辨

$per = 4000 ;
// 生成的文件由三部分组成,序号+前缀+文件名
$pre = ' _ ' ;
// 要切割的文件名,要和程序放在同一个目录,而且此目录要有可写权
$filename = ' lr_gwa.sql ' ;

$start = 0 ;
$block = 0 ;
// $end=;


if ( ! isset ( $start ))  $start = 0 ;
if ( ! isset ( $block ))  $block = 0 ;

if ( file_exists ( $filename )){ // 文件存在则
     $array = file ( $filename );
    
$rowtotal = sizeof ( $array );
    
echo   " 数据库文件共有 <font color=red><b> " . $rowtotal . " </b></font> 行.<br> " ;
    
echo   " 现在开始分割文件,please wait... <br><br> " ;
    
while ( $start < $rowtotal ){
        
$fp = fopen ( " $block$pre$filename " , " a+ " );
        
$i = $start ;
        
if ( $i + $per > $rowtotal ){
            
echo   " 写入 $i 到  " . $rowtotal . "  行到$block$pre$filename..... " ;
        }
else {
            
echo   " 写入 $i 到  " . ( $start + $per ) . "  行到$block$pre$filename..... " ;
        }
        
while ( $i < ( $start + $per )){
            @
fwrite ( $fp , $array [ $i ]);
            
$i ++ ;
            
if ( $i > $rowtotal break ;
        }
        
echo   " 完成<br><br> " ;
        
$start = $i ;
        
fclose ( $fp );
        
while (@ strlen ( $array [ $start - 1 ]) == (@ strrpos ( $array [ $start - 1 ] , " ; " ) + 1 )){
            
$addfp = fopen ( " $block$pre$filename " , " a+ " );
            @
fwrite ( $addfp , $array [ $start ]);
            
$start ++ ;
            
if ( $start > $rowtotal break ;
        }
        
$block ++ ;
    }
    
echo   " <br><br><br>OoooooooooK,全部完成~ " ;
}
else {
echo   " 指定的 $filename 不存在,请检查..... " ;
}

?>
</ html >
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值