2016-04-19 14 views
0

私の現在の全体的な目標は、任意の日中に何回更新されたページAからコンテンツをロード、白紙ページでページBを、持っていることです。私はページAのコンテンツが更新されたときは制御しませんが、ページBは常に元のページの現在のHTMLを持つため、私たちがリアルタイムで処理できるテストページになります。コピーして別のページにページの完全なHTMLを読み込む

だから、これをもっと簡単に置くことができます。さんはfoo.comがロードされたすべての時間は、あなたがfoo.com/morefooに行くことができるとしましょう、それは常に、このために行くために、私はインスタント・ソリューションが、最適なルートに関する詳細な提案を探していないよホーム・ページfoo.com

とまったく同じになります私はどのようにこれを攻撃するのが最善か疑問に思っています。私の最初の考えは(私はこれがjQueryで実現することができ、PHPでなければならないとは考えていない)ページに負荷を持って、ファイルにHTMLを保存していたし、ページBがinclude()を使用して、それをロードします。しかし、ページが読み込まれるたびにテキストを1つのファイルに保存(および上書き)するために、1日に何百万回もクリックされるページを持つことが問題になるかどうかはわかりません。

+1

ページBの読み込み時にデータ(ページAから)のcURLリクエストを試行してください。これはPHPソリューション – Martin

+0

"*何百万回/日"本当にですか? – Martin

+0

@マーティン私はその部分を書いている気がしていませんでした。私はまだコンピュータサイエンスで自分の足を濡らしているので、元のページのアクティビティのレベルが、私が持っていた最初のアイデアを考えるのに最善の方法に影響するかどうかは完全にはっきりしていませんでした。それは、Webから1ページをつかんでサーバーを持った後、表示および/またはそれを編集し、ページB. – JoeL

答えて

0
$html = file_get_contents('http://foo.com'); //Get page contents 
file_put_contents('morefoo.html', $html); //Save page contents to file 

次に、レンダリングしたページ全体を新しいHTMLファイルにコピーしました。スタイルシートとjavascriptファイルが元のページに絶対URLとともに含まれている場合、コピーされたページを元のように機能させることに問題はありません。しかし、HTMLに親戚パスが設定されている場合は、ページを解析して絶対パスで相対パスを置き換える必要があります。このためにはhttp://php.net/manual/de/function.preg-replace.php

をチェックアウトするだろう。しかし、あなたは毎回foo.comがロードされている内容をコピーしないでしょう。これによりすべてが遅くなります。毎時間以上morefoo.htmlを更新するためにクローンジョブを設定します。

+0

データをキャッシュしない限り、複雑にする必要はありません。 'echo file_get_contents();'は、要求元のPHPファイルにソースファイルを出力するのに十分です。 – Andreas

+0

あなたはhtmlを解析するための正規表現を提案していませんでしたか? – Andreas

+0

相対URLを絶対URLに置き換える正規表現をお勧めします。よりよい解決策は何でしょうか? –

関連する問題