おはようございます。朝早くから質問させていただきます。
他サイトやブログで公開されているrssフィードなどで、タイトルを取得し、公開するいわゆるアンテナサイトというものがありますが
あのようなサイトはどうやって更新されたことを調べているのでしょうか?
つまり、phpのsimplexmlではこちら側(後、A)からxmlファイルを取りにいくだけであり、相手側(後、B)が更新したのち、Aサイトのスクリプトを実行して、xmlフィードを取りに行き、Aサイトを更新するということになると思うのですが、ちらほらとみかけるアンテナサイトなどでは、Bブログが更新されるのとほぼ同時に、Aサイト側にもBブログで更新された記事のタイトルが羅列されております。
このようなライブラリやスクリプト、もしくは関数、またはその方法などが存在するのなら教えていただけないでしょうか?よろしくお願いします。
No.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;
}
?>
ありがとうございます。完璧に実行できました。
このような綺麗なスクリプトを書けるように日々精進していきたいと思います。
それでは、失礼します
No.1
- 回答日時:
サイトやブログのRSSフィードを取得すると全てのフィードを取得してしまうことになるので、おそらくXML-RPC等を使用して定期的にPingサーバから更新情報を取得しているのだと思います。
#私自身、Pingサーバから更新情報を受信したことないのであくまで推測ですが・・・。
http://ping.bloggers.jp/api.html
上記URLでAPIを公開しているので一度参照されてはいかがでしょうか?
他のPingサーバでもAPIを公開しているところがあると思います。
ご回答ありがとうございます。返信が遅くなりまことに申し訳ございません。
pingサーバーのapiについてですが・・・・、どうやら知識と技術不足のため、理解ができずにおわってしまいましたが
このようなやり方もあることを教えてくださり、本当にありがとうございました。
失礼いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ミュージックのアートワークを...
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
(Win32)ファイルパスから物理ド...
-
VBAでPDFファイルの文書のプロ...
-
Perlで基本認証を済まし、ペー...
-
「取得先」という表現について
-
IPアドレスとMACアドレスを取得...
-
APIから取得した情報の文字化け...
-
アクセスの度にIPアドレスを変...
-
作りたいプログラムがあります
-
format関数について
-
PHP の cURL で、htmlを画像へ...
-
【PHP】SESSION変数の競合を...
-
excel access連携 このテーブル...
-
バッチファイルでpingの結果を...
-
【C#】DataGridViewの最大列数...
-
<A href ~で複数の値を渡したい
-
VBA コレクションに2次元配列...
-
findstrのerrorlevel
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
ローカルのコンピュータ名を取...
-
築24年の中古住宅は住宅ローン...
-
VBAでPDFのアクティブページ番...
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
ミュージックのアートワークを...
-
format関数について
-
【VBA】EXCELブックを開かずに...
-
アクセスの度にIPアドレスを変...
-
積立投資してます。現在平均取...
-
VB or VBScriptでPCの製造番号...
-
C#で特定LANアダプタの状態を取...
-
VBAでできますか?
-
IPアドレスとMACアドレスを取得...
-
表示している画面サイズの取得方法
-
VBS「開いているページ」のURL...
-
IEを使わないでhtmlテキストを...
おすすめ情報