方维二次开发

wangtongphp

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP处理execl数据,方法是把execl数据全部读入数组,然后对数组进行操作筛选;

背景:经理在弄一个execl表,总是一个动作:选中某项,CTRL+F,CTRL+C,CTRL+V,enter,enter,....然后看流量,选择100-300之间的数据;

表格是这样的,,然后按照目标域名选择出流量在100-300之间较大的选项对应的关键词;

目标域名是按照一定顺序排序的,且一定属于这个表中的某一个域名,但不是全部;

难点:execl可以保存成XML文件,也可以另存为csv文件,这些文件都是程序容易处理的格式,所以,格式的转换是个注意点;

PHP处理execl的数据,先把原始数据放到数组里,然后根据目标域名匹配这个数组中的一项,然后找出100-300的,输出关键词,代码如下

//读取原始数据记录到数组
$for = 1;
$handle = fopen("data.csv","r"); 
while ($data = fgetcsv($handle, 1000, ",")) { 
    $data = array_filter($data);
    $num = count($data); 
    if($num == 4){
        $for++;
    }
    $arr[$for][] = $data; 
} 
fclose($handle); 
//var_dump($arr);


//读取结果数据
$txt = file("resulttxt.txt");
foreach($txt as $k=>$v){
    foreach($arr as $ke=>$va){
        $v = trim($v);
        $va[0][1] = trim($va[0][1]);
        if($va[0][1] == $v){
            $domain = true;
            foreach($arr[$ke] as $key=>$val){
                $liu = (int)$val[3];
                if($liu>=100 && $liu <= 300){
                    $res13['id'][] = $key;
                    $res13['liu'][] = $liu;
                }elseif($liu>300){
                    $res3['id'][] = $key;
                    $res3['liu'][] = $liu;
                }else{
                    $res1['id'][] = $key;
                    $res1['liu'][] = $liu;
                }
            }
            //var_dump($res13);
            //var_dump($res3);
            //var_dump($res1);
            
            //echo count($res3['liu']).'--';
            //提取100-300的数
            if(count($res13['liu']) > 1){
                foreach($res13['liu'] as $k13=>$v13){
                    if($k13 == 0){
                        $res = $v13; //echo $res;
                        $id = $res13['id'][$k13];
                    }else{
                        if($res < $v13){
                            $res = $v13;
                            $id = $res13['id'][$k13];

                        }
                            
                    }
                    
                }
            }elseif(count($res13['liu']) == 1){
                $id = $res13['id'][0];
                //echo $id.'--';
            }else{
                //提取大于300的数据    
                if(count($res3['liu'])>1){
                    foreach($res3['liu'] as $k3=>$v3){
                        if($k3 == 0){$res = $v3;$id = $res3['id'][$k3];}
                        else{
                            if($v3<$res){ $res = $v3; $id = $res3['id'][$k3];}
                        }
                    }//echo '*'.$id.'*';            
                }elseif(count($res3['liu']) == 1){
                    $id = $res3['id'][0];
                }else{
                    //如果小于100
                    //$id = "100";
                    foreach($res1['liu'] as $k1=>$v1){
                        if(0 == $k1){$res = $v1; $id = $res1['id'][$k1];}
                        else{
                            if($v1<$res){ $res = $v1; $id = $res1['id'][$k1];}    
                        }
                    }
                    //echo '&';
                }
                
            }
            $res13 = array();
            $res1 = array();
            $res3 = array();
            //echo $id;
            //var_dump($arr[$ke]);
            //echo $arr[$ke][0][1].'=>'.$arr[$ke][$id][2];
            if( 100 == $id){ echo $v."都是小于100的数<br />";}else{
            echo '<a href="http://'.$arr[$ke][0][1].'">'.$arr[$ke][$id][2].'</a><br />';}
        }

    }
    if($domain == false){
        echo $v.'没有找到域名----------------------------------------------------<br />';
    }
    $domain = false;

}

 

posted on 2013-05-01 20:48  方维二次开发  阅读(326)  评论(0编辑  收藏  举报