<?php
$id =mysql_connect("localhost","root","root") or die(mysql_error());//连接MySQL
$ok = mysql_select_db("db_network_support", $id) or die(mysql_error());
$dir='E:/new/di int br/di int br/';//文件夹名称
$file=scandir($dir);//读取文件夹下所有的文件
unset($file[0],$file[1]);//去掉不要的数组元素
foreach ($file as $k => $v) {
$ip=substr($v, 0,-4);
//echo $v."<br>";
$a = file_get_contents("E:/new/di int br/di int br/$v");//读取文件内容
//print_r($a);die;
$b= (strpos($a,"@"));//获取字符串@首次出现的位置
$c= (strpos($a,"#"));//获取字符串#首次出现的位置
$str= substr($a,$b+1,$c-1); //截取两个字符串之间的字符串
$s= preg_replace('/[\r\n]+/', "\n", strtok($str, '#'));//正则把换行,然后替换掉。strtok会以每条字符串空格位置分割成分开的字符串,#号结束
$arr=explode("\n",trim($s));
//echo preg_replace("/(\r\n|\n|\r|\t)/i", '', strtok($str, '#'));//trim(strtok($str, '#'));
$result=array();
foreach($arr as $data){
trim($data) && $result[]=explode(" ",$data); //首先要检查$data是否为空
}
foreach($result as $k=>$v){
$result[$k] = array_values(array_filter($v));//去空数组,只获取数组的值
}
print_r($result);
foreach ($result as $k => $v) {
$power=array_filter($v);//去空值
$sql="INSERT INTO yc_power(id, PowerNo, Present, Mode, State, Current, Voltage, RealPwr, ip) VALUES ('','$v[0]','$v[1]','$v[2]','$v[3]','$v[4]','$v[5]','$v[6]','$ip')";
$aa=mysql_query($sql);
//print_r($sql);
//print_r($power);
}
}
?>
获取数据结构:@到#之间的字符串
数据库结构:
上面的适用于很多文件中有相同的数据结构,里面都有指定字符串直接想要的内容。比如每个文件中都有很多行@XXX&,其中XXX是我们想要得到的数据,那你就可以把上面的指定字符换成你想截的@和&