get_para.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. require_once "../public/_pdo.php";
  3. require_once "../path.php";
  4. define("_MAX_CHAPTER_LEN_", 20000);
  5. if (isset($_GET["book"])) {
  6. $_book = $_GET["book"];
  7. } else {
  8. exit;
  9. }
  10. if (isset($_GET["para"])) {
  11. $_para = $_GET["para"];
  12. } else {
  13. exit;
  14. }
  15. if (isset($_GET["begin"])) {
  16. $_begin = $_GET["begin"];
  17. }
  18. if (isset($_GET["end"])) {
  19. $_end = $_GET["end"];
  20. }
  21. $_view = $_GET["view"];
  22. $output["toc"] = array();
  23. $output["sentences"] = array();
  24. $output["head"] = 0;
  25. if ($_view == "sent") {
  26. $output["sentences"] = array(array("book" => $_book, "paragraph" => $_para, "begin" => $_begin, "end" => $_end));
  27. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  28. exit;
  29. }
  30. $paraBegin=0;
  31. $paraEnd=0;
  32. PDO_Connect(_FILE_DB_PALITEXT_);
  33. $query = "SELECT level , parent, chapter_len FROM 'pali_text' WHERE book= ? AND paragraph= ?";
  34. $FetchParInfo = PDO_FetchRow($query, array($_book, $_para));
  35. if ($FetchParInfo) {
  36. switch ($_view) {
  37. case 'chapter':
  38. # code...
  39. if($FetchParInfo["level"]>0 && $FetchParInfo["level"]<8){
  40. $paraBegin = $_para;
  41. $paraEnd = $_para + $FetchParInfo["chapter_len"] - 1;
  42. }
  43. else{
  44. $paraBegin = $FetchParInfo["parent"];
  45. $query = "SELECT chapter_len FROM 'pali_text' WHERE book= ? AND paragraph= ?";
  46. $FetchParInfo = PDO_FetchRow($query, array($_book, $paraBegin));
  47. $paraEnd = $paraBegin + $FetchParInfo["chapter_len"] - 1;
  48. }
  49. break;
  50. case 'para':
  51. $paraBegin = $_para;
  52. $paraEnd = $_para;
  53. # code...
  54. break;
  55. default:
  56. # code...
  57. $paraBegin = $_para;
  58. $paraEnd = $_para;
  59. break;
  60. }
  61. //获取下级目录
  62. $query = "SELECT level,paragraph,toc FROM 'pali_text' WHERE book= ? AND (paragraph BETWEEN ?AND ? ) AND level < 8 ";
  63. $output["toc"] = PDO_FetchAll($query, array($_book, $paraBegin, $paraEnd));
  64. if ($FetchParInfo["chapter_strlen"] > _MAX_CHAPTER_LEN_ && $_view === "chapter" && count($output["toc"]) > 1) {
  65. if ($output["toc"][1]["paragraph"] - $_para > 1) {
  66. # 中间有间隔
  67. $paraBegin = $_para;
  68. $paraEnd = $output["toc"][1]["paragraph"] - 1;
  69. $output["head"] = 1;
  70. } else {
  71. #中间无间隔
  72. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  73. exit;
  74. }
  75. }
  76. PDO_Connect(_FILE_DB_PALI_SENTENCE_);
  77. $query = "SELECT book,paragraph,begin, end FROM 'pali_sent' WHERE book= ? AND (paragraph BETWEEN ?AND ? ) ";
  78. $sent_list = PDO_FetchAll($query, array($_book, $paraBegin, $paraEnd));
  79. $output["sentences"] = $sent_list;
  80. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  81. } else {
  82. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  83. }