Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140759
  • 博文数量: 12
  • 博客积分: 1411
  • 博客等级: 上尉
  • 技术积分: 433
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-25 14:25
文章分类

全部博文(12)

文章存档

2009年(3)

2008年(9)

我的朋友

分类:

2008-05-27 15:02:55

    小弟的工作有时候要进行大数据量的统计与去重,考虑到高级语言的易用性,所以用PHP实现了一个去重统计的程序,效果还不错,统计速度也还行,在此拿出来跟大家共享一下,交流下设计思想。
 

#!/usr/bin/php -q

<?php
/***
 *
 *    File    : skip_repeat.php
 *    Date    : 2008/05/23
 *    Author    : Nie Jun
 *    E-Mail    : yhniejun@163.com
 *    Version    : 0.1.0
 * 
 *
 */

 
$fp = fopen('./key_record.txt', 'r');

if ($fp) {
    while (!feof($fp)) {
        $buffer = fgets($fp, 20);
        
        $buffer = trim($buffer);
        
        if (empty($buffer))
            continue;
            
        $md5_str = md5($buffer);
        
        if (empty($obj_array[$md5_str])) {
            $obj_array[$md5_str] = new OBJ_SIG;
            $obj_array[$md5_str]->sig_stat = 1;
            $obj_array[$md5_str]->sig_count++;
            $obj_array[$md5_str]->sig_code = $buffer;
        
        } else {
            $obj_array[$md5_str]->sig_count++;
        }
        
    }
}

foreach($obj_array as $val) {
    
    $w_fp = fopen('./key_code.csv', 'a');
    
    if ($w_fp) {
        fputs($w_fp, "\"'$val->sig_code\",\"$val->sig_count\"");
        fputs($w_fp, "\r\n");
    }
    
    fclose($w_fp);    

}



//print_r($obj_array);

//

class OBJ_SIG
{
    var $sig_stat;
    var $sig_count;
    var $sig_code;
}

?>

阅读(1029) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~