本文へスキップ

ソフトウェア開発・パソコンサポートの オフィス・ネオ です。

オフィス・ネオ(office-neo)

オンラインソフト 「PageMagic(html ページの一部を取り込む)」PAGEMAGIC

PageMagic(html ページの一部を取り込む)

最近、よく見かけるようになった Web サイトには、JavaScript や Ajax、Web サービスや XML など、さまざまな技術を駆使して、見た目やレスポンスの向上を図っているホームページが増えてきたように思われます。しかし、従来からの基本である html で表現されるページも数多く存在し、増加していることには変わりありません。ここで紹介する「PageMagic(ページ・マジック)」は、html で表現された他ページの一部を、自分のページに取り込んで表示させてしまおうという ISAPI です。ご利用いただくには、多少の html の知識が必要ですし、著作権などの権利の扱いにも注意する必要があります。

現在のバージョンでは、Windows IIS 用 ISAPI, ISAPI フィルタ, CGI 、Windows Apache 用 DSO, CGI、Linux Apache 用 DSO, CGI に対応しています。お使いの環境にあわせて選択して導入してください。

概要

他ページ(自サイトまたは他サイト)の html から、タグ・ブロックを、PageMagic を呼び出すように記述した自分のページに取り込んで html をブラウザに返すことにより、ブラウザでは、ひとつのページであるかのように表示させることができます。同じような仕組みは、FRAME タグや IFRAME タグでも可能ですが、他ページの html の一部を抜き出すので、必要な部分だけを表示させ、不要な部分は表示させない。といったことが可能になります。また、スタイルシートは自分のページのものを適用させることができるので、統一感を損なうことがありません。

ここには、PageMagic のタグ
<!-- pagemagic href="http://finance.yahoo.co.jp/" tag="div" number="1" bookmark="INDICES" -->
が記述されていて、Yahoo!ファイナンスのページから、株と為替の現在値が表示されるハズです。

動作環境

PageMagic は、Windows 上の IIS で動作するように開発された ISAPI です。ほかの環境では動作確認していませんので、利用者は自己責任でご利用ください。

  • Microsoft Windows 2000/XP/2003/Vista/2008/7
  • Microsoft Internet Information Services (IIS) 5.0/5.1/6.0/7.0/7.5

Apache DSO 版は、有名な Web サーバーソフトウェア Apache で動作します。

  • Windows 版 Apache (1.3.x, 2.0.x, 2.2.x)
  • Linux 版 Apache (1.3.x, 2.0.x)

CGI 版は、Windows と Linux の両方で汎用的に動作することを目的に開発されました。一部のレンタルサーバーの Linux 上 (Apache) での動作も確認しています。

  • Microsoft Windows 2000/XP/2003/Vista/2008/7
  • Microsoft Internet Information Services (IIS) 5.0/5.1/6.0/7.0/7.5
  • Windows 版 Apache (1.3.x, 2.0.x, 2.2.x)
  • Linux 版 Apache (1.3.x, 2.0.x, 2.2.x)
  • Miracle Linux V2.1 (Apache 1.3.x)
  • XREA.COM サーバー Linux (Apache 1.3.x)

※x86 での対応です。64 ビットには対応していません。

設置方法

PageMagic には、設置の方法が2種類あります。「ISAPI」 と 「ISAPI フィルタ」の違いです。ISAPI ではページごとに利用する・しないを決められるのに対して、ISAPI フィルタでは、すべてのページで利用することになります。結果はどちらを利用しても同じになります。

現在のバージョンでは、さらに Windows 用と Linux 用 の、Apache DSO 版と、CGI 版があります。

詳しい設置方法の具体的な例は、次を参考にしてください。

ファイル名 内容
PMISAPI.DLL
(pmisapi.dll)
  • ISAPI 版。
  • 全体としての負荷を比べると少ないですが、設置や記述の方法が少し面倒です。
  • βバージョンからそのまま更新する場合は、pagemagic.dll に名前を変更してご利用ください。
