'; $out=$out.''; $out=$out.' '; $out=$out.''; $out=$out.''; $out=$out.''; $out=$out.'
'; $out=$out.''; echo $out; return $out; } function make_learn_cata(){ global $conf; $metadir = $conf["metadir"]; $learndir = $metadir."/learn/"; $filelist = scandir($learndir); $learnlist = array(); foreach($filelist as $fname){ if(strpos($fname,".changes")){ $tmphf = fopen($learndir.$fname,"r"); $tmpstr= fgets($tmphf); $namelen =strlen($fname); $rawnlen = $namelen-8; if(strlen($tmpstr)>10){ $learnlist[]=substr($tmpstr,0,10)."\t".substr($fname,0,$rawnlen); } } } $learnlstr = join("\n",$learnlist); $outfile = fopen($metadir."/learn.list","w"); fwrite($outfile,$learnlstr); fclose($outfile); } function get_learn_list(){ } function get_learn_words($learn_list){ } function get_file_list($dir){ $file_array=array(); $file_array["files"]=array(); $filelist = scandir($dir); $predir= getcwd(); chdir($dir); foreach($filelist as $fname){ if(is_dir($fname)){ if($fname!="." and $fname!=".."){ $file_array["dir"][$fname]=$this->get_file_list($fname); } }else{ if(is_file($fname)) { $file_array["files"][] = substr($fname,0,strpos($fname,".")); } } } chdir($predir); return $file_array; } function get_changes_list($file_list,$dirnm,$changes_dir,&$out_filedata,&$out_fileorev){ $changes_ar=array(); $changes_ar["files"]=array(); if(isset($file_list["dir"])){ foreach($file_list["dir"] as $dirname=>$dirvalue){ $changes_ar["ns"][$dirnm.$dirname.":"]=$this->get_changes_list($dirvalue,$dirnm.$dirname.":",$changes_dir,$out_filedata,$out_fileorev); } } if(isset($file_list["files"])){ foreach($file_list["files"] as $file){ $nsfile = $dirnm.$file; $dirfile = utf8_encodeFN(str_replace(':', '/', $nsfile)); $hfile=fopen($changes_dir."/".$dirfile.'.changes',"r"); $tmpstr= fgets($hfile); $orev =substr($tmpstr,0,10); fclose($hfile); $hwordf = fopen($dirfile.'.txt',"r"); $txtstr = fread($hwordf,filesize($dirfile.'.txt')); $rt = preg_match("@(.*?)@",$txtstr,$match); $wordlist=""; fclose($hwordf); if($rt===1){ $wordlist=$match[2]; } $nsdata = array("orev"=>$orev,"wordlist"=>$wordlist); $out_filedata[$dirnm.$file]=$nsdata; $out_fileorev[$dirnm.$file]=$orev; $changes_ar["files"][]=$dirnm.$file; } } return $changes_ar; } function build_learn_list($update_span){ global $conf; $metadir = $conf["metadir"]; $pagedir = $conf['datadir']; $pretime=0; if(is_readable($metadir."/learn.log")) { $htmp=fopen($metadir."/learn.log","r"); $pretime = intval(fgets($htmp)); fclose($htmp); } if($pretime){ if((time()-$pretime)<$update_span){ return; } } $predir= getcwd(); chdir($pagedir); $learndir_ls = $this->get_file_list("learn"); $flat_data=array(); $orev_data=array(); $learn_ns_ls = $this->get_changes_list($learndir_ls,"learn:",$metadir,$flat_data,$orev_data); chdir($predir); $flearnlist = fopen($metadir."/learn.list","w"); fwrite($flearnlist,json_encode($learn_ns_ls)); fclose($flearnlist); $flearndata= fopen($metadir."/learn.flatdata","w"); fwrite($flearndata,json_encode($flat_data)); fclose($flearndata); $forev= fopen($metadir."/learn.orev","w"); fwrite($forev,json_encode($orev_data)); fclose($forev); $this->learnlog($metadir."/learn.log"); // $flearnlog= fopen($metadir."/learn.data","w+"); } function learnlog($logname){ $outlog=null; $pretime=0; if(is_readable($logname)==false){ $outlog=fopen($logname,"w"); }else { $outlog=fopen($logname,"r+"); $pretime = fgets($outlog); $orgtime = fgets($outlog); if ($orgtime) { if ((time() - intval($orgtime)) > 60 * 60 * 24) { fclose($outlog); $outlog = fopen($logname, "w"); } } } fseek($outlog,0,SEEK_SET); fwrite($outlog,time()."\n"); fseek($outlog,0,SEEK_END); fwrite($outlog,time()."\n"); fclose($outlog); return intval($pretime); } function get_page_wordlists($page_list){ $this->build_learn_list(60*10); global $conf; $metadir = $conf["metadir"]; $pagedir = $conf['datadir']; $fstr = file_get_contents($metadir."/learn.flatdata"); $flat_wlist = json_decode($fstr,true); $data=array(); foreach($page_list as $page){ $data[$page]=$flat_wlist[$page]["wordlist"]; } return $data; } function get_learnlist(){ $this->build_learn_list(60*10); global $conf; $metadir = $conf["metadir"]; $pagedir = $conf['datadir']; $fstr = file_get_contents($metadir."/learn.list"); return $fstr; } function get_learnorev(){ global $conf; $metadir = $conf["metadir"]; $filen= $metadir."/learn.orev"; $fstr = file_get_contents($filen); $orev_list = json_decode($fstr,true); return $orev_list; } function merge_wordlist($w_txt1,$w_txt2){ $list1 = explode(",",$w_txt1); $list2 = explode(",",$w_txt2); $list3 = array_merge($list1,$list2); sort($list3); $list_rt = array_unique($list3); return implode(",",$list_rt); } /* function get_wordlistss($page_list){ $data=array(); foreach($page_list as $page){ $data[$page]=$this->get_wordlist($page); } return $data; } function get_wordlist($pageid){ $filestr=rawWiki($pageid); $rt = preg_match("@(.*?)@",$filestr,$match); if($rt!==1){ return null; } return $match[2]; } */ }