スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Simple HTML DOM Parserの使い方

今日もエロ動画を紹介しようと思いましたが、やっぱり何かおかしい、狂ってる。
と思い、プログラムの記事とエロ動画の記事は分けようと思います。

エロぺん動画のほうではサーバー代になればと思い、少しだけアフィリエイトも貼ってますが、このブログでは無意味にアフィリエイトするつもりは今のところまったく無いので、エロ動画の紹介は安心して(?)お楽しみ下さい。
もちろん、エロぺん動画や他にサービス立ち上げたら紹介はしますよ!

さて。

今回はSimple HTML DOM Parserのインストールと使い方です。

公式サイト
http://simplehtmldom.sourceforge.net

ダウンロード
http://sourceforge.net/projects/simplehtmldom/files/

英語マニュアル
http://simplehtmldom.sourceforge.net/manual.htm


インストール
simple_html_dom.phpを適当な場所に置き、使いたいPHPで呼び出します。

<?php
require_once('simple_html_dom.php');
?>

使い方
英語のマニュアルを見たり、Google先生に聞けば大体わかりますので、今回は具体的なソースに注釈を入れる形で説明します。

ソースコード

<?php
require_once('simple_html_dom.php');

$html = file_get_html('http://エロ動画サイトのURL');
$area = $html->find('div[id=contents]', 0);
foreach ($area->find('div.video') as $div) {
$vurl = $div->find('a', 0)->href;
$thum = $div->find('img', 0)->src;
$title = $div->find('h2.title', 0)->plaintext;

$vlist[] = array('vurl' => $vurl,
'thum' => $thum,
'title' => $title);
}
?>
説明付きソースコード

<?php
/*ライブラリの関数を呼べるように、ライブラリを読み込む*/
require_once('simple_html_dom.php');

/*エロ動画サイトのURLにアクセスして、ソースを$htmlに入れる*/
$html = file_get_html('http://エロ動画サイトのURL');
/*$htmlの中から、divタグでidがcontentsを検索し、
見つかった0番目(最初のやつ)を$areaに入れる*/
$area = $html->find('div[id=contents]', 0);
/*さらに、$areaの中でdivタグのclassがvideoのやつを検索し、
見つかったら$divに入れる。見つからなくなるまで繰り返す*/
foreach ($area->find('div.video') as $div) {
/*$divの中で、最初に出てきたaタグのhrefを$vurlに入れる*/
$vurl = $div->find('a', 0)->href;
/*$divの中で、最初に出てきたimgタグのsrcを$thumに入れる*/
$thum = $div->find('img', 0)->src;
/*$divの中で、最初に出てきたh2タグでクラスがtitleのテキストを$titleに入れる*/
$title = $div->find('h2.title', 0)->plaintext;

/*$vurl、$thum、$titleに入れたものをセットにして、$vlistに追加する*/
$vlist[] = array('vurl' => $vurl,
'thum' => $thum,
'title' => $title);
}
?>

今回のはサンプルなので、特にエラーチェックや複雑な処理は飛ばしてます。
でも、これだけでもキチンと動作するものです。

何をやっているかというと、
・あるエロ動画紹介サイトにアクセスし、
・そこのHTMLを解析し、特定のタグの特定の情報だけゲット
しているのです。
データを取得しているだけで、その情報を保存したり見れるようにしてないので、特に意味のないプログラムです。

細かい説明
Simple HTML DOM Parserの関数は、「file_get_html」「find」ですね。
簡単な英語が分かれば問題ないと思います。findは「見つける」って意味です。

最初に$htmlにfile_get_htmlしてますが、$htmlには、取得したホームページのHTMLデータが入ってます。といっても、普通にテキストで書いたHTMLではなく、Simple HTML DOM Parserが扱いやすくした特殊なデータです。上級者向けにいうと、DOMですね。

そして、この$htmlの中身には、関数も入ってます。

それがfindです。
変数ってほんと何でも入って便利ですね。
find関数の使い方は、上記にもありましたように、

見つかった要素 = find(要素の指定, 何個目に見つかったやつが欲しいか);

という感じです。
これでHTML内のタグを探してます。
戻り値は、発見した場所を切り出したような要素ですので、そのタグの内側だけになります。
ちなみに、findの2番目の引数は、0が最初で、1が2番目、2なら3番目・・となります。
また、指定しなかった場合、発見した要素が1つずつ別々に入った「配列」の戻り値に入ります。

配列とは、変数が「箱」だとしたら、配列は「棚」にあたります。
スーパーマーケットのお菓子売り場を思い浮かべて下さい。お菓子が入った箱がたくさん並んでますね。その棚が、配列です。ちょっと難しいので、次回解説します。

foreachは、その配列を1つずつ処理したい時に使えます。これはPHPの命令です。
foreach( 配列 as 変数) {
〜ここで変数の値見れるよん〜
}
という構文です。配列の中身が1つずつ順番で変数に入ってきます。
"{"から"}"まで、延々と繰り返し、配列の最後まで行ったら終わりです。

あと、plaintextというのは、単純にHTMLタグ内のテキストで、HTMLタグを含みません。

$vlist[] = array(・・・);というのも配列なので、この説明は次回に。
関連記事

コメントの投稿

非公開コメント

プロフィール

エロぺんぎん

管理人:エロぺんぎん
不純な動機でプログラマーになった男、エロぺんぎんです。ブラザー達を猛烈に応援したい気持ちと、自分もプログラマーとして成長したい思いで、当ブログを立ち上げました。
エロぺん動画を運営しております。

検索フォーム
Twitter
最新記事
最新コメント
カテゴリ
リンク
RSSリンク
エロぺん動画で人気の動画
人気の記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。