PMFILT.DLL
(pmfilt.dll)
  • ISAPI フィルタ版。
  • 設置や記述の方法は比較的簡単ですが、全体の負荷は若干高くなります。
  • もちろん PageMagic を利用する記述がないページは、元のままのページで表示されます。
pmcgi.cgi
  • CGI 版。
  • 少し負荷が増えます。
mod_pmdso.so
  • Apache 1.3.x DSO 版。
  • CGI 版よりも少し負荷が減ります。
mod_pmdso20.so
  • Apache 2.0.x DSO 版。
  • CGI 版よりも少し負荷が減ります。
mod_pmdso22.so
  • Apache 2.2.x DSO 版。
  • CGI 版よりも少し負荷が減ります。
その 1(ISAPI として利用する方法)
  • ISAPI として利用する方法は、サイトの中で PageMagic を利用するページが、比較的少ない場合に有効です。
  • ダウンロードしたファイルを解凍してできた、pmisapi.dll ファイルを、IIS の Web サイト内の、PageMagic を呼び出す html ページが置かれた、適当な仮想ディレクトリのフォルダにコピーしてください。
  • 仮想ディレクトリには、スクリプトおよび実行可能ファイルの実行アクセス権を設定してください。
  • PageMagic のバージョンアップなどで、pmisapi.dll を更新する場合は、仮想ディレクトリのプロパティで、アンロードを選択することで解放され、上書きコピーできるようになります。
その 2(ISAPI フィルタとして利用する方法)
  • ISAPI フィルタとして利用する方法は、サイトの中で PageMagic を利用するページが、比較的多い場合に有効です。
  • ダウンロードしたファイルを解凍してできた、pmfilt.dll ファイルを、適当なシステムフォルダにコピーしてください。
  • Web サイトのプロパティで、ISAPI フィルタの追加を選択し、実行ファイルの参照先を pmfilt.dll に向けて設定してください。フィルタ名は、dll のファイル名などを入力しておけばよいでしょう。
  • PageMagic のバージョンアップなどで、pmfilt.dll を更新する場合は、インターネット インフォメーション サービスを停止することで解放され、上書きコピーできるようになります。(あとで開始するのをお忘れなく。)
  • サイト全体のコンテンツが、要求があるたびに PageMagic で調べられるので、ISAPI として利用するよりも、全体としてはレスポンスが若干落ちて感じる可能性があります。
その 3(Windows IIS 上で CGI として利用する方法)
  • サイトの中で PageMagic を利用するページが、比較的少ない場合に有効です。
  • ダウンロードしたファイルを解凍してできた、windows 用フォルダの pmcgi.cgi ファイルを、Web サイト内の、PageMagic を呼び出す html ページが置かれた、適当な仮想ディレクトリのフォルダにコピーしてください。
  • 仮想ディレクトリには、スクリプトおよび実行可能ファイルの実行アクセス権を設定してください。
その 4(Windows Apache 上で DSO として利用する方法)
  • サイトの中で PageMagic を利用するページが、比較的多い場合に有効です。
  • ダウンロードしたファイルを解凍してできた、windows 用フォルダの mod_pmdso*.so ファイルを、Web サイト内の、PageMagic を呼び出す html ページが置かれた、適当な仮想ディレクトリのフォルダにコピーしてください。
  • htdocs や users のサブフォルダ配下に、呼び出す *.html と mod_pmdso*.so を一緒に入れ、http.conf に LoadModule と、SetHandler を Location に記述してください。
    例)httpd.conf
    LoadModule pmdso20_module "C:/Program Files/Apache Group/Apache2/htdocs/pm/mod_pmdso20.so"
    <Location /pm>
        SetHandler pmdso20-handler
    </Loation>
