2012-10-29 90 views
1

是的,我知道标题混乱不够,但这是我想要做的:PHP file_get_contents - 创建临时本地文件?

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

+0

使用cronjob每周获取内容。这样你就可以在本地创建一个HTML文件并每周编辑一次。你甚至可以用它创建历史记录。创建一个文件并不是很难。 –

+0

忘了提及,我不再控制3个网站,只有php文件的主要站点。那我该怎么办? – HiddenChampion

+1

告诉他们(那些外部网站)经常从您的网站加载。或者当你改变你的x.html的时候,通过电话打电话给他们,告诉他们更新:) – jondinham

回答

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小时就会重写的crond脚本它..要开始它只是从一个cron任务运行它,或把它放在你的代码在每天打开的页面,以确保它将被运行..

在$ string你必须设置文件新内容,你可以用file_get_contents()从其他文件做到这一点..或者只是生成一些字符串在定制..

+0

看起来不错。谢谢 – HiddenChampion

+0

@HiddenChampion,请记住这些代码必须在其他服务器上运行。 “忘了提及,我不再控制3个网站” – VolkerK

+0

@VolkerK当然,谢谢你让我知道。这个社区真的很好。 – HiddenChampion

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

那么你有运行,每周一次,并清除“缓存”文件