RSSとXMLファイルを扱う場合。
さらに、配列の構造を変更しアクセスしやすくする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
$wsql->query('SELECT text FROM item') $sub_wsql->query('SELECT * FROM *'); $sub_wsql->convert_tagname_to_key(); /* this function converts an array that looks like this: $array[0]['tagname'] = 'title'; $array[0]['text'] = 'example 1'; $array[1]['tagname'] = 'link'; $array[1]['text'] = 'http://www.example.org/'; $array[2]['tagname'] = 'description'; $array[2]['text'] = 'description bla'; $array[2]['fulltext'] = '1'; // additional attribute ->; to: $array['title']['text'] = 'example 1'; $array[1]['link']['text'] = 'http://www.example.org/'; $array[2]['description']['text'] = 'description bla'; $array[2]['description']['fulltext'] = '1'; // additional attribute this makes the array easier to access */ |
—–サンプルスクリプト—-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
connect('url', 'http://example.com/rss.php')){ print 'Error while connecting: ' . $wsql->error; exit; } if (!$wsql->query('SELECT text FROM item')){ print "Query error: " . $wsql->error; exit; } foreach($wsql->fetch_objects() as $obj){ $sub_wsql = new htmlsql(); $sub_wsql->connect('string', $obj->text); if (!$sub_wsql->query('SELECT * FROM *')){ print "Query error: " . $wsql->error; exit; } $sub_wsql->convert_tagname_to_key(); $item = $sub_wsql->fetch_array(); print "<a href="">"; print $item['title']['text'] . "</a><br />n"; } ?> |
1. $wsql = new htmlsql();
で、htmlsqlクラスのオブジェクトを作成し、$wsqlに代入。
2. $wsql->connect(‘url’, ‘http://example.com/rss.php’)){
で、第二引数をURLとしてアクセスします。
今回はrssのページを対象としている。
3. $wsql->query(‘SELECT text FROM item’);
で、2.で得たURLに対しquery()の第一引数で指定したSQL文を実行します。
ここでは、itemタグから内容(text)だけを取り出します。
4. for($wsql->fetch_objects() as $obj)
で、3.で得たSQLクエリの結果の各タグについて処理をしていきます。
5. $sub_wsql = new htmlsql();
3.で得たタグ毎に新たにhtmlsqlクラスのオブジェクトを作成して$sub_wsqlに代入します。
6. $sub_wsql->connect(‘string’, $obj->text);
3.で得たタグの内容(text)の文字列に対してアクセスします。
7. $sub_wsql->query(‘SELECT * FROM *’);
3.で得たタグ内のすべてのタグのすべての情報を得ます。
8. $sub_wsql->convert_tagname_to_key();
$sub_wsqlオブジェクトのアクセスキーをtagnameとする。
9. $item = $sub_wsql->fetch_array();
[アクセスキー変換前]
print “<a href=”” . $item[1][‘text’] . “”>”;
print $item[0][‘text’] . “</a><br/>n”;
[アクセスキー変換後]
print “<a href=”” . $item[‘link’][‘text’] . “”>”;
print $item[‘title’][‘text’] . “</a><br/>n”;
/