ホームページ  >  記事  >  バックエンド開発  >  Hon En オンラインイディオム辞書泥棒プログラム PHP バージョン_PHP チュートリアル

Hon En オンラインイディオム辞書泥棒プログラム PHP バージョン_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:19:03857ブラウズ

メイン関数は 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);
}

Hongen のクエリ インターフェイスはエスケープ エンコード後のイディオム エントリである過去の値を渡す必要があるため、上記の関数は主に PHP を使用して JavaScript のエスケープ エンコード処理を実装します。

コードをコピー コードは次のとおりです:
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, '< table class="english">');
$text=substr($text,$pos1,$pos2-$pos1);
//文字セットを元の UTF-8 から GB2312 に変換してくださいGB2312 の後に //IGNORE が追加され、特殊文字が見つかったときに変換を強制的に続行することに注意してください。これは、iconv 関数が漢字「一」に遭遇すると変換を終了するためです
$text=iconv('UTF-8','GB2312 //IGNORE', $text);
if (strpos($text,'source')){
return $text;
}
}

まず、エスケープエンコードです。 file_get_contents 関数は、「http://study.hongen.com/dict/ndsearchchengyu.aspx?type=exact&word=」ページでクエリされたコンテンツを取得し、substr を使用して不要な部分を削除します。前後の冗長なコードはイディオム エントリの説明部分です (ピンイン、説明、ソース、例文を含む)。最後に、Hongen によって返される結果は UTF-8 エンコードであることを忘れないでください。 GB2312 エンコードに変換するには、コメント テキストを //IGNORE パラメータで追加する必要があるという、iconv 関数のエンコード変換に関するバグを上で書きました。最後に、結果に「source」という単語が存在するかどうかを確認します。存在する場合は、関数全体が正常に実行され、取得したコンテンツをページに返すことができることを意味します。

プログラム本体が実装されているので、対応する場所でクエリ関数:chacyを呼び出すだけです。

http://www.bkjia.com/PHPjc/325337.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325337.html技術記事メイン関数は file_get_contents です。メイン プログラムは 2 つのセクションに分かれています。一緒に見てみましょう (元のコードは Mortal Blog からのものです。転載する場合は明記してください)。 コードをコピーします。 コードは次のとおりです。 functionescape($str){...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。