visuddhinanda 4 лет назад
Родитель
Сommit
5a2aa8d0a3
1 измененных файлов с 92 добавлено и 4 удалено
  1. 92 4
      app/dict/redis_pali_word_statistic.php

+ 92 - 4
app/dict/redis_pali_word_statistic.php

@@ -2,7 +2,8 @@
 require_once "../path.php";
 require_once "../install/filelist.php";
 require_once "../redis/function.php";
-
+        $redis = redis_connect();
+		$strKey='pali://wordstatisitic.hash';		
 if (PHP_SAPI == "cli") {
     if ($argc >= 2) {
         $command = $argv[1];
@@ -10,12 +11,12 @@ if (PHP_SAPI == "cli") {
 		exit;
 	}
 	{
-        $redis = redis_connect();
+
         if ($redis == false) {
             echo "no redis connect\n";
             exit;
 		}
-		$strKey='pali://wordstatisitic.hash';
+
 		switch ($command) {
 			case 'init':
 				# code...
@@ -156,7 +157,94 @@ if (PHP_SAPI == "cli") {
 		}
    }
 } else {
-    echo "cli";
+    if($_GET["op"]==="ref"){
+		$dbh = new PDO(_DICT_DB_REGULAR_, "", "", array(PDO::ATTR_PERSISTENT => true));
+		$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+		
+		$query = "SELECT pali from "._TABLE_DICT_REGULAR_." where 1  group by pali";
+		$stmt = $dbh->query($query);
+		$count = 0;
+		while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
+			# code...
+			$word = $redis->hGet($strKey, $row["pali"]);
+			if($word){
+				$eWord = json_decode($word,true);
+				$eWord["ref"]=1;
+				$redis->hSet($strKey, $row["pali"],json_encode($eWord,JSON_UNESCAPED_UNICODE));
+				$count++;
+			}
+		}
+		echo "regular count:".$count.PHP_EOL;
+
+		$dbh = new PDO(_DICT_DB_IRREGULAR_, "", "", array(PDO::ATTR_PERSISTENT => true));
+		$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+		
+		$query = "SELECT pali from "._TABLE_DICT_IRREGULAR_." where 1  group by pali";
+		$stmt = $dbh->query($query);
+		$count = 0;
+		while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
+			# code...
+			$word = $redis->hGet($strKey, $row["pali"]);
+			if($word){
+				$eWord = json_decode($word,true);
+				$eWord["ref"]=1;
+				$redis->hSet($strKey, $row["pali"],json_encode($eWord,JSON_UNESCAPED_UNICODE));
+				$count++;
+			}
+		}
+		echo "irregular count:".$count.PHP_EOL;
+
+	}else if($_GET["op"]==="user"){
+		$dbh = new PDO(_FILE_DB_WBW_, "", "", array(PDO::ATTR_PERSISTENT => true));
+		$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+		
+		$query = "SELECT pali from dict where 1  group by pali";
+		$stmt = $dbh->query($query);
+		$count = 0;
+		while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
+			# code...
+			$word = $redis->hGet($strKey, $row["pali"]);
+			if($word){
+				$eWord = json_decode($word,true);
+				$eWord["user"]=1;
+				$redis->hSet($strKey, $row["pali"],json_encode($eWord,JSON_UNESCAPED_UNICODE));
+				$count++;
+			}
+		}		
+		echo "user wbw count:".$count.PHP_EOL;
+		$start=1;
+		$all=0;
+		$ref=0;
+		$user=0;
+		$cover=0;
+
+		$all1=0;
+		$ref1=0;
+		$user1=0;
+		$cover1=0;
+		while($word = $redis->hGet("pali://wordindex.hash",$start)){
+			$eWord = $redis->hGet($strKey, $word);
+			$eWord = json_decode($eWord,true);
+			$all += $eWord["count"]*$eWord["len"];
+			$all1++;
+			$ref += $eWord["ref"]*$eWord["len"];
+			$ref1 += $eWord["ref"];
+			$user += $eWord["user"]*$eWord["len"];
+			$user1 += $eWord["user"];
+			if($eWord["ref"]==1 || $eWord["user"]==1){
+				$cover += $eWord["len"];
+				$cover1 += 1;
+			}
+			$start++;
+		}	
+		$file = fopen(_DIR_LOG_."/dict_cover.log","a");
+		if($file){
+			fputs($file,date("Y-m-d h:i:sa").sprintf("字符数 全部:{$all},参考:{$ref},用户字典:{$user},总和:{$cover},单词数 全部:{$all1},参考:{$ref1},用户字典:{$user1},总和:{$cover1}",$all,$ref,$user,$cover,$all1,$ref1,$user1,$cover1));
+			fclose($file);
+		}
+		echo "字符数 全部:{$all},参考:{$ref},用户字典:{$user},总和:{$cover}".PHP_EOL;
+		echo "单词数 全部:{$all1},参考:{$ref1},用户字典:{$user1},总和:{$cover1}".PHP_EOL;
+	}
 }
 
 echo "<h2>齐活!功德无量!all done!</h2>";