0){
$booktypesum["vinaya"]=array(0,0);
$booktypesum["sutta"]=array(0,0);
$booktypesum["abhidhamma"]=array(0,0);
$booktypesum["anna"]=array(0,0);
$booktypesum["mula"]=array(0,0);
$booktypesum["atthakattha"]=array(0,0);
$booktypesum["tika"]=array(0,0);
$booktypesum["anna2"]=array(0,0);
for($i=0;$i<$iFetch;$i++){
$book=$Fetch[$i]["book"];
$sum=$Fetch[$i]["co"];
array_push($newBookList,array($book,$sum));
$t1=$arrBookType[$book-1]->c1;
$t2=$arrBookType[$book-1]->c2;
if(isset($booktypesum[$t1])){
$booktypesum[$t1][0]++;
$booktypesum[$t1][1]+=$sum;
}
else{
$booktypesum[$t1][0]=1;
$booktypesum[$t1][1]=$sum;
}
if(isset($booktypesum[$t2])){
$booktypesum[$t2][0]++;
$booktypesum[$t2][1]+=$sum;
}
else{
$booktypesum[$t2][0]=1;
$booktypesum[$t2][1]=$sum;
}
}
echo "
";
}
return($newBookList);
//查找这些词出现在哪些书中结束
}
switch($op){
case "pre"://预查询
{
$time_start = microtime_float();
$searching=$arrWordList[count($arrWordList)-1];
$dictFileName=_FILE_DB_WORD_INDEX_;
PDO_Connect("sqlite:$dictFileName");
if(count($arrWordList)>1){
echo "";
foreach($arrWordList as $oneword){
echo $oneword."+";
}
echo "
";
}
echo "";
$query = "select word,count from wordindex where \"word_en\" like ".$PDO->quote($searching.'%')." OR \"word\" like ".$PDO->quote($searching.'%')." limit 0,50";
echo $query;
$Fetch = PDO_FetchAll($query);
$queryTime=(microtime_float()-$time_start)*1000;
echo "
搜索时间:$queryTime
";
$iFetch=count($Fetch);
if($iFetch>0){
for($i=0;$i<$iFetch;$i++){
$word=$Fetch[$i]["word"];
$count=$Fetch[$i]["count"];
echo "
";
}
}
echo "
";
break;
}
case "search":
{
if(count($arrWordList)>1){
$strQuery="";
foreach($arrWordList as $oneword){
$strQuery.="\"text\" like \"% {$oneword} %\" AND";
}
$strQuery = substr($strQuery,0,-3);
$dictFileName=_FILE_DB_PALITEXT_;
PDO_Connect("sqlite:$dictFileName");
$query = "SELECT book,paragraph, html FROM pali_text WHERE {$strQuery} LIMIT 0,20";
$Fetch = PDO_FetchAll($query);
echo "$query
";
$iFetch=count($Fetch);
foreach($Fetch as $row){
$html = $row["html"];
foreach($arrWordList as $oneword){
$html=str_replace($oneword,"{$oneword} ",$html);
}
echo "{$html}
";
}
return;
}
$strDictTab="字典 ";
//加语尾
$arrNewWord=array();
for ($row = 0; $row < count($case); $row++) {
$len=mb_strlen($case[$row][0],"UTF-8");
$end=mb_substr($word, 0-$len,NULL,"UTF-8");
if($end==$case[$row][0]){
$newWord=mb_substr($word, 0,mb_strlen($word,"UTF-8")-$len,"UTF-8").$case[$row][1];
$arrNewWord[$newWord]=1;
}
}
//加连读词尾
$arrUnWord=array();
for ($row = 0; $row < count($union); $row++) {
$len=mb_strlen($union[$row][0],"UTF-8");
foreach($arrNewWord as $x=>$x_value){
$end=mb_substr($x, 0-$len,NULL,"UTF-8");
if($end==$union[$row][0]){
$newWord=mb_substr($x, 0,mb_strlen($x,"UTF-8")-$len,"UTF-8").$union[$row][1];
$arrUnWord[$newWord]=1;
}
}
}
//将连读词和$arrNewWord混合
foreach($arrUnWord as $x=>$x_value){
$arrNewWord[$x]=1;
}
if(count($arrNewWord)>0){
$strQueryWord="(";
foreach($arrNewWord as $x=>$x_value) {
$strQueryWord.="'{$x}',";
}
$strQueryWord=mb_substr($strQueryWord, 0,mb_strlen($strQueryWord,"UTF-8")-1,"UTF-8");
$strQueryWord.=")";
}
else{
$strQueryWord="('{$word}')";
}
//查找实际出现的拼写
$time_start = microtime_float();
$dictFileName=_FILE_DB_WORD_INDEX_;
PDO_Connect("sqlite:$dictFileName");
$query = "select id,word,count from wordindex where \"word\" in $strQueryWord";
$arrRealWordList = PDO_FetchAll($query);
$countWord=count($arrRealWordList);
if($countWord==0){
echo "没有查到。可能是拼写有问题。
";
exit;
}
echo "";
//主显示区开始
echo "
";
//主显示区左侧开始
echo "
";
echo "
筛选 ";
echo "
共{$countWord}单词符合
";
$strQueryWordId="(";//实际出现的单词id查询字串
$aQueryWordList=array();//id 为键 拼写为值的数组
$aShowWordList=array();//拼写为键 个数为值的数组
$aShowWordIdList=array();//拼写为键 值Id的数组
for($i=0;$i<$countWord;$i++){
$value= $arrRealWordList[$i];
$strQueryWordId.="'{$value["id"]}',";
$aQueryWordList["{$value["id"]}"]=$value["word"];
$aShowWordList[$value["word"]]=$value["count"];
$aShowWordIdList[$value["word"]]=$value["id"];
}
$strQueryWordId=mb_substr($strQueryWordId, 0,mb_strlen($strQueryWordId,"UTF-8")-1,"UTF-8");
$strQueryWordId.=")";
$queryTime=(microtime_float()-$time_start)*1000;
//显示单词列表
echo "
";
echo "
全选
";
arsort($aShowWordList);
$i=0;
foreach($aShowWordList as $x=>$x_value) {
$wordid=$aShowWordIdList[$x];
echo "
";
echo "
";
echo $x.":".$x_value." ";
echo " ";
$i++;
}
echo "
";
echo "
";
//查找这些词出现在哪些书中
echo "
";
$booklist=render_book_list($strQueryWordId);
echo "
";
$wordInBookCounter=0;
$strFirstBookList="(";
foreach($booklist as $onebook){
$wordInBookCounter+=$onebook[1];
$strFirstBookList.="'".$onebook[0]."',";
if($wordInBookCounter>=20){
break;
}
}
$strFirstBookList=mb_substr($strFirstBookList, 0,mb_strlen($strFirstBookList,"UTF-8")-1,"UTF-8");
$strFirstBookList.=")";
echo "
";
//黑体字主显示区左侧结束
//黑体字主显示区右侧开始
echo "
";
//前20条记录
$time_start=microtime_float();
$dictFileName=_FILE_DB_PALI_INDEX_;
PDO_Connect("sqlite:$dictFileName");
$query = "SELECT book,paragraph, wordindex FROM word WHERE \"wordindex\" in $strQueryWordId and book in $strFirstBookList group by book,paragraph LIMIT 0,20";
$Fetch = PDO_FetchAll($query);
//echo "
$query
";
$queryTime=(microtime_float()-$time_start)*1000;
$iFetch=count($Fetch);
if($iFetch>0){
$dictFileName=_FILE_DB_PALITEXT_;
PDO_Connect("sqlite:$dictFileName");
for($i=0;$i<$iFetch;$i++){
$paliwordid=$Fetch[$i]["wordindex"];
$paliword=$aQueryWordList["{$paliwordid}"];
$book=$Fetch[$i]["book"];
$paragraph=$Fetch[$i]["paragraph"];
$bookInfo = _get_book_info($book);
$bookname=$bookInfo->title;
$c1=$bookInfo->c1;
$c2=$bookInfo->c2;
$c3=$bookInfo->c3;
echo "
";
echo "
$paliword
";
$path_1 = $c1.">";
if($c2 !== ""){
$path_1=$path_1.$c2.">";
}
if($c3 !== ""){
$path_1=$path_1.$c3.">";
}
$path_1=$path_1."《{$bookname}》>";
$query = "select * from pali_text where \"book\" = '{$book}' and \"paragraph\" = '{$paragraph}' limit 0,1";
$FetchPaliText = PDO_FetchAll($query);
$countPaliText=count($FetchPaliText);
if($countPaliText>0){
$path="";
$parent = $FetchPaliText[0]["parent"];
$deep=0;
$sFirstParentTitle="";
//循环查找父标题 得到整条路径
while($parent>-1){
$query = "select * from pali_text where \"book\" = '{$book}' and \"paragraph\" = '{$parent}' limit 0,1";
$FetParent = PDO_FetchAll($query);
$path="{$FetParent[0]["toc"]}>{$path}";
if($sFirstParentTitle==""){
$sFirstParentTitle = $FetParent[0]["toc"];
}
$parent = $FetParent[0]["parent"];
$deep++;
if($deep>5){
break;
}
}
$path=$path_1.$path."para. ".$paragraph;
echo "
$path
";
for($iPali=0;$iPali<$countPaliText;$iPali++){
if(substr($paliword,-1)=="n"){
$paliword=substr($paliword,0,-1);
}
$htmltext=$FetchPaliText[0]["html"];
$light_text=str_replace($paliword,"
{$paliword} ",$htmltext);
echo "
{$light_text}
";
}
//echo "
{$light_text}
";
echo "
Edit
";
}
echo "
";
}
}
$queryTime=(microtime_float()-$time_start)*1000;
echo "
搜索时间:$queryTime
";
echo "
";
//黑体字主显示区右侧结束
echo "
";
//黑体字主显示区结束
echo "
";
//查黑体字结束
echo "$strDictTab
";
break;
}
case "update":
$target=$_GET["target"];
switch($target){
case "bold";
$wordlist=$_GET["wordlist"];
$booklist=$_GET["booklist"];
$aBookList=ltrim($booklist,"(");
$aBookList=rtrim($aBookList,")");
$aBookList=str_replace("'","",$aBookList);
$aBookList=str_getcsv($aBookList);
$arrBookType=json_decode(file_get_contents("../public/book_name/booktype.json"));
//查找这些词出现在哪些书中
$newBookList=render_book_list($wordlist,$aBookList);
//前20条记录
$time_start=microtime_float();
$dictFileName=_FILE_DB_PALI_INDEX_;
PDO_Connect("sqlite:$dictFileName");
$query = "select * from word where \"wordindex\" in $wordlist and \"book\" in $booklist group by book,paragraph limit 0,20";
$Fetch = PDO_FetchAll($query);
//echo "$query
";
$queryTime=(microtime_float()-$time_start)*1000;
echo "搜索时间:$queryTime
";
$iFetch=count($Fetch);
if($iFetch>0){
$dictFileName=_FILE_DB_PALITEXT_;
PDO_Connect("sqlite:$dictFileName");
for($i=0;$i<$iFetch;$i++){
$paliword=$Fetch[$i]["wordindex"];
//$paliword=$wordlist["{$paliwordid}"];
$book=$Fetch[$i]["book"];
$bookInfo = _get_book_info($book);
$bookname=$bookInfo->title;
$c1=$bookInfo->c1;
$c2=$bookInfo->c2;
$c3=$bookInfo->c3;
$paragraph=$Fetch[$i]["paragraph"];
$path_1 = $c1.">";
if($c2 !== ""){
$path_1=$path_1.$c2.">";
}
if($c3 !== ""){
$path_1=$path_1.$c3.">";
}
$path_1=$path_1."《{$bookname}》>";
echo "";
echo "
《{$bookname}》 $c1 $c2
";
echo "
$paliword
";
$query = "select * from pali_text where \"book\" = '{$book}' and \"paragraph\" = '{$paragraph}' limit 0,20";
$FetchPaliText = PDO_FetchAll($query);
$countPaliText=count($FetchPaliText);
if($countPaliText>0){
for($iPali=0;$iPali<$countPaliText;$iPali++){
$path="";
$parent = $FetchPaliText[0]["parent"];
$deep=0;
$sFirstParentTitle="";
while($parent>-1){
$query = "select * from pali_text where \"book\" = '{$book}' and \"paragraph\" = '{$parent}' limit 0,1";
$FetParent = PDO_FetchAll($query);
if($sFirstParentTitle==""){
$sFirstParentTitle = $FetParent[0]["toc"];
}
$path="{$FetParent[0]["toc"]}>{$path}";
$parent = $FetParent[0]["parent"];
$deep++;
if($deep>5){
break;
}
}
$path=$path_1.$path."No. ".$paragraph;
echo "
$path
";
//echo "
$paliword
";
if(substr($paliword,-1)=="n"){
$paliword=substr($paliword,0,-1);
}
$light_text=str_replace($paliword,"
{$paliword} ",$FetchPaliText[$iPali]["html"]);
echo "
{$light_text}
";
echo "
Edit
";
}
}
echo "
";
}
}
break;
}
break;
}
?>