search_text.php 5.8 KB

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