一次性导入文件夹下想获取的数据到数据库

<?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是我们想要得到的数据,那你就可以把上面的指定字符换成你想截的@和&










猜你喜欢

转载自blog.csdn.net/sinat_15955423/article/details/76686177