• ベストアンサー

外部サーバーのページの最終更新日時を表示させたい

今まで、自分のサイト・サーバー内の日記(自家CGI)の、最新記事だけトップページにSSIで表示していました。 今度、日記にブログ(外部サーバー)を取り入れたのですが、それがいつ更新されたのかを自分のサイトのトップページに表示させる方法はありますでしょうか? SSIは外部サーバーの為勿論使えませんよね・・・。 このカテゴリであっているのかわかりませんが、よろしくオネガイシマス。m(ーvー)m

  • asrun
  • お礼率33% (4/12)
  • HTML
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#25358
noname#25358
回答No.2

 えとですね……。 --------------------------○ #!/usr/local/bin/perl $host = 'www.provider.com'; $path = '/~account/index.htm'; use Socket; $address = inet_aton($host) || return -1; $sockaddress = sockaddr_in(80, $address); socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || return -1; connect( SOCK, $sockaddress ) || return -1; binmode(SOCK); select(SOCK); $| = 1; select(STDOUT); print SOCK "HEAD $path HTTP/1.0\r\n"; print SOCK "Host: $host\r\n"; print SOCK "Connection: close\r\n"; print SOCK "\r\n"; @head = <SOCK>; close(SOCK); map{if(/^date:\s*([^\r\n]+)[\r\n]*$/i){print $1;}}@head; print '&nbsp;'; exit; --------------------------○  このプログラムを hizuke.cgi とかファイルに保存して、パーミッションを 755 にして、あとはSSIとして呼び出せばOKのはずです。  でも巧く動かなかったらあしからず(^_^;

asrun
質問者

お礼

