別のページから div 全体を「プル」または「ロード」して、div 内の別のページに表示したいと考えています。
最新ニュースの実際のページが更新されるたびに、ホームページの「最新ニュース」div を更新しています。
これにはphpを使用したいのですが、2ページ目全体を表示するのではなく、divの情報のみを表示したいと考えています。
アドバイス/提案をありがとう、
ジェフ
PHP のDOM クラスを使用して、ページをリモートで取得し、HTML 要素のテキストを解析できます...
$dom = new DOMDocument();
$dom->loadHTMLFile('http://us3.php.net/manual/en/book.dom.php');
$div = $dom->getElementById('book.dom');
echo $div->nodeValue;
でjQueryフレームワークをお勧めしload()
ます。
ドキュメントを参照してください: load() - ページフラグメントのロード
jQuery とメソッド load() を使用すると、次のようになります。
$(document).ready(function(){
var myInterval = setInterval(function(){
$("#news_div").load("/news.php");
}, 10000);
});
これにより、news.php が 10 秒ごとにロードされ、ID で div に挿入されますnews_div
。
ただし、node.js、ソケットなどを見たほうがよいでしょう。トラフィックが多い場合。
私が収集できることから、外部ソースからページへのコンテンツの AJAX スタイルの読み込みを複製しようとしています。私はこれについて少し考えてきましたが、それができると思います。
次のことを行う必要があります。
1: curl、url fopen などを使用して外部ページを読み込みます。カールをお勧めします。
2: ページ フェッチが成功した場合、DomDocument オブジェクトを初期化します。
3: DOM トラバーサル関数を使用して div を見つけ、その内容を取得します。4: 選択した方法でコンテンツをページに挿入します。
私は実際の実装を試みたことはありません. うまくいけば、開始するのに十分な情報が得られます。
@harakiri コメントを拡張すると、基本的に同じことを行う JQuery の live 関数を調べることもできますが、将来のバインディングを自動的に行う必要がある場合、live はロードではなくそれを行います。