盲反馈检索系统实验记录二

在实验记录一中我们提到了一个获取所有txt格式的IT新闻内容的方法fileStr,在获取内容的同时我们也计算出了每篇新闻的长度(包括标点符号):

//获取每篇文档的内容和长度
static public function fileStr(){
    $file_dir=self::fileDir(TEXT_PATH);
    $str=array();   //存储文档和长度
    for($i=0;$i<count($file_dir);$i++){
        $str[$i]['con']=file_get_contents(TEXT_PATH.'/'.$file_dir[$i]); //读取文本
        $str[$i]['con']=preg_replace('/\s+/','',$str[$i]['con']);       //消除空格,这样做就不适合英文检索
        $str[$i]['len']=mb_strlen($str[$i]['con'],'gbk');       //文本长度
    }
    return $str;
}


fileStr方法调用了工具类定义的一个静态方法fileDir,fileDir返回的是IT新闻目录下所有文件的文件名。fileStr方法通过一个for循环获取每篇文档的内容,并把它们放入一个二维数组$str中,其中$str[i]['con']保存大的是第i篇文档的内容,$str[i]['len']保存的是第i篇文档的长度:

盲反馈检索系统实验记录二


fileDir方法的代码如下:


//取出所有文档目录
static public function fileDir($path){
    $files_name=array();
    $dir=opendir($path);
    while (false!==($file=readdir($dir))) {
        if ($file != "." && $file != ".."){
            $files_name[]=$file;
        }
    }
    closedir($dir);
    return $files_name;
}

该方法需要传递一个参数,该参数保存的是新闻文件的目录。通过opendir目录函数读取目录文件,并把文件名存在数组$file_name中:

盲反馈检索系统实验记录二