4

PHP ページに HTML ページ (ASP.net で生成) を含める必要があります。

それを行うには、次を使用します。

echo file_get_contents("http://example.com");

ただし、この方法では、ページが開かれるたびにサーバーがページをダウンロードする必要があります。

キャッシュ システムを追加したいのですが、example.comのコンテンツが変更されるたびにキャッシュを更新する必要があります。
ページ全体を毎回ダウンロードせずにコンテンツが変更されているかどうかを検出するための最良の方法(ある場合)は何ですか?

リモート ページの HTTP ヘッダーは次のとおりです。

HTTP/1.1 200 OK => 
Cache-Control => no-cache
Pragma => no-cache
Content-Length => 63648
Content-Type => text/html; charset=utf-8
Expires => -1
Server => Microsoft-IIS/7.5
Set-Cookie => ASP.NET_SessionId=xxxxxxxxxxxxxxxx; path=/; HttpOnly
X-Powered-By => ASP.NET
X-AspNet-Version => 4.0.30319
X-UA-Compatible => chrome=1
X-CID => 2-18
Date => Thu, 12 Sep 2013 08:54:59 GMT
Connection => close

別のサイトは私にこれらを与えます:

Server Response HTTP/1.1 200 OK
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 65367
Content-Type: text/html; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
Set-Cookie: ARRSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;Path=/;Domain=.example.com
Set-Cookie: ASP.NET_SessionId=xxxxxxxxxxxxxxxxxxx; path=/; HttpOnly
X-Powered-By: UrlRewriter.NET 2.0.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-UA-Compatible: chrome=1
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
X-CID: 1-18
Date: Thu, 12 Sep 2013 08:56:03 GMT
4

4 に答える 4

1

@Prasanthのソリューションを使用しましたが、それは単なるコメントであり、回答として設定できないため、ここに書いています。
彼がここに答えを書きたい場合は、解決策として設定します。

サーバーでのキャッシュについては、これを参照してください。ソースがいつ変更されたかを知るには、サーバーに固有のものを見つける必要があります。サーバーにはcontent-lengthヘッダーがありますか?その場合、この値が変更された場合にページが更新されたことがわかります。しかし、サイトを完全に制御できない場合、またはページがいつ変更されたかを正確に知る方法がない場合は、おそらく cron ジョブを使用して、サーバーにキャッシュされたファイルを時々更新する必要があります。編集:ルーベンが言ったように、サーバーに Last-Modified ヘッダーがあるかどうかも確認してください。

したがって、をチェックするとcontent-lengthうまくいきます。

于 2013-09-17T08:37:33.943 に答える