首页 > 代码库 > 读取两文件,不同的内容存入另一个文件中
读取两文件,不同的内容存入另一个文件中
<?php /** * 从两个.csv 文件中读出数据 * 比较这两个文件不同的数据,并存入.csv 文件中 */ class Readfiledata { private function __construct() { } /** * 读文件并获取数据 */ private static function getdata($file) { $handle = fopen ( $file, 'r' ); $orderform = array (); $i=0; while ( false != ($data = fgetcsv ( $handle,0,',' )) ) { $i++; if($i==1) continue; $orderform [] =trim($data [0],'`'); } fclose ( $handle ); return $orderform; } /** * 获取两个文件不同的数据 * * @param String $file1 * @param String $file2 */ private static function getdiffdata($file1, $file2) { $orderform = self::getdata ( $file1 ); $orderform2 = self::getdata ( $file2 ); $diff1 = array_diff ( $orderform, $orderform2 ); $diff2 = array_diff ( $orderform2, $orderform ); $todiff = array_merge ( $diff1, $diff2 ); $todif=array_unique($todiff); return $todif; } /** * 数据写入.csv 文件中 * * @param String $filename * @param String $file1 * @param String $file2 */ private static function writefile($filename, $file1, $file2) { $todiffdata = self::getdiffdata ( $file1, $file2 ); $partdata=array(); foreach ($todiffdata as $val){ $partdata=array($val); $newarray[]=$partdata; } if (! is_file ( "/tmp/$filename" )) { // unlink( "/tmp/$filename"); touch ( "/tmp/$filename"); } $handle = fopen ( "/tmp/$filename", 'w' ); foreach($newarray as $value){ fputcsv ( $handle, $value ); } fclose ( $handle ); } /** * 入口文件 */ public static function main($filename, $file1, $file2) { self::writefile ( $filename, $file1, $file2 ); } } $filename = 'total.csv'; $file1 = 'ac.csv'; $file2 = 'ad.csv'; Readfiledata::main ($filename, $file1, $file2 );
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。