追記ありがとうございます! がんばってみたのですが、InternalServerErrorから抜け出せませんでした(汗 ですが、BlogのRDFファイルの更新状況を表示できるプログラムを見つけまして、なんとか質問の希望のことはできるようになりました! わざわざプログラム書いていただいたのに申し訳ありません、ありがとうございました。 また何かありましたらお願いします。

その他の回答 (1)

noname#25358
noname#25358
回答No.1

 SSIでやる方法はあるにはありますが……。  ソケット開いて HTTP プロトコルの HEAD メソッドを発行するとか、そういう方法です。  ……分かります?(^_^; --------------------------○ $host = 'www.provider.com'; $path = '/~account/index.htm'; use Socket; $address = inet_aton($host) || return -1; $sockaddress = sockaddr_in(80, $address); socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || return -1; connect( SOCK, $sockaddress ) || return -1; binmode(SOCK); select(SOCK); $| = 1; select(STDOUT); print SOCK "HEAD $path HTTP/1.0\r\n"; print SOCK "Host: $host\r\n"; print SOCK "Connection: close\r\n"; print SOCK "\r\n"; @head = <SOCK>; close(SOCK); --------------------------○  多分これでイケるんじゃないかなーとか思っちゃったりしますが(^_^;  $host と $path に取得したいURLに関する情報をセットすると、最後の @head の中に、相手先の更新日付とかそういうのがHTTP形式で戻ってくるハズ。  ハズ、ハズ(^_^;  動かなかったらデバッグは自分でやってください(笑)

asrun
質問者

補足

さっそくのご回答ありがとうございます! ところで、これは*.cgi等のファイルにすればいいのでしょうか? そしてそのCGIをSSIで読み込めば更新日時が表示されるのでしょうか? 半分わかったようなわかんないような…ド素人ですみませんが、よろしくおねがいします(>x<;)

関連するQ&A

  • SSIのようにして、CGIをページ内に表示させる

     通常のHTMLページにCGIを読み込むにはSSIなどの方法がありますが、  SSIを使っているページは左、中央、右といったように分かれていて、呼び出した日記を中央に表示させるとします。これだとトップページはSSIで問題なく表示出来ますが、その表示された日記にあるリンク(先月の日記、とか)をクリックして先月のページを表示させると、SSIの仕組みからして当然、最初に読み込んだ際のレイアウトは無視され、左、右のカラムは消えて、ただの日記だけのページになってしまいます。  iframeなど、別の表示方法もありますが、iframeなどのフレームはSEOの観点から避けたいと思っています。  SSIでは無理だとすると、このようなリンク先まで最初の読み込みレイアウトを維持して表示する方法はあるでしょうか。

    • ベストアンサー
    • HTML
  • トップページに、ある1つのカテゴリの記事しか表示できないようにする方法を教えてください

    seesaaを使っています。 トップページに、ある1つのカテゴリの記事しか表示できないようにする方法を教えてください。 例えば、日記の場合、トップページには日記だけしか表示されず、他の記事を見たいときはカテゴリから選ぶ、という形式にしたいのです。 また、日記以外の記事を新しく書いても、トップページには表示されないようにしたいです。

  • 最終更新日の表示

    「index.shtml」というページから「b」というフォルダ内にある  「1.html」 「2.html」 「3.html」 への3つのリンクが張って張るんですが、「index.shtml」を表示させたときに 各リンク先ページの最終更新日を「index.shtml」に表示させたいのですが [an error occurred while processing this directive] と表示され更新日が表示されません。 自分なりに調べてssiで <!--#flastmod file="b/1.html" --> <!--#flastmod virtual="b/1.html" --> と言う形でやってみたのですが駄目でした。 レンタルサーバーは【エックスサーバー】 http://www.xserver.ne.jp/ で、ssiは使えるハズなんですが・・・ 表示出来ない理由など分からないでしょうか? また、ssi以外で指定したファイルの更新日時を別のページに自動で表示させられる 機能などないでしょうか? 私の作業環境はDreamweaverCS4でHPの構成はDreamweaverのテンプレート機能を使って作っています。

  • 「動的ページが表示されない」について教えてください

    よろしくお願いいたします。 自宅サーバ(Linux)です。 ルビーを使った日記帳を作っています。 先に作ったかたが、 「cgiに直さないと表示されない」と教えてくださったので ルビーを(index,update,日記本体)cgiに置き換えました。 この日記に限らず、今までに作ったページを改めてみてみましたら 動的ページは全部表示されていなかったのです。 ホストの設定が悪いのでしょうか? 原因がわからないので何処を触って良いやら判断できません。 お詳しいかた、教えていただけませんでしょうか? お願いいたします。

    • ベストアンサー
    • PHP
  • 外部ページの呼び出し

    フレームを使用しないで、上部にナビ、その下にメインコンテンツを置きたいと思ってるのですが SSIの<!--#include file="~" -->でファイルを呼び出すようにブログや掲示板などの外部ページを 呼び出すことって可能なんでしょうか? サーバがPHPを使えないところなので、SSI(は使えます)かjavaScriptで呼び出したいのです。 できましたら具体的にソースなど教えていただければありがたいです。 よろしくお願いいたします。

  • CGIスキンに外部txtを表示するには?

    お世話になります。 初歩的な質問だと思いますが、お付き合いくださるとありがたいです。 ・‥…━━━・‥…━━━ SSIやPHPで、複数ページに表示するメニューを 一個の外部ファイルにして、各ページから読み込む方法がありますよね。 <!--#include virtual="menu.txt"-->等 これは、CGIのスキンには使用出来ないでしょうか。 (例えば、apeboardやCLEVER等のスキンが使えるCGIを使用予定) 他のページと同じようにBBSやリンクCGI、 メールフォームなどのスキンも 同じファイルをメニュー部分として呼び出したいと思っています。 CGIフォルダに.htaccessで「AddType text/x-server-parsed-html .shtml .html .cgi」と書いても呼び出せませんでした。 (同じディレクトリのHTMLファイルは、呼び出せました) 何か方法があるのではないかと思い、書き込みさせて頂きます。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • SSIで表示させるときの各ファイルのパス

    SSIで日記をトップページに表示させようとしています。 CGIは./cgi-bin/day/に保存してます。 トップでSSI表示(<!--#exec cmd="cgi-bin/day/day.cgi" -->)させるためには各ファイルもそこからのパスが必要ですよね。 (require './cgi-bin/day/jcode.pl';) しかし、こうすると記事を入力するときにエラーが出てしまいます。 (./cgi-bin/day/day.cgiから見るとjcode.plは./cgi-bin/day/cgi-bin/day/の場所になってしまう。その他datファイルも同じ) これを解消する何か良い方法は無いでしょうか? 例えば、「cgi-bin/day/」の位置に指定ファイルが無ければ「./」の位置を探すとか、SSI表示部分は切り離して別ファイルにするとか… 良い方法があったら教えてください。

    • ベストアンサー
    • CGI
  • リンク元を調べるCGIの作り方で悩んでいます

    はじめまして。Perl暦1ヶ月の者です。 自分のサイトのリンク元を調べるCGIを設置しようと思いますがどんな方法があるでしょうか。 私が調べた方法は、 1.CGI+SSIを利用 2.CGI+インラインフレームを利用 ですが、1.は各ページに <!--#exec cgi="○○.cgi"--> を入れてCGIを起動させるわけですが、全ページが.shtmlとなってしまい抵抗を感じます。.htm → .shtmlと変わることにより当分検索順位が下がるかもしれません。 それで2.を試しました。通常ページ page1.htm にインラインフレームで○○.cgiを埋め込み、ここでカウンターを表示させるとともにログを取得しようと思ったのです。しかしHTTP_REFERERが取得してくれるリンク元はあくまで「page1.htm」ですので役に立ちません。 最も一般的な方法はどのようなものでしょう?詳しい方よろしくお願いいたします。m(_"_)m *できればコードを丸ごと教えていただけると助かります。 ↓作成の条件です↓ ・一般ページはあくまで.htm にしたい。 ・レンタルサーバー屋はSSIは.shtmlと言っている。 ・リンク元一覧は一般ページには表示しない。 ・全ページの外部リンク元を知りたい。

    • ベストアンサー
    • Perl
  • 2つのドメイン、同じサーバー。これを2つのページにする。

    今●●●●●.comというドメインと、×××××.netという2つのドメインを持っています。 この2つは全く同じページが出るようになっているのですが、 CGIを使って●●●●●.comと、×××××.netを別のページが表示できるようにしたいと思っています。 アクセス先の判別で違うページを表示出来るCGIがありましたら是非教えてください。 振り分けたいページはトップページであるindex.cgiだけです。

    • ベストアンサー
    • CGI
  • 外部からのCGI呼び出し可なサーバー

    こんにちは、よろしくお願い致します。 カテ違いなら申し訳ありません。 この度自分でホームページを開設したのですが、 残念ながらCGIが使えないサーバーなのです。 以前にホームページを持っていた際はCGI可のサーバーだったことからも、 今回はレンタルで掲示板等を設置しているのですが、かなり不満です。 (プロバイダが変わった為CGI不可に) 質問なのですが、ホームページのレイアウト上 広告が入ると嫌なので現在のサーバーを使用しているのですが、 ページが縦に3分割でして、真ん中のフレームなら広告が入ってもいいかなと思っているのです。 そこでインフォシークなどのCGI可のスペースを借りてそこに掲示板や日記などのCGIを置き、自分のページから読み込むというのはアリなのでしょうか?? もしダメだとすれば、どこかそういった使い方をしても平気なサーバーはありませんか? 広告の入り方は上下等かまわないのですが、ポップアップと有料のサービスは除外して教えて頂きたいのです。 足りない情報がありましたら補足致します。 よろしくお願い致します。

    • 締切済み
    • CGI

専門家に質問してみよう