おはようございます。朝早くから質問させていただきます。

他サイトやブログで公開されているrssフィードなどで、タイトルを取得し、公開するいわゆるアンテナサイトというものがありますが

あのようなサイトはどうやって更新されたことを調べているのでしょうか?

つまり、phpのsimplexmlではこちら側(後、A)からxmlファイルを取りにいくだけであり、相手側(後、B)が更新したのち、Aサイトのスクリプトを実行して、xmlフィードを取りに行き、Aサイトを更新するということになると思うのですが、ちらほらとみかけるアンテナサイトなどでは、Bブログが更新されるのとほぼ同時に、Aサイト側にもBブログで更新された記事のタイトルが羅列されております。

このようなライブラリやスクリプト、もしくは関数、またはその方法などが存在するのなら教えていただけないでしょうか?よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

全部RSSフィードを取ってくると、大量のXMLを頻繁に見に行く事が


難しいので、HTMLのヘッダ情報からデータが更新されているかを
を取ってくるのがよいのではないでしょうか。
以下の関数なら、限りなく短い時間で更新時間が分かります。

<?
$time = last_modified("okwave.jp", "/rss.php");

echo date("Y-m-d H:i:s", $time) . "\n";

function last_modified($hostname, $path)
{
$time = -1;

if(!$fp = fsockopen($hostname, 80))
{
return -1;
}

$out = "HEAD http://{$hostname}{$path} HTTP/1.0\n\n";
fwrite($fp,$out);
while (!feof($fp)) {
if(ereg("Last-Modified: (.+)", fgets($fp, 128), $regs))
{
$time = strtotime($regs[1]);
fclose($fp);
return $time;
}
}
fclose($fp);
return $time;
}
?>
    • good
    • 0
この回答へのお礼

ありがとうございます。完璧に実行できました。
このような綺麗なスクリプトを書けるように日々精進していきたいと思います。

それでは、失礼します

お礼日時:2009/05/27 05:41

サイトやブログのRSSフィードを取得すると全てのフィードを取得してしまうことになるので、おそらくXML-RPC等を使用して定期的にPingサーバから更新情報を取得しているのだと思います。



#私自身、Pingサーバから更新情報を受信したことないのであくまで推測ですが・・・。

http://ping.bloggers.jp/api.html

上記URLでAPIを公開しているので一度参照されてはいかがでしょうか?
他のPingサーバでもAPIを公開しているところがあると思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。返信が遅くなりまことに申し訳ございません。
pingサーバーのapiについてですが・・・・、どうやら知識と技術不足のため、理解ができずにおわってしまいましたが

このようなやり方もあることを教えてくださり、本当にありがとうございました。

失礼いたします。

お礼日時:2009/05/25 03:39

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います


人気Q&Aランキング

おすすめ情報