redis!==false){ $path = $this->redis->hGet("pali_text://path",$book."-".$para); if($path!==FALSE){ return json_decode($path,true); } } $path = array(); $parent = $para; $deep = 0; $sFirstParentTitle = ""; //循环查找父标题 得到整条路径 while ($parent > -1) { $query = "select * from pali_text where \"book\" = ? and \"paragraph\" = ? limit 0,1"; $stmt = $this->dbh->prepare($query); $stmt->execute(array($book, $parent)); $FetParent = $stmt->fetch(PDO::FETCH_ASSOC); $toc =array("book"=>$book,"para"=>$parent,"level"=>$FetParent["level"],"title"=>$FetParent["toc"]); $path[] = $toc; $parent = $FetParent["parent"]; $deep++; if ($deep > 5) { break; } } if($this->redis){ $this->redis->hSet("pali_text://path",$book."-".$para,json_encode($path,JSON_UNESCAPED_UNICODE)); } return ($path); } public function getPathHtml($arrPath){ $path=""; foreach ($arrPath as $key => $value) { # code... $toc = "{$value["title"]}"; if ($path == "") { if ($value["level"] < 100) { $path = $toc; } else { $path = "{$value["para"]}"; } } else { $path = $toc . $path; } } return $path; } } class PaliBook extends Table { function __construct($redis=false) { parent::__construct(_FILE_DB_PALITEXT_, "books", "", "",$redis); } public function getBookTitle($book,$para){ /* if($this->redis!==false){ $result = $this->redis->hGet("pali_text://book",$book."-".$para); if($result!==FALSE){ return $result; } } */ $query = "select title from books where \"book\" = ? and \"paragraph\" = ? limit 0,1"; $stmt = $this->dbh->prepare($query); $stmt->execute(array($book, $para)); $book = $stmt->fetch(PDO::FETCH_ASSOC); if($book){ if($this->redis){ //$this->redis->hSet("pali_text://book",$book."-".$para,$book["title"]); } return $book["title"]; } else{ return false; } } } ?>