header

PHPでURL上のコンテンツを読み込む

(1/3)

PHPはファイル操作を行うこともできる。PHPが面白いのは、ローカルマシンにあるファイルと、インターネット上(URL表記)のコンテンツを同等に扱うことができる点だ。
そこで今回は、最近βテストがはじまったGoogle News日本語からリアルタイムでコンテンツを読み込み、タイトルだけ抽出して表示するプログラムを紹介する。

Google News日本語版からタイトルだけ抽出し、画面に表示するプログラム

0001: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
0002: <html>
0003: <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
0004: <title>Googleニュースより</title>
0005: <body>
0006: <p><b>Googleニュースより</b>-
0007: <?=date("n月j日G時\n") ?></p>
0008: <?php
0009: // ここからPHPプログラム =======================================================
0010: /** googlenews.php
0011:  * Google Newsからヘッダのみ取り出して表示する
0012:  * @copyright   (c)studio pahoo
0013:  * @author      パパぱふぅ
0014:  * @version     2.1  2004/10/13
0015: */
0016: 
0017: /**
0018:  * Google NewsのURL
0019:  * @global  String $InputFile
0020: */
0021: $InputFile = "http://news.google.co.jp/news?ned=tjp";
0022: 
0023: /**
0024:  * ニュースのヘッダにマッチする正規表現
0025:  * @global  String $Pattern
0026: */
0027: $Pattern = "/(<a.*id=r[0-9|\-]+><b>)(.*)(<\/b><\/a>)/";
0028: 
0029: //メインプログラム
0030: mb_internal_encoding("SJIS");       //Google newsのエンコーディングはShift_JIS
0031: 
0032: $fp = fopen($InputFile, "r");
0033: if ($fp == FALSE) {                 //ファイルオープン・エラー
0034:     echo "error:Google Newsを読み込めませんでした!";
0035:     exit();
0036: }
0037: //コンテンツを1行ずつ読み込んで処理する
0038: while (!feof($fp)) {
0039:     $s = fgets($fp);
0040:     $n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
0041:     //マッチングしたすべての箇所を表示する
0042:     for ($i = 0; $i < $n; $i++)     print "・" . $ar[$i][2] . "<br />\n";
0043: }
0044: fclose($fp);
0045: // ここまでPHPプログラム =======================================================
0046: ?>
0047: <p><img src="http://www.google.co.jp/logos/powered_by_google_135x35.gif" /></p>
0048: </body>
0049: 

プログラムを実行する