その 5(Windows Apache 上で CGI として利用する方法)
  • サイトの中で PageMagic を利用するページが、比較的少ない場合に有効です。
  • ダウンロードしたファイルを解凍してできた、windows 用フォルダの pmcgi.cgi ファイルを、Web サイト内の、PageMagic を呼び出す html ページが置かれた、適当な仮想ディレクトリのフォルダにコピーしてください。
  • cgi-bin フォルダの中に、呼び出す *.html と pmcgi.cgi を一緒に入れるか、htdocs や users のサブフォルダ配下に、呼び出す *.html と pmcgi.cgi を一緒に入れ、http.conf に Options +ExecCGI と AddHandler cgi-script .cgi を Directory に記述してください。
    例)httpd.conf
    <Directory "C:/Program Files/Apache Group/Apache2/htdocs/pm">
        Options +ExecCGI
        AddHandler cgi-script .cgi
    </Directory>
その 6(Linux Apache 上で DSO として利用する方法)
  • サイトの中で PageMagic を利用するページが、比較的多い場合に有効です。
  • ダウンロードしたファイルを解凍してできた、linux 用フォルダの mod_pmdso*.so ファイルを、Web サイト内の、PageMagic を呼び出す html ページが置かれた、適当な仮想ディレクトリのフォルダにコピーしてください。
  • htdocs や users のサブフォルダ配下に、呼び出す *.html と mod_pmdso*.so を一緒に入れ、http.conf に LoadModule と、SetHandler を Location に記述してください。
    例)httpd.conf
    LoadModule pmdso20_module "/usr/local/apache2/htdocs/pm/mod_pmdso20.so"
    <Location /pm>
        SetHandler pmdso20-handler
    </Loation>
その 7(Linux Apache 上で CGI として利用する方法)
  • サイトの中で PageMagic を利用するページが、比較的少ない場合に有効です。
  • ダウンロードしたファイルを解凍してできた、linux 用フォルダの pmcgi.cgi ファイルを、Web サイト内の、PageMagic を呼び出す html ページが置かれた、適当な仮想ディレクトリのフォルダにコピーまたはバイナリアップロードしてください。
  • cgi-bin フォルダの中に、呼び出す *.html と pmcgi.cgi を一緒に入れるか、htdocs や users のサブフォルダ配下に、呼び出す *.html と pmcgi.cgi を一緒に入れ、http.conf に Options +ExecCGI と AddHandler cgi-script .cgi を Directory に記述してください。
    例)httpd.conf
    <Directory "/usr/local/apache2/htdocs/pm">
      Options +ExecCGI
      AddHandler cgi-script .cgi
    </Directory>
  • 仮想ディレクトリや pmcgi.cgi には、実行可能のアクセス権を設定してください。
  • XREA.COM などの一部のレンタルサーバーでは、CGI の場所に制限はなく、suEXEC という機能もサポートしているので、public_html 配下のどこにでも配置が可能です。

記述方法

PageMagic で、他 html ページの一部を挿入しようとする自ページは、<!-- pagemagic ... --> コメント・タグの部分が、中に指定されたオプションの内容をもとに、変換されて表示されます。このコメント・タグの中の href や tag などのオプションによって、どのページのどの部分という対象を指定します。

例)test.html

<html>
<head>
<title>PageMagic テスト・サンプル</title>
<style>
<!--
#info {
  background : lightyellow;
  border : 2px solid red;
  margin : 0.5em 0;
  padding : 1em;
  width : 600px;
}
-->
</style>
</head>
<body>
▽現在の、福島第一原子力発電所(福島県双葉郡大熊町)の気象警報・注意報は、<br>
<!-- pagemagic href="http://www.jma.go.jp/jp/warn/0754500.html" tag="div" number="1" bookmark=" id=""info""" -->
(気象庁ホームページより引用)
</body>
</html>

