1

是的,我知道标题很混乱,但这是我想做的:

我创建了 3 个网站(针对客户。我无法控制它们)。所有这些网站都加载了我主网站的某个页面。(使用 PHP file_get_contents - 我们将其命名为 www.mainsite/x.php)。

这里的问题是带宽。我希望这 10 个网站使用该 x.php 文件创建一些临时本地文件,而不是每次都加载 www.mainsite/x.php 文件。但是我可能会对该 x.php 文件进行一些更改,因此本地文件应该每周左右更新一次。

我的意思是:网站 1,2 和 3 的 PHP file_get_contents 为 www.mainsite/x.php。在第一次加载时,它应该创建一个包含 x.php 内容的 x.html 文件(即:www.website1/x.html)。一周后,网站 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;
}

然后你有一个每周运行一次并删除“缓存”文件的 crond 脚本

于 2012-10-29T10:51:38.183 回答