主要函數是file_get_contents,主程式分成兩段,跟我一起看過來(凡人部落格原創程式碼,轉載請註明)。
複製程式碼 程式碼如下:
function escape($str){
preg_match_all('/[x80-xff].|[x01-x7f]+/', str $ar = $r[0];
foreach($ar as $k=>$v){
if(ord($v[0]) $ar[$k] = rawurlencode($v) ;
else
$ar[$k] = '%u'.bin2hex(iconv('GB2312','UCS-2',$v));
}
return join('',$ar);
}
上面的函數主要是用php實作JavaScript的escape編碼過程,因為洪恩的查詢介面需要傳遞過去的值是經過escape編碼後的成語條目。
複製程式碼 程式碼如下:
function chacy($chengyu){
$chengyu=escape($chengyu);
$text=@file_get_contentsyu=escape($chengyu);
$text=@file_ /ndsearchchengyu.aspx?type=exact&word='.$chengyu);
$pos1=strpos($text,'
');
$pos2=strrpos($text,'');
$text =substr($text,$pos1,$pos2-$pos1);
//把字元集由原來的UTF-8轉換到GB2312,注意在GB2312之後加上了//IGNORE,強制遇到特殊字元也繼續轉換,因為遇到漢字「一」的時候iconv函數會終止轉換
$text=iconv('UTF-8','GB2312//IGNORE',$text);
if (strpos($text,'出處')){
return $text;
}
}
上面是自己定義的成語查詢函數,首先escape編碼要查詢的成語條目,然後使用file_get_contents函數取得「http://study.hongen.com/ dict/ndsearchchengyu.aspx?type=exact&word=」頁面查詢的內容,使用substr去除前後一些不需要的多餘代碼,中間就是成語條目的解釋部分(包括拼音、解釋、出處、例句),最後記得要轉碼,洪恩回傳的結果是UTF-8編碼,一般情況下我們需要轉換為GB2312編碼,上面我寫了一個有關iconv函數轉換編碼有時會出現bug的註釋文本,需要加上一個//IGNORE參數。最後判斷結果中是否存在「出處」二字,有的話說明整個函數運作成功,可以把取得到的內容return給頁面了。
程式主體實作完成,只要在對應位置呼叫查詢函數:chacy 就可以了。
以上就介紹了線上成語字典 洪恩線上成語字典小偷程式php版,包括了線上成語字典方面的內容,希望對PHP教程有興趣的朋友有所幫助。