2012-10-29 3 views
1

예, 제목이 혼란 스럽지만, 여기에 내가하고 싶은 것이 있습니다.PHP file_get_contents - 임시 로컬 파일을 만드시겠습니까?

3 개의 웹 사이트를 만들었습니다 (고객을 위해 제어 할 권한이 없습니다). 이 사이트들은 모두 내 메인 웹 사이트의 특정 페이지를로드합니다. (PHP file_get_contents로 - www.mainite/x.php로 이름을 정하십시오).

여기의 문제는 대역폭입니다. 나는 10 개의 웹 사이트가 x.php 파일로 임시 로컬 파일을 생성하고, 매번 www.mainite/x.php 파일을로드 할 때가 좋을 것이다. 그러나 x.php 파일을 약간 변경하여 매주 로컬 파일을 업데이트해야합니다.

다시 말하지만 : 웹 사이트 1,2 및 3에는 www.mainite/x.php의 PHP file_get_contents가 있습니다. 처음로드 할 때 x.php의 내용 (즉, www.website1/x.html)을 포함하는 x.html 파일을 만들어야합니다. 1 주일 후 웹 사이트 1,2와 3은 www.mainite/x.php 파일을 다시로드하고 www.mainite/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 작업에서 그것을 실행하거나 일부 페이지에서 귀하의 코드를 매일 runned 될 열려 있는지 열려 있습니다.

$ 문자열에서 당신은 새로운 파일을 설정해야합니다 콘텐츠 및 다른 파일에서 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; 
} 

당신은 일주일에 한 번 실행하고 "캐시"파일

관련 문제