search_text.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. //pali 正文搜索
  3. require 'casesuf.inc';
  4. require 'dict_find_un.inc';
  5. include "./config.php";
  6. include "./_pdo.php";
  7. include "book_list_zh.inc";
  8. if (isset($_GET["language"])) {
  9. $currLanguage = $_GET["language"];
  10. $_COOKIE["language"] = $currLanguage;
  11. } else {
  12. if (isset($_COOKIE["language"])) {
  13. $currLanguage = $_COOKIE["language"];
  14. } else {
  15. $currLanguage = "en";
  16. $_COOKIE["language"] = $currLanguage;
  17. }
  18. }
  19. //load language file
  20. if (file_exists($dir_language . $currLanguage . ".php")) {
  21. require $dir_language . $currLanguage . ".php";
  22. } else {
  23. include $dir_language . "default.php";
  24. }
  25. if (isset($_GET["device"])) {
  26. $currDevice = $_GET["device"];
  27. } else {
  28. if (isset($_COOKIE["device"])) {
  29. $currDevice = $_COOKIE["device"];
  30. } else {
  31. $currDevice = "computer";
  32. }
  33. }
  34. $op = $_GET["op"];
  35. $word = mb_strtolower($_GET["word"], 'UTF-8');
  36. $org_word = $word;
  37. $count_return = 0;
  38. $dict_list = array();
  39. global $PDO;
  40. $dictFileName = $dir_dict_system . "word_index.db";
  41. PDO_Connect("$dictFileName");
  42. switch ($op) {
  43. case "pre": //预查询
  44. $query = "select word,count as co from main_word_index where \"word_en\" like " . $PDO->quote($word . '%') . " OR \"word\" like " . $PDO->quote($word . '%') . " limit 0,100";
  45. //echo $query;
  46. $Fetch = PDO_FetchAll($query);
  47. $iFetch = count($Fetch);
  48. echo "<wordlist>";
  49. if ($iFetch > 0) {
  50. for ($i = 0; $i < $iFetch; $i++) {
  51. $outXml = "<word>";
  52. $word = $Fetch[$i]["word"];
  53. $outXml = $outXml . "<pali>$word</pali>";
  54. $outXml = $outXml . "<count>" . $Fetch[$i]["co"] . "</count>";
  55. $outXml = $outXml . "</word>";
  56. echo $outXml;
  57. }
  58. }
  59. echo "</wordlist>";
  60. break;
  61. case "search":
  62. //直接查询
  63. //先查书籍单词总表 获取书号
  64. $word_string = "'" . str_replace(",", "','", $word);
  65. $word_string = mb_substr($word_string, 0, -2, "UTF-8");
  66. $query = "select word,book,sum(count) as co from word_in_book where \"word\" in (" . $word_string . ") group by book";
  67. $Fetch = PDO_FetchAll($query);
  68. $iFetch = count($Fetch);
  69. echo "<div id='search_result_index' style='flex:3;'>";
  70. if ($iFetch > 0) {
  71. for ($i = 0; $i < $iFetch; $i++) {
  72. $outXml = "<p>";
  73. $word = $Fetch[$i]["word"];
  74. //$outXml = $outXml."<pali>$word</pali>";
  75. $bookid = $Fetch[$i]["book"];
  76. $outXml = $outXml . "<book>" . $book[$bookid] . "</book>-";
  77. $outXml = $outXml . "<count>" . $Fetch[$i]["co"] . "</count>";
  78. $outXml = $outXml . "</p>";
  79. echo $outXml;
  80. }
  81. }
  82. echo "</div>";
  83. echo "<div class='search_pali_text_prev' style='flex:7;'>";
  84. if ($iFetch > 0) {
  85. for ($i = 0; $i < $iFetch; $i++) {
  86. //遍历每一本书 获取段落号
  87. $bookid = $Fetch[$i]["book"];
  88. $db_file = "../appdata/palicanon/templet/" . $bookid . "_tpl.db3";
  89. //open database
  90. PDO_Connect("$db_file");
  91. echo "<div><div class='search_code'>input:$org_word<br>";
  92. $word_string = "\"real\" ='" . str_replace(",", "' or \"real\" = '", $org_word);
  93. //echo $word_string;
  94. $word_string = mb_substr($word_string, 0, -14, "UTF-8");
  95. $query_pali = "SELECT * FROM \"main\" WHERE " . $word_string . " group by paragraph";
  96. echo $query_pali . "<br />";
  97. $Fetch_pali = PDO_FetchAll($query_pali);
  98. $iFetch_pali = count($Fetch_pali);
  99. echo "book:$bookid paragraph:" . $iFetch_pali . "<br /></div>";
  100. //var_dump($Fetch_pali);
  101. if ($iFetch_pali > 0) {
  102. $db_file = "../appdata/palicanon/pali_text/" . $bookid . "_pali.db3";
  103. //open database
  104. PDO_Connect("$db_file");
  105. for ($j = 0; $j < $iFetch_pali; $j++) {
  106. echo "<div class='search_code'>par:" . $Fetch_pali[$j]['paragraph'] . "<br>";
  107. $query_pali_text = "SELECT * FROM \"data\" WHERE paragraph=" . $Fetch_pali[$j]['paragraph'];
  108. $par = $Fetch_pali[$j]['paragraph'];
  109. echo $query_pali_text . "<br />";
  110. $Fetch_pali_text = PDO_FetchAll($query_pali_text);
  111. $iFetch_pali_text = count($Fetch_pali_text);
  112. echo $iFetch_pali_text . "<br /></div>";
  113. //var_dump($Fetch_pali);
  114. if ($iFetch_pali_text > 0) {
  115. for ($k = 0; $k < $iFetch_pali_text; $k++) {
  116. echo "<div class='paragraph'>";
  117. echo "<div class='book_title'>";
  118. echo "<div class='book_name' style='display:none'>" . $book[$bookid] . "</div>";
  119. echo "<div id='book_path#" . $k . "' class='book_path'>" . $Fetch_pali_text[$k]['book'] . "#" . $module_gui_str['editor_palicannon']['1014'] . "&nbsp;" . $Fetch_pali_text[$k]['paragraph'] . "&nbsp;" . $module_gui_str['editor_project']['1043'] . "</div>";
  120. echo "</div>";
  121. $newText = str_replace($word, "<span class='height_light'>$word</span>", $Fetch_pali_text[$k]['vri_text']);
  122. echo "<div class='par_text'>" . $newText . "</div>";
  123. echo "<div class='toolbar'><button onclick='search_edit($bookid,$par)'>Edit</button></div>";
  124. echo "</div>";
  125. }
  126. }
  127. //break;
  128. }
  129. }
  130. echo "</div>";
  131. /*
  132. //获取段落号结束
  133. $db_file = "../appdata/palicanon/pali_text/".$bookid."_pali.db3";
  134. //open database
  135. PDO_Connect("$db_file");
  136. $query_pali="SELECT * FROM \"data\" WHERE \"text\" like '%".$word."%'";
  137. echo $org_word;
  138. $word_string="\"text\" like '%".str_replace(",","%' or \"text\" like '%",$org_word);
  139. echo $word_string;
  140. $word_string=mb_substr($word_string,0,-18,"UTF-8");
  141. $query_pali="SELECT * FROM \"data\" WHERE ".$word_string;
  142. echo $query_pali."<br />";
  143. $Fetch_pali = PDO_FetchAll($query_pali);
  144. $iFetch_pali=count($Fetch_pali);
  145. echo $iFetch_pali."<br />";
  146. //var_dump($Fetch_pali);
  147. if($iFetch_pali>0){
  148. for($j=0;$j<$iFetch_pali;$j++){
  149. echo "<div class='paragraph'>";
  150. echo "<div class='book_title'>";
  151. echo "<div class='book_name'>".$book[$bookid]."</div>";
  152. echo "<div class='book_path'>"."path>path ".$Fetch_pali[$j]['book']."第".$Fetch_pali[$j]['paragraph']."段"."</div>";
  153. echo "</div>";
  154. $newText=str_replace($word,"<span class='height_light'>$word</span>",$Fetch_pali[$j]['text']);
  155. echo "<div class='par_text'>".$newText."</div>";
  156. echo "</div>";
  157. }
  158. }
  159. */
  160. }
  161. }
  162. echo "</div>";
  163. break;
  164. }