在PHP中读写CSV格式文件(不是PHP自带函数)

<?php
$str = $_REQUEST["q"];//取出消息 
$mess = "";//回送消息
if ($str !== "") {//消息不为空
	$array = explode("~", $str);//命令和内容以"~"分割
	$len = count($array);//统计
//	$mess = $array[0] . "~" . $len;
	if($len == 2) {//命令+内容
		$csvfilename = $array[0] . ".csv";//服务器端文件
		if(($array[0] == "HotPage_Count") && ($array[1] == "250")){//口令250
			$wr = 0;//未写入数据库
			if(file_exists($csvfilename)){//"数据库"文件已存在
				$str = file_get_contents($csvfilename);//读出"数据库"文件
				$strarray = explode("\r\n", $str);//分割多行
				$len1 = count($strarray);//统计"记录"(行数)个数
				$str = $strarray[$len1 - 1];//取最后一行即最后的版本更新
				$ptrarray = explode(",", $str);//分割某行
				$len2 = count($ptrarray);//统计"字段"个数
				if($len2 == 12){//"数据库"共12个字段
					$date = date("Y.m.d");//只取日期"2017.10.18"
					if($ptrarray[1] != $date){//浏览日期变化
						$ptrarray[1] = $date;//新的浏览日期
						$ptrarray[3] = 0;//今日流量清零
					}
					$count = intval($ptrarray[2]) + 1;//浏览次数
					$ptrarray[2] = $count;//浏览次数计数
					$cnt = intval($ptrarray[3]) + 1;//今日流量
					$ptrarray[3] = $cnt;//今日流量计数
					$max = intval($ptrarray[5]);//最大流量
					if($cnt > $max){//今日流量大
						$ptrarray[4] = $date;//替换最大时间
						$ptrarray[5] = $cnt;//替换最大流量
					}
					$str = implode(",", $ptrarray);//合并某行
					$strarray[$len1 - 1] = $str;
					$str = implode("\r\n", $strarray);//合并多行
					file_put_contents($csvfilename, $str);//写入文件
					$wr = 1;//写入标志
				}
			}
			if($wr == 0){//"数据库"文件不存在或"字段"个数不对
				$str = "软件名称,浏览日期,浏览次数,今日流量,最大流量,创建时间,版 本 号,软件作者,邮    箱,腾讯  QQ,腾讯微信\r\n";
				$str .= "HotPage,2017.10.22,1,1,2018.04.21,1,2017.10.22 18:18,V1.00,雁塔菜农HotPower,[email protected],1270688699,hotwc3";
				file_put_contents($csvfilename, $str);//写入"数据库"文件
				$count = 1;
			}
			$str = intval($count);
		}
		else if(($array[0] == "HotPage_Count") && ($array[1] == "888")){//口令888
			$str = file_get_contents($csvfilename) . "\r\n";//读出"数据库"文件
		}
		else if(($array[0] == "HotPage_Text") && ($array[1] == "888")){//口令888
			$str = file_get_contents($csvfilename) . "\r\n";//读出"数据库"文件
		}
//		$mess = $array[0] . "~" . $str;//格式=命令+消息
	}
	else if(($array[0] == "HotPage_Message") && ($array[1] == "888")){//口令888
		$csvfilename = $array[2] . "/Message.csv";//服务器端文件
		if(file_exists($csvfilename)){//"数据库"文件已存在
			$str = file_get_contents($csvfilename);//读出"数据库"文件
//			$mess = $array[0] . "~" . $str;//格式=命令+消息
			$strarray = explode("\r\n", $str);//分割多行
			$len1 = count($strarray);//统计"记录"(行数)个数
			if($len1 >= 2){
				$str = $strarray[1];//取最后一行即最后的版本更新
				$ptrarray = explode(",", $str);//分割某行
				$len2 = count($ptrarray);//统计"字段"个数
//					$mess = $array[0] . "~" . $len2;
				if($len2 >= 16){//"数据库"共12个字段
					$date = date("Y.m.d");//只取日期"2017.10.18"
					if($ptrarray[10] != $date){//浏览日期变化
						$ptrarray[10] = $date;//新的浏览日期
						$ptrarray[12] = 0;//今日流量清零
					}
					$count = intval($ptrarray[11]) + 1;//浏览次数
					$ptrarray[11] = $count;//浏览次数计数
					$cnt = intval($ptrarray[12]) + 1;//今日流量
					$ptrarray[12] = $cnt;//今日流量计数
					$max = intval($ptrarray[14]);//最大流量
					if($cnt > $max){//今日流量大
						$ptrarray[13] = $date;//替换最大时间
						$ptrarray[14] = $cnt;//替换最大流量
					}
					$str = implode(",", $ptrarray);//合并某行
					$strarray[$len1 - 1] = $str;
					$str = implode("\r\n", $strarray);//合并多行
					if($array[2] == $ptrarray[0]){
						file_put_contents($csvfilename, $str);//写入文件
					}
					else{
						$str = "网站用户文件被损坏!!!";
					}
//			$mess = $array[0] . "~" . $str;//格式=命令+消息
				}
			}
		}
//			$mess = $array[0] . "~" . $str;//格式=命令+消息
	}
	$mess = $array[0] . "~" . $str;//格式=命令+消息
}
echo $mess;//回送消息
?>

猜你喜欢

转载自blog.csdn.net/HotWC3/article/details/88776820
今日推荐