Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP文件\u获取\u内容-创建临时本地文件?_Php - Fatal编程技术网

PHP文件\u获取\u内容-创建临时本地文件?

PHP文件\u获取\u内容-创建临时本地文件?,php,Php,是的,我知道标题已经够让人困惑的了,但我想做的是: 我已经创建了3个网站(针对客户,我无法控制他们)。所有这些网站都会加载我的主网站的某个页面。(使用PHP文件_get_contents,我们将其命名为www.mainsite/x.PHP) 这里的问题是带宽。我希望这10个网站使用该x.php文件创建一些临时本地文件,而不是每次都加载www.mainsite/x.php文件。但是,我可能会对该x.php文件进行一些更改,这样本地文件应该每周更新一次 我的意思是: 网站1、2和3有一个PHP文件,

是的,我知道标题已经够让人困惑的了,但我想做的是:

我已经创建了3个网站(针对客户,我无法控制他们)。所有这些网站都会加载我的主网站的某个页面。(使用PHP文件_get_contents,我们将其命名为www.mainsite/x.PHP)

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

我的意思是: 网站1、2和3有一个PHP文件,内容为www.mainsite/x.PHP。在第一次加载时,它应该创建一个包含x.php内容的x.html文件(即:www.website1/x.html)。一周后,如果对www.mainsite/x.php文件进行了更改,网站1、2和3应再次加载www.mainsite/x.php,并创建一个新的x.html文件

if(file_exists($pathtofile)){
return file_get_contents($pathtofile);
}else{
$newFileHtml=file_get_contents($webpathtogenerate);
file_put_contents($pathtofile,$newFileHtml);
return $newFileHtml;
}
然后有一个crond脚本,它每周运行一次,并擦除“缓存”文件

此函数将检查上次修改的文件,如果超过24小时,将重写该文件。。要启动它,只需从cron任务运行它,或者将它放在每天打开的某个页面的代码中,以确保它将运行


在$string中,您必须设置文件的新内容,您可以使用其他文件中的file_get_contents()来实现这一点。。或者只是在自定义时生成一些字符串。

使用cronjob每周获取内容。这样,您就可以在本地创建一个HTML文件,并每周对其进行编辑。你甚至可以用它创造历史。创建一个文件不是很难。忘了提到我不再控制3个网站了,只有带有php文件的主站点。那我该怎么办?告诉他们(那些外部站点)经常从您的站点加载。或者在任何时候,当你改变你的x.html时,通过电话给他们打电话,告诉他们更新:)那么这并不是减少流量的一个选择,因为他们仍然会继续轮询你的网站。你可能想要gzip,因为这会有一点帮助。除了在这里压缩,你不能做更多的事情。此外,我必须同意@PaulDinh。这将是最好的选择。@HiddenCuppon,请记住此代码必须在其他服务器上运行。“忘了说我不再控制这3个网站了”@VolkerK当然,谢谢你让我知道。这个社区真的很不错。@Svetlio代码工作得很好,但页面以代码结尾。它不会显示后面的任何其他代码。我如何修复它?如果我使用“公共函数”,我也会出错。移除它效果很好。我仍然有一个问题,就是网站没有显示这段代码之后的任何内容(css、html或php)
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);   
}