读取两文件,不同的内容存入还有一个文件里

<?php
/**
  * 从两个.csv 文件里读出数据
  * 比較这两个文件不同的数据。并存入.csv 文件里
  */
header("Content-type:text/html;charset=utf-8");
class Readfiledata {
	/**
	 * 链接数据库
	 */
	private static  function connect(){
		require_once 'index2.php';
		mysql_connect('localhost','root','');
		mysql_select_db('sinapay');
	}
	/**
	 * 读文件并获取数据
	 */
	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],"\t\n\r\0\x0B`\'");
		}
		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_values(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 );
		$newarray=array();
		self::connect();
		if(empty($todiffdata)){
			echo "两个文件的数据一致";
			die;
		}
		$toparray=array("charge_id","bussined_id");
		$condition='';
		$counarray=count($todiffdata)-1;
		foreach($todiffdata as $key=>$val){
		  if($key==$counarray){
		  	$condition.="charge_id=$val";
		  }else{
	        $condition.="charge_id=$val or ";
		  }
		}
		$sql="select charge_id,business_id from sinapay_charge_final where $condition";
		$result=mysql_query($sql);
		while($res=mysql_fetch_array($result)){
			$data=array('charge_id'=>$res['charge_id'],'business_id'=>$res['business_id']);
			$newarray[]=$data;
		}
		if (! is_file ( $filename)) {
		     touch ( $filename);
		}
		$handle = fopen ($filename, 'a' );
		fputcsv($handle, $toparray);
		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 );
时间: 2024-08-08 13:51:43

读取两文件,不同的内容存入还有一个文件里的相关文章

读取两文件,不同的内容存入另一个文件中

<?php /** * 从两个.csv 文件中读出数据 * 比较这两个文件不同的数据,并存入.csv 文件中 */ class Readfiledata { private function __construct() { } /** * 读文件并获取数据 */ private static function getdata($file) { $handle = fopen ( $file, 'r' ); $orderform = array (); $i=0; while ( false !=

将一个文件中的内容,在另一个文件中生成. for line in f1, \n f2.write(line)

将一个文件中的内容,在另一个文件中生成. 核心语句: for line in f1: f1中的所有一行 f2.write(line)                                  # 是直接写入f1中出来的每一行,用   .write() 原文地址:https://www.cnblogs.com/jack20181017/p/9863521.html

统计电影票房排名前10的电影并存入另一个文件

今天看到一个笔试题,是这样的:给定一个文件(m.dat),里面保存了各个电影票房统计,格式如下: <2012>                                索尼                $769.7 <哈利波特与死亡圣器(上)>              华纳兄弟            $952.0 <星球大战>                            二十世纪福克斯      $775.4 <怪物史莱克4>      

dos移动一个文件内的所有内容到另一个文件

1)移动一个文件内的所有内容到另一个文件(不包含该目录) 比如:把文件夹1 里面的所有文件(包含子目录)全部移动到与1同级目录的文件夹2中: cd 1 for /f "tokens=* delims= " %a in ('dir /a /b') do (move %a ..\2)

如何把每个文件夹的文件单独提取出来放到另一个文件夹!

如何把每个文件夹的文件单独提取出来放到另一个文件夹!不要给我说用Ctrl+A或者是Ctrl+鼠标点!我那里可是有好多好多个文件夹的这些文件夹里的文件统一一次性直接都提取出来放到一个文件夹里?高手帮我下哇!!!  呵呵,这事我经常搞.方法是利用搜索功能,在这些文件夹的上一层文件进行搜索,搜索文件为*.*,也即所有文件,然后在搜索结果中选择所以文件(除去文件夹外的),然后复制粘贴到你要的文件夹里,就是你想要的结果. 继续追问: 我先试试哇·好了给你分呵呵

java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.

【FTP】java FTPClient 文件上传内容为空,文件大小为0

问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: [参考:http://blog.csdn.net/tengdazhang770960436/article/details/43274001] 如果你在本地的 Java 项目里面去用 FtpClient 上传文件,然后虽然文件上传上去了,但是文件里面没有内容,那么这说明你的机器防火墙设置有问题如下图

Windows 下自动同步文件夹内容到另一个文件夹下

实现windows 使用bat脚本文件,复制文件夹到另一个盘,参考如下代码:/y是可以不显示:提示你需要覆盖一个文件,如下图: bat文件内容为 @echo off echo "使用bat脚本来复制文件夹和文件" echo. xcopy H:\ceshi\*.* F:\autotomcat\ /s /e /c /y /h /r pause 把bat文件放到除了C盘的其他盘下 提示   C盘下的文件操作一般都需要管理员权限才可以 下面开始配置计划任务自动执行 点击  开始----管理工具

python 文件单行循环读取的坑(一个程序中,文件默认只能按行循环读取一次,即使写到另一个循环里,它也只读取一次)

本来写了一个程序,想获取a文件中有,但是b文件中没有的行: 想到的方法是:1.一行一行提取a文件中数据,然后用a文件中的每一行与b文件中的每一行比较, 2.如果找到相同行就继续查找a中的下一行,如果找不到,就把这行保存起来,就是要找的一行 程序写成如下: f = open("file/a.txt","r",newline='\n') ff= open ("file/aa.txt","r",newline='\n') new=o