1

はい、タイトルが十分に混乱していることは知っていますが、これが私がやりたいことです:

私は3つのWebサイトを作成しました(クライアント用。私はそれらを制御できません)。これらのサイトはすべて、私のメインWebサイトの特定のページをロードします。(PHPfile_get_contentsを使用-www.mainsite/ x.phpという名前を付けましょう)。

ここでの問題は帯域幅です。毎回www.mainsite/x.phpファイルをロードするのではなく、10のWebサイトでそのx.phpファイルを使用して一時的なローカルファイルを作成したいと思います。ただし、ローカルファイルが毎週かそこらで更新されるように、そのx.phpファイルにいくつかの変更を加える場合があります。

繰り返しになりますが、Webサイト1、2、および3には、www.mainsite/x.phpのPHPfile_get_contentsがあります。最初のロード時に、x.phpの内容を含むx.htmlファイルを作成する必要があります(例:www.website1 / x.html)。1週間後、Webサイト1、2、および3はwww.mainsite / x.phpを再度ロードし、www.mainsite / x.phpファイルに変更が加えられている場合は、新しいx.htmlファイルを作成する必要があります。

4

2 に答える 2

2
public function generateTempFile(){
    $path = 'YOUR PATH';
    $original_path = 'YOUR ORIGINAL PATH WHICH you can change';

    if(file_exists($path)){
        $file_created_time = filemtime($path);
        if($file_created_time + 24*60*60 > time()){
            return TRUE;
        }
    }
    $string = file_get_contents($original_path);
    return file_put_contents($path, $string);   
}

この関数は、ファイルの最終変更をチェックし、24時間以上経過すると、ファイルを書き換えます。開始するには、cronタスクから実行するか、毎日開いているページのコード内に配置して、ファイルを確認します。実行されます。

$ stringで、ファイルの新しいコンテンツを設定する必要があります。これは、他のファイルのfile_get_contents()を使用して行うことができます。または、カスタムで文字列を生成するだけです。

于 2012-10-29T10:59:56.300 に答える
0
if(file_exists($pathtofile)){
return file_get_contents($pathtofile);
}else{
$newFileHtml=file_get_contents($webpathtogenerate);
file_put_contents($pathtofile,$newFileHtml);
return $newFileHtml;
}

次に、週に1回実行され、「キャッシュ」ファイルを消去するcrondスクリプトがあります

于 2012-10-29T10:51:38.183 に答える