function.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. require_once '../config.php';
  3. require_once '../public/_pdo.php';
  4. require_once '../redis/function.php';
  5. function getRefFirstMeaning($word,$lang,$redis){
  6. if(strpos($word,"[")){
  7. $word = strstr($word,"[",true);
  8. }
  9. if($redis!==false){
  10. if(mb_substr($word,0,1,"UTF-8")==="["){
  11. $ending = "-".mb_substr($word,1,-1,"UTF-8");
  12. $mean = $redis->hGet("ref_first_mean://".$lang,$ending);
  13. if($mean!=FALSE){
  14. return $mean;
  15. }
  16. }
  17. $mean = $redis->hGet("ref_first_mean://".$lang,$word);
  18. if($mean!=FALSE){
  19. return $mean;
  20. }
  21. if($lang!="en"){
  22. $mean = $redis->hGet("ref_first_mean://en",$word);
  23. if($mean!==FALSE){
  24. return $mean;
  25. }
  26. }
  27. #如果没有查规则变形
  28. if($redis->hExists("dict://regular/part",$word)===TRUE){
  29. $rglPart = explode("+",$redis->hGet("dict://regular/part",$word)) ;
  30. $mean = $mean = $redis->hGet("ref_first_mean://".$lang,$rglPart[0]);
  31. if($mean!=FALSE){
  32. return $mean;
  33. }
  34. }
  35. #查询其他的语言
  36. $any = $redis->hGet("ref_first_mean://com",$word);
  37. if($any!==FALSE){
  38. # code...
  39. return $any;
  40. }
  41. else{
  42. return "";
  43. }
  44. }
  45. else{
  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. # code...
  49. $mean = PDO_FetchRow($query, array($word, $lang));
  50. if ($mean) {
  51. return $mean["mean"];
  52. } else {
  53. if ($lang != "en") {
  54. $mean = PDO_FetchRow($query, array($word, "en"));
  55. if ($mean) {
  56. return $mean["mean"];
  57. } else {
  58. return "";
  59. }
  60. } else {
  61. return "";
  62. }
  63. }
  64. }
  65. }