/**
* 比较两个文件的不同
* User: VM
* Date: 2018/7/20
* Time: 12:38
*/
$src='a.sql';
$tar= 'b.sql';
$fs= file($src);
$ft= file($tar);
$slist= op($fs);
$tlist= op($ft);
$diff= [];
foreach($slistas$k=>$v) {
if(!isset($tlist[$k])){
// $diff[$k] = $v; //此处是寻找在tar中没有的
continue;
}
if( !op_diff($v,$tlist[$k]) ){
$diff[$k] = ['src'=>$v,'tar'=>$tlist[$k]];
}
}
functionop_diff($arr1,$arr2){
sort($arr1);
sort($arr2);
return$arr1==$arr2;
}
echo'
';
print_r(array_keys($diff));
print_r($diff);
/**
*读取文件内容
*@param$fs
*@returnarray
*/
functionop($fs){
$slist= [];
$table='';
foreach($fsas$f) {
$f= trim($f);
if(strpos($f,'CREATE TABLE') !==false){
$temp= explode('`',$f);
$table=$temp[1];
}
if(strpos($f,') ENGINE=InnoDB') !==false){
$table='';
}
if($table&& substr($f,,1) =='`'){
$attr= explode('`',$f);
$slist[$table][] =$attr[1];
}
}
return$slist;
}
先用navicat把 两个数据库导出数据库结构,再用以上程序计算
领取专属 10元无门槛券
私享最新 技术干货