上の例では、気象庁のホームページから、現在の福島第一原子力発電所(福島県双葉郡大熊町)の気象警報・注意報を表示する html をブラウザに返します。http://www.jma.go.jp/jp/warn/0754500.html ページの、id="info" を含むタグより後ろで、1番目の、div タグ・ブロックを取り込むという意味です。抜き出したいタグや位置を知るには、ソース表示にして html を解析して調べてください。
動的に html を作り出して返すようなサイトのページを対象にすると、タグの種類や位置が変わることがあるため、欲しい情報が取得できなかったり、間違った情報を取得してしまう可能性があります。

タグの説明
タグ・オプション 例 説明
<!-- pagemagic PageMagic の始まりをあらわします。英大小文字は区別しません。
href="http://www.xxx.yyy/zzz.html" 表示させたいページの URL を指定してください。既定のドキュメントであっても、ファイル名まで指定することをお勧めします。ローカルでアクセス可能なファイル名を指定することもできます。
tag="table" ページの一部を抜き出す元になる、タグ・ブロックの名前を指定してください。英大小文字は区別しません。
number="1" 指定したタグ・ブロックは同じ種類のタグの中で何番目に現れるのかを指定できます。
bookmark="- MIDASHI -" タグ・ブロックを探す指標となる文字列を指定できます。通常はページの先頭からタグ・ブロックを探しますが、このオプションを指定すると、ページの途中からタグ・ブロックを探すことができ、動的にタグの位置が変化するページでも、抜き出す精度が高まります。文字列の中に引用符が必要なときは、2つ続けてひとつの引用符とみなします。タグと混同してしまう、<, > は含めないでください。
--> PageMagic の終わりをあらわします。

1ページの中に、PageMagic を複数使うことができます。しかし、あまりたくさん使おうとすると、ページの表示が完了するまでに、それなりの時間がかかってしまいます。同じページから複数の部分を取り込みたいときは、連続して記述するように工夫すると、離して記述するよりも効率がよくなります。

βバージョン用の古い記述形式でも、そのまま使えますが、新しい記述形式に書き換えることをお勧めします。

呼び出し方法

その 1(ISAPI として設置した場合)
  • PageMagic を呼び出す記述をした html ファイルにリンクして表示するには、
    <A href="http://localhost/pmisapi.dll/test.html">のように、PageMagic ISAPI が通されるようにリンクを記述してください。
    (この例は、ローカルホストのホームディレクトリに設置した場合)
  • リンク URL の記述は、一階層深いディレクトリに見えるので、相対パスで書かれる場合は注意が必要です。
    (dll と同じフォルダにあるコンテンツでも、親フォルダにあるものとして記述する必要があります。)
その 2(ISAPI フィルタとして設置した場合)
  • 特に記述は意識することなく、サイト内の html ファイルはすべて PageMagic が通されて表示されます。
その 3(Windows Apache DSO / Linux Apache DSO として設置した場合)
  • 特に記述は意識することなく、Location に記述した場所の html ファイルはすべて PageMagic が通されて表示されます。
その 4(Windows CGI / Linux CGI として設置した場合)
  • PageMagic を呼び出す記述をした html ファイルにリンクして表示するには、
    <A href="http://localhost/cgi-bin/pmcgi.cgi/test.html">のように、PageMagic CGI が通されるようにリンクを記述してください。
    (この例は、ローカルホストのホームディレクトリの cgi-bin に設置した場合)
  • リンク URL の記述は、一階層深いディレクトリに見えるので、相対パスで書かれる場合は注意が必要です。
    (cgi と同じフォルダにあるコンテンツでも、親フォルダにあるものとして記述する必要があります。)
呼び出し結果
  • 下のリンクを開いてソースの表示で見比べると違いがよく分かります。
  • 気象庁 | 気象警報・注意報 | 大熊町(現在の福島第一原子力発電所(福島県双葉郡大熊町)の気象警報・注意報)
    http://www.jma.go.jp/jp/warn/0754500.html
  • PageMagic テスト・サンプル(現在の福島第一原子力発電所(福島県双葉郡大熊町)の気象警報・注意報)
    (発表内容だけを抜き出しています。)
    http://www.office-neo.jp/pagemagic/pmcgi.cgi/test.html
  • 利用状況や時期を判断して、PageMagic を利用したページの一部に、作者からの案内情報を表示/非表示させるようになるカモ知れません。そのときは、ホームページで案内します。

