http://developer.hatena.ne.jp/ja/documents/keyword/apis/autolink
uri : http://d.hatena.ne.jp/xmlrpc encoding : utf8 methodName : hatena.setKeywordLink parameters : 以下を参照 body(string): キーワードを抽出するテキストを指定します。 score(int): 0〜50。キーワードスコアのしきい値を指定します。指定された値よりもスコアが大きいキーワードのみが抽出されます。省略可。 cname(array): キーワードのカテゴリーを指定します。指定があった場合、「一般」と指定されたカテゴリーのキーワードが抽出されます。指定が無かった場合は、全カテゴリーとなります。book,music,movie,web,elec,animal,anime,food,sports,game,comic,hatena,clubが指定可能です。省略可。 a_target(string): アンカー(a)タグのtarget属性値を指定します。省略可。例:_blank a_class(string): アンカー(a)タグのclass属性値を指定します。省略可。例:keyword mode(string): 値として lite を指定すると、キーワード自動リンクの結果ではなく、自動リンクに使われるキーワード一覧が返却されます。省略可
require_once 'XML/RPC.php'; $text = "日本語の文化と日本語のテスト"; $out_text = hatena_keyword_link($text); print_r($out_text); function hatena_keyword_link( $body ){ $body = mb_convert_encoding( $body,'utf8',mb_internal_encoding() ); $params = new XML_RPC_Value(array( "body" => new XML_RPC_Value( $body , "string" ), "score" => new XML_RPC_Value( 0 , "int" ), "a_target" => new XML_RPC_Value( '_blank', "string"), "a_class" => new XML_RPC_Value( 'keyword', "string") ), "struct"); $msg = new XML_RPC_Message("hatena.setKeywordLink", array($params)); $client = new XML_RPC_Client( "/xmlrpc" , "d.hatena.ne.jp", 80 ); $response = $client->send($msg); if (!$response->faultCode()) { $val = $response->value(); $data = XML_RPC_decode($val); return $data; } else { return PEAR::raiseError( $response->faultCode(), $response->faultString() ); } }
実行結果
<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%C6%FC%CB%DC%B8%EC">日本語</a>の<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%CA%B8%B2%BD">文化</a>と<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%C6%FC%CB%DC%B8%EC">日本語</a>の<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%A5%C6%A5%B9%A5%C8">テスト</a>