ブログから本文を取得するPHP 11

私用で前に作ったんですが、
今回別のアプリで流用するのでクラスにしたので
ついでに公開します。

//2015/02/18 リンク修正
ダウンロードはこれ
Class.GetTitleAndBody.zip

CSSレイアウトのDIVかテーブルレイアウトのTDで分割して
一番リンク率が低い
設定値よりリンク率が低い
設定値よりタグ率が低い
画像率が一番高い
文字数が規定以上
一番大きいパラグラフ
ここらへんにポイントを割り振ってはじき出してます

なので、ITMEDIAのようにサイドバーがえらく充実してるとことか
<div class=”brclear”>なんてひどいことしてるとことかは
うまくいきませんね。

使い方

こんなかんじです。

$Html = new GetTitleAndBody();
$Html->GetHtml(“http://dev.neoinspire.net”);
if(empty($Html->error)){
  echo $Html->title; //タイトルっぽいもの
  echo $Html->body; //本文っぽいもの
  echo $Html->body_length; //文字数
}else{
  echo $Html->error; //エラー出力
}

本文はbrやa、li,strong など残せそうなのは一応残してあるので、
純粋にテキストにしたいなら strip_tags($Html->body) で。

パラメータとか

コンストラクタのパラメータはこんなかんじです

1:$_body_len=有効にする記事の文字数の下限値(400ならマルチバイトで400文字以上じゃないと無効)
2:$_link_per=有効にするリンクの出現率の上限値(0.1ならリンクが1割以下じゃないと無効)
3:$_tag_per=有効にするHTMLタグの出現率の上限値(0.1ならタグが1割以下じゃないと無効)
4:$_html_point;=この点数を超えないと対象にならない(デフォルト8点)
5:$_weight=設定値の変更(Array)
  $_array[‘キー’]=評価点 の形式
    キーリスト
    max_link_weight;    //リンク率が一番小さい(デフォルト2点)
    link_weight;      //リンクが規定値より低い(デフォルト3点)
    tag_weight;      //タグ率が一番小さい(デフォルト1点)
    max_img_weight;    //画像率が高い(デフォルト1点)
    body_weight;      //文字数規定値より多い(デフォルト1点)
    body_length_weight;   //文字数が全DIVの中で一番多い(デフォルト2点)

第5パラメータは配列で
$array[‘body_weight’]=5
とかすれば
「文字数規定値より多い」という項目のポイントが5になる ってういかんじです。

最後

パラメータ変えなくても割と取れます!

//2015/02/18 リンク修正
ダウンロードはこれ
Class.GetTitleAndBody.zip


->