注意事項

  • ISAPI フィルタとして設置したサイトに、さらに ISAPI として設置して利用しないでください。
  • PageMagic は、作者のためのアクセスログ(一般的な Web の要求情報のみ)を判定するため、@nifty または XREA.COM 上の CGI を呼び出します。
  • 重要なサイトに設置する場合は、事前に動作確認を十分に行い、確認の上ご利用ください。
  • 本ソフトウェアまたは利用先サイトの原因による、サイトの停止やセキュリティの脆弱、著作者の権利侵害など、それに伴う損害・損失があったとしても、作者は一切責任を持たず、賠償等に応じることはできません。
  • 基本的に、他者のページの内容には著作者の権利が保護されます。権利の扱いにはご注意ください。

その他

  1. 開発環境
    • 開発は、Windows XP Professional (SP3) + Borland Delphi 6 Professional で行いました。
    • Linux 版の開発は、Miracle Linux V2.1 + Borland Kylix 3 で行いました。
    • もしかしたら、ご使用の環境の違いにより、正しく動作しないことがあるかも知れません。
  2. 著作権
    • PageMagic の著作権は、作者である office-neo が所有します。
    • PageMagic は、現在のところフリーソフトウェアです。自由に配布していただいてかまいません。ただし、転載する場合は、作者まで連絡をお願いします。
  3. サポート
    • 質問・要望や不具合の情報などありましたら、ホームページのお問い合わせ フォームをご利用いただくか、電子メールでお送りください。ご意見・ご感想もお待ちしています。
    • 送金してでも、しっかりしたサポートを受けたいという方は、遠慮なくお問い合わせください。

オフィス・ネオ(http://www.office-neo.jp/)

改版履歴

バージョン・日付 内容
Version 1.01
(2012/07/01)
  • Windows Apache DSO / Linux Apache DSO 版に対応しました。
  • Windows CGI / Linux CGI 版に対応しました。
  • 文字化け対策を見直しました。
Version 1.00
(2007/10/25)
  • 正式公開版。
  • 無効なタグでの記述の仕方を、コメントで記述するようにしました。
  • 連続した同一ページに対する要求は、キャッシュメモリ上から取得するようにしました。
  • MIME Content-Type の取得をキャッシュを使うようにしました。
  • タグの解析をシンプルにして、若干ですが速度を向上させました。
  • 総合的に比べると、βバージョンから約40%程度、速度が改善しました。
  • ISAPI フィルタ版にも対応しました。(このためβ版とはファイル名が異なる DLL になりました。)
  • 作者のためのアクセスログを独自に収集できるようにしました。(@nifty 上の CGI を呼び出します。)
  • 将来的に作者からのバナー広告を挿入できるようにしました。
Version 0.13
(非公開)
  • index 属性を付加し、指標となる文字列からタグの位置を取得できるようにし、目的のタグ・ブロックを取得する精度を向上させた。
Version 0.12
(2006/12/10)
  • 拡張子の MIME Content-Type はレジストリから取得して返すようにした。
  • まれに文字化けすることがあったので、漢字コードの判定精度を向上させた。
  • 「昨日の明日は今日のこと」サンプルページを追加した。
Version 0.11
(2006/11/11)
  • 抜き出したタグ・ブロックの漢字コードが違っても、呼び出し元の漢字コードに合わせて変換して、なるべく文字化けしないようにした。
  • Aタグの href 属性が相対 URL のとき、絶対 URL に変換して、なるべくリンク切れしないようにした。
Version 0.10
(2006/11/07)
  • 公開初版。

バナースペース

サポート・連絡先

お問い合わせ・感想・ご意見・ご要望などありましたらお寄せください。