2012-10-29 137 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; 
} 

那麼你有運行,每週一次,並清除「緩存」文件