如何生成raff文件?上回说到可以将csv文件转成raff文件。确实如此。
在此再做一次归纳。
将数据库里的文件转为可以在weka里使用的raff文件,
1可以直接将weka于数据库连接起来,但这个我试了很多遍,还是没有成功。
2可以自己写一个php的小工具将数据库里的文件转为csv文件。
3可以选择数据库导出,但这样做只能导出少量的数据(超过3000条数据无效)
本文采取的是将数据库里的数据全部读出来,转为csv文件,然后再通过weka的raff工具读取csv文件,最后转为raff文件
代码如下
1 public function form(){ 2 $data = M('solution')->select(); //tp框架的链接数据库的实力类 3 4 $keys = array_keys($data[0]); 5 $str = ""; 6 foreach ($keys as $key => $value) { //写第一行 7 if($key === count($keys)-1) 8 $str .= $value." "; 9 else 10 $str .= $value.", "; 11 } 12 13 foreach ($data as $key => $value) { 14 $i = 0; 15 foreach ($value as $k => $v) { 16 if($i === count($value)-1) 17 $str .= $v." "; 18 else 19 $str .= $v.", "; 20 $i++; 21 } 22 } 23 24 $filename = date('Ymd').'.csv'; //设置文件名 25 26 header("Content-type:text/csv"); 27 header("Content-Disposition:attachment;filename=".$filename); 28 header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); 29 header('Expires:0'); 30 header('Pragma:public'); 31 echo $str; 32 }
测试结果如下
最后打开这个文件如下图
使用weka打开这个文件
效果还不错,然后再另存为raff文件,也许没有这个必要,但问题已经解决了。