channal_list.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. require_once "../public/function.php";
  3. require_once "../path.php";
  4. require_once '../channal/function.php';
  5. require_once '../ucenter/function.php';
  6. $_data = array();
  7. $output = array();
  8. if(isset($_POST["data"])){
  9. $_data = json_decode($_POST["data"],true);
  10. }
  11. else{
  12. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  13. exit;
  14. }
  15. $_userinfo = new UserInfo();
  16. $_channal = new Channal();
  17. $dns = "sqlite:"._FILE_DB_SENTENCE_;
  18. $db_trans_sent = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
  19. $db_trans_sent->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  20. $dns = "sqlite:"._FILE_DB_PALI_SENTENCE_;
  21. $db_pali_sent = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
  22. $db_pali_sent->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  23. $channal = array();
  24. $final = array();
  25. $article_len=0;
  26. foreach ($_data as $key => $value) {
  27. $pali_letter = array();
  28. # code...
  29. $id = $value["id"];
  30. $arrInfo = str_getcsv($value["data"],"@");
  31. $arrSent = str_getcsv($arrInfo[0],"-");
  32. $bookId=$arrSent[0];
  33. $para=$arrSent[1];
  34. $begin=$arrSent[2];
  35. $end=$arrSent[3];
  36. //find out translation
  37. $tran="";
  38. try{
  39. # 查询句子长度
  40. $pali_letter["id"]=$arrInfo[0];
  41. $query="SELECT length FROM pali_sent WHERE book= ? AND paragraph= ? AND begin= ? AND end= ? ";
  42. $stmt = $db_pali_sent->prepare($query);
  43. $stmt->execute(array($bookId,$para,$begin,$end));
  44. $Fetch = $stmt->fetch(PDO::FETCH_ASSOC);
  45. if($Fetch){
  46. $pali_letter["len"]=$Fetch["length"];
  47. $article_len+=$Fetch["length"];
  48. }
  49. else{
  50. $pali_letter["len"]=0;
  51. }
  52. $query="SELECT channal FROM sentence WHERE book= ? AND paragraph= ? AND begin= ? AND end= ? AND strlen >0 group by channal limit 0 ,20 ";
  53. $stmt = $db_trans_sent->prepare($query);
  54. $stmt->execute(array($bookId,$para,$begin,$end));
  55. $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
  56. foreach ($Fetch as $key => $value) {
  57. # code...
  58. $pali_letter[$value["channal"]]=1;
  59. if(isset($channal[$value["channal"]])){
  60. $channal[$value["channal"]] ++;
  61. }
  62. else{
  63. $channal[$value["channal"]] = 1;
  64. }
  65. }
  66. $final[]=$pali_letter;
  67. }
  68. catch (Exception $e) {
  69. $tran = $e->getMessage();
  70. //echo 'Caught exception: ', $e->getMessage(), "\n";
  71. }
  72. }
  73. foreach ($channal as $key => $value) {
  74. # 计算句子的完成分布
  75. $arr_sent_final = array();
  76. foreach ($final as $final_value) {
  77. # code...
  78. $sent_final = array();
  79. $sent_final["id"]=$final_value["id"];
  80. $sent_final["len"]=$final_value["len"];
  81. if(isset($final_value[$key]) && $final_value[$key]==1){
  82. $sent_final["final"]=true;
  83. }
  84. else{
  85. $sent_final["final"]=false;
  86. }
  87. $arr_sent_final[] = $sent_final;
  88. }
  89. $channalInfo = $_channal->getChannal($key);
  90. $name = $_userinfo->getName($channalInfo["owner"]);
  91. $channalInfo["username"] = $name["username"];
  92. $channalInfo["nickname"] = $name["nickname"];
  93. $channalInfo["count"] = $value;
  94. $channalInfo["all"] = count($_data);
  95. $channalInfo["final"] =$arr_sent_final;
  96. $channalInfo["article_len"] =$article_len;
  97. $output[]= $channalInfo;
  98. }
  99. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  100. ?>