PHP file_get_contents - 制作一个临时本地文件?

时间:2012-10-29 10:45:44

标签: php

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

我创建了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.html文件,其内容为x.php(即:www.website1 / x.html)。一周之后,如果对www.mainsite / x.php文件进行了更改,则1,2和3网站应再次加载www.mainsite / x.php并创建一个新的x.html文件。

2 个答案:

答案 0 :(得分: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()来实现。或者只是在自定义生成一些字符串..

答案 1 :(得分:0)

if(file_exists($pathtofile)){
return file_get_contents($pathtofile);
}else{
$newFileHtml=file_get_contents($webpathtogenerate);
file_put_contents($pathtofile,$newFileHtml);
return $newFileHtml;
}

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