メイン関数は file_get_contents です。メイン プログラムは 2 つのセクションに分かれています (元のコードは Mortal Blog からのものです。転載する場合は明記してください)。
コードをコピー コードは次のとおりです:
functionescape($str){
preg_match_all('/[x80-xff].|[x01-x7f]+/',$str,$r );
$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 のエスケープ エンコード処理を実装しています。これは、Hongen のクエリ インターフェイスがエスケープ エンコード後のイディオム エントリである過去の値を渡す必要があるためです。
コードをコピー コードは次のとおりです:
function Chacy($chengyu){
$chengyu=escape($chengyu);
$text=@file_get_contents('http://study.hongen. com/dict /ndsearchchengyu.aspx?type=exact&word='.$chengyu);
$pos1=strpos($text,'
');
$pos2=strrpos($text,'' );
$text=substr($text,$pos1,$pos2-$pos1);
//文字セットを元の UTF-8 から GB2312 に変換して、特殊文字を強制するために //IGNORE が追加されることに注意してください。また、iconv 関数は漢字「一」
$text=iconv('UTF-8','GB2312//IGNORE',$text); に遭遇すると変換を終了するため、変換を続けます。 (strpos($text, 'Source')){
return $text;
}
}
上記は、クエリ対象のイディオム エントリを最初にエンコードしてから、 file_get_contents 関数で「http://study.hongen. com/dict/ndsearchchengyu.aspx?type=exact&word=」ページ クエリのコンテンツを取得します。substr を使用して前後の不要な冗長コードを削除します。真ん中はイディオム エントリの説明部分 (ピンイン、説明、ソース、例文を含む) 最後に、Hong En によって返される結果は、通常、GB2312 エンコードに変換する必要があることを覚えておいてください。 , iconv関数でエンコーディングを変換する際に時々発生するバグについてコメント文を書きました//IGNOREパラメータを追加する必要があります。最後に、結果に「source」という単語が存在するかどうかを確認します。存在する場合は、関数全体が正常に実行され、取得したコンテンツをページに返すことができることを意味します。 プログラム本体が実装されているので、対応する場所でクエリ関数:chacyを呼び出すだけです。
上記は、オンライン慣用句辞書Hong En オンライン慣用句辞書泥棒プログラム PHP バージョンを紹介しました。オンライン慣用句辞書の内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。