".$strWord."
"); $doubleword="kkggccjjṭṭḍḍttddppbb"; $len=mb_strlen($strWord,"UTF-8"); if($len>5){ for($i=$len-1;$i>3;$i--){ $str1=mb_substr($strWord,0,$i,"UTF-8"); $str2=mb_substr($strWord,$i,NULL,"UTF-8"); //echo "$str1 + $str2 = "; if(isExsit($str1)){ //echo "match"; $left2=mb_substr($str2,0,2,"UTF-8"); if(mb_strpos($doubleword,$left2,0,"UTF-8")!==FALSE){ $str2=mb_substr($str2,1,NULL,"UTF-8"); } return array($str1,$str2); } else{ $str1=$str1."a"; if(isExsit($str1)){ //echo "match"; $left2=mb_substr($str2,0,2,"UTF-8"); if(mb_strpos($doubleword,$left2,0,"UTF-8")!==FALSE){ $str2=mb_substr($str2,1,NULL,"UTF-8"); } return array($str1,$str2); } } } //not found if(mb_substr($strWord,0,1,"UTF-8")=="ā"){ $strWord='a'.mb_substr($strWord,1,NULL,"UTF-8"); for($i=$len-1;$i>3;$i--){ $str1=mb_substr($strWord,0,$i,"UTF-8"); $str2=mb_substr($strWord,$i,NULL,"UTF-8"); //echo "$str1 + $str2 = "; if(isExsit($str1)){ //echo "match"; $left2=mb_substr($str2,0,2,"UTF-8"); if(mb_strpos($doubleword,$left2,0,"UTF-8")!==FALSE){ $str2=mb_substr($str2,1,NULL,"UTF-8"); } return array($str1,$str2); } else{ $str1=$str1."a"; if(isExsit($str1)){ //echo "match"; $left2=mb_substr($str2,0,2,"UTF-8"); if(mb_strpos($doubleword,$left2,0,"UTF-8")!==FALSE){ $str2=mb_substr($str2,1,NULL,"UTF-8"); } return array($str1,$str2); } } } } //not found if(mb_substr($strWord,0,1,"UTF-8")=="e"){ $strWord='i'.mb_substr($strWord,1,NULL,"UTF-8"); for($i=$len-1;$i>3;$i--){ $str1=mb_substr($strWord,0,$i,"UTF-8"); $str2=mb_substr($strWord,$i,NULL,"UTF-8"); //echo "$str1 + $str2 = "; if(isExsit($str1)){ //echo "match"; $left2=mb_substr($str2,0,2,"UTF-8"); if(mb_strpos($doubleword,$left2,0,"UTF-8")!==FALSE){ $str2=mb_substr($str2,1,NULL,"UTF-8"); } return array($str1,$str2); } else{ $str1=$str1."a"; if(isExsit($str1)){ //echo "match"; $left2=mb_substr($str2,0,2,"UTF-8"); if(mb_strpos($doubleword,$left2,0,"UTF-8")!==FALSE){ $str2=mb_substr($str2,1,NULL,"UTF-8"); } return array($str1,$str2); } } } } } return(FALSE); } switch($op){ case "pre"://预查询 echo ""; $query = "SELECT word,count(*) as co from dict where \"eword\" like ? OR \"word\" like ? group by word order by length limit 0,100"; $Fetch = PDO_FetchAll($query,array($word.'%',$word.'%')); $iFetch=count($Fetch); if($iFetch>0){ for($i=0;$i<$iFetch;$i++){ $outXml = ""; $word=$Fetch[$i]["word"]; $outXml = $outXml."$word"; $outXml = $outXml."".$Fetch[$i]["co"].""; $outXml = $outXml.""; echo $outXml; } } echo ""; break; case "search": //直接查询 $query = "SELECT dict.dict_id,dict.mean,info.shortname from dict LEFT JOIN info ON dict.dict_id = info.id where \"word\" = ? limit 0,30"; $Fetch = PDO_FetchAll($query,array($word)); $iFetch=count($Fetch); $count_return+=$iFetch; if($iFetch>0){ for($i=0;$i<$iFetch;$i++){ $mean=$Fetch[$i]["mean"]; $dictid=$Fetch[$i]["dict_id"]; $dict_list[$dictid]=$Fetch[$i]["shortname"]; $outXml = "
"; $outXml = $outXml.""; $outXml = $outXml."
".$Fetch[$i]["shortname"]."
"; $outXml = $outXml."
".$mean."
"; $outXml = $outXml."
"; echo $outXml; } } //去除尾查 $newWord=array(); for ($row = 0; $row < count($case); $row++) { $len=mb_strlen($case[$row][1],"UTF-8"); $end=mb_substr($word, 0-$len,NULL,"UTF-8"); if($end==$case[$row][1]){ $base=mb_substr($word, 0,mb_strlen($word,"UTF-8")-$len,"UTF-8").$case[$row][0]; if($base!=$word){ if(isset($newWord[$base])){ $newWord[$base] .= "
".$case[$row][2]; } else{ $newWord[$base] = $case[$row][2]; } } } } if(count($newWord)>0){ foreach($newWord as $x=>$x_value) { $query = "SELECT dict.dict_id,dict.mean,info.shortname from dict LEFT JOIN info ON dict.dict_id = info.id where \"word\" = ? limit 0,30"; $Fetch = PDO_FetchAll($query,array($x)); $iFetch=count($Fetch); $count_return+=$iFetch; if($iFetch>0){ echo $x . ":
$x_value
"; for($i=0;$i<$iFetch;$i++){ $mean=$Fetch[$i]["mean"]; $dictid=$Fetch[$i]["dict_id"]; $dict_list[$dictid]=$Fetch[$i]["shortname"]; $outXml = "
"; $outXml = $outXml.""; $outXml = $outXml."
".$Fetch[$i]["shortname"]."
"; $outXml = $outXml."
".$mean."
"; $outXml = $outXml."
"; echo $outXml; } } } } //去除尾查结束 //模糊查 //模糊查结束 //查连读词 if($count_return<2){ echo "Junction:
"; $newWord=array(); for ($row = 0; $row < count($un); $row++) { $len=mb_strlen($un[$row][1],"UTF-8"); $end=mb_substr($word, 0-$len,NULL,"UTF-8"); if($end==$un[$row][1]){ $base=mb_substr($word, 0,mb_strlen($word,"UTF-8")-$len,"UTF-8").$un[$row][0]; $arr_un=explode("+",$base); foreach ($arr_un as $oneword) { echo "$oneword + "; } echo "
"; } } } //查内容 if($count_return<2){ $word1=$org_word; $wordInMean="%$org_word%"; echo "include $org_word:
"; $query = "SELECT dict.dict_id,dict.word,dict.mean,info.shortname from dict LEFT JOIN info ON dict.dict_id = info.id where \"mean\" like ? limit 0,30"; $Fetch = PDO_FetchAll($query,array($wordInMean)); $iFetch=count($Fetch); $count_return+=$iFetch; if($iFetch>0){ for($i=0;$i<$iFetch;$i++){ $mean=$Fetch[$i]["mean"]; $pos=mb_stripos($mean,$word,0,"UTF-8"); if($pos){ if($pos>20){ $start=$pos-20; } else{ $start=0; } $newmean=mb_substr($mean,$start,100,"UTF-8"); } else{ $newmean=$mean; } $pos=mb_stripos($newmean,$word1,0,"UTF-8"); $head=mb_substr($newmean,0,$pos,"UTF-8"); $mid=mb_substr($newmean,$pos,mb_strlen($word1,"UTF-8"),"UTF-8"); $end=mb_substr($newmean,$pos+mb_strlen($word1,"UTF-8"),NULL,"UTF-8"); $heigh_light_mean="$head$mid$end"; $outXml = "
"; $outXml = $outXml."
".$Fetch[$i]["word"]."
"; $outXml = $outXml."
".$Fetch[$i]["shortname"]."
"; $outXml = $outXml."
".$heigh_light_mean."
"; $outXml = $outXml."
"; echo $outXml; } } } //拆复合词 $splitWord=$word; $part=array(); if($count_return<2){ echo "Try to split comp:
"; while(($split=mySplit($splitWord))!==FALSE){ array_push($part,$split[0]); $splitWord=$split[1]; } if(count($part)>0){ array_push($part,$splitWord); $newPart=ltrim(array_reduce($part,"myfunction"),"+"); echo $newPart; } } echo "
"; foreach($dict_list as $x=>$x_value) { echo "$x_value"; } echo "
"; break; } ?>