dict_lookup_pre.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. //查询参考字典
  3. require_once '../path.php';
  4. require_once '../public/_pdo.php';
  5. require_once '../redis/function.php';
  6. require_once '../dict/function.php';
  7. if (isset($_GET["language"])) {
  8. $currLanguage = $_GET["language"];
  9. } else {
  10. if (isset($_COOKIE["language"])) {
  11. $currLanguage = $_COOKIE["language"];
  12. } else {
  13. $currLanguage = "en";
  14. }
  15. }
  16. $currLanguage = explode("-", $currLanguage)[0];
  17. if (isset($_GET["word"]) && !empty($_GET["word"])) {
  18. $word = $_GET["word"];
  19. } else {
  20. echo json_encode(array(), JSON_UNESCAPED_UNICODE);
  21. exit;
  22. }
  23. $redis = redis_connect();
  24. if($redis!==false){
  25. $arrWordIdx = $redis->hget("ref_dict_idx",$word);
  26. if($arrWordIdx===FALSE){
  27. PDO_Connect(_FILE_DB_REF_INDEX_);
  28. $query = "SELECT word,count from " . _TABLE_REF_INDEX_ . " where eword like ? OR word like ? limit 0,15";
  29. $Fetch = PDO_FetchAll($query, array($word . '%', $word . '%'));
  30. $arrWordIdx=json_encode($Fetch, JSON_UNESCAPED_UNICODE);
  31. $redis->hset("ref_dict_idx",$word,$arrWordIdx);
  32. }
  33. $arrResult = json_decode($arrWordIdx,true);
  34. foreach ($arrResult as $key => $value) {
  35. # 获取字典里的第一个意思
  36. $arrResult[$key]["mean"]=getRefFirstMeaning($arrResult[$key]["word"],$currLanguage,$redis);
  37. }
  38. echo json_encode($arrResult, JSON_UNESCAPED_UNICODE);
  39. exit;
  40. }
  41. else
  42. {
  43. PDO_Connect(_FILE_DB_REF_INDEX_);
  44. $query = "SELECT word,count from " . _TABLE_REF_INDEX_ . " where eword like ? OR word like ? limit 0,15";
  45. $Fetch = PDO_FetchAll($query, array($word . '%', $word . '%'));
  46. PDO_Connect(_FILE_DB_REF_, _DB_USERNAME_, _DB_PASSWORD_);
  47. $query = "SELECT mean from " . _TABLE_DICT_REF_ . " where word = ? and language = ? limit 0,1";
  48. foreach ($Fetch as $key => $value) {
  49. # code...
  50. $mean = PDO_FetchRow($query, array($value["word"], $currLanguage));
  51. if ($mean) {
  52. $Fetch[$key]["mean"] = $mean["mean"];
  53. } else {
  54. if ($currLanguage != "en") {
  55. $mean = PDO_FetchRow($query, array($value["word"], "en"));
  56. if ($mean) {
  57. $Fetch[$key]["mean"] = $mean["mean"];
  58. } else {
  59. $Fetch[$key]["mean"] = "";
  60. }
  61. } else {
  62. $Fetch[$key]["mean"] = "";
  63. }
  64. }
  65. }
  66. echo json_encode($Fetch, JSON_UNESCAPED_UNICODE);
  67. }