아래 코드를 사용하여 클라우드 서버에있는 파일을 timestamps
개 얻은 다음 특정 나이 이상인 파일을 삭제합니다.두 개의 유닉스 시간 파일을 비교하여 오래된 파일을 삭제하십시오.
현재 코드는 테스트를 위해 10 분 이상 지울 수 있도록 설정됩니다.
그러나 일부 파일을 업로드 한 다음 10 초 후에 스크립트를 실행하더라도 모든 파일이 삭제됩니다.
내가보기 싫은 작은 문제가 있습니까?
$auth->authenticate();
//connect
$conn = new CF_Connection($auth);
//create a handle for the CLOUD FILES container we want to delete from
$daily_dose = $conn->get_container('daily_dose');
//delete the obeject
$daily_packages = $daily_dose->list_objects();
//print_r($daily_packages);
//$public_container = $conn->get_container("public");
//$file_age = 86400; // 1 day in seconds
$file_age = 600; // 10 minutes
echo 'current time: ';
echo $current_time = time();
echo '<br>';
echo 'time offset: ';
echo $previous_day = $current_time - $file_age;
echo '<br>';
foreach($daily_packages as $package)
{
echo $item = $daily_dose->get_object($package);
$modified = $item->last_modified;
echo ' ' . $modified;
echo ' -> ' . strtotime($modified);
echo '<br>';
//If the modified time of the file is less the current time - 1 day in seconds (older than 1 day) delete it
if ($modified < $previous_day)
{
//delete the file
$daily_dose->delete_object($item);
}
}
당신도 포함 할 수 있습니다 설정 어떤 시간 사이에 시간 또는 시간대의 차이() 반환 및 소프트웨어가 없는지 확인 그것으로부터'echo'd가 무엇인지, 그것은 우리에게도 유용 할 것입니다. – alex
정확히'$ item-> last_modified'에 무엇이 있습니까? 사실'time()'과 같은 종류의 타임 스탬프가 반환됩니까? 여러분의 코드를 조금 더 계측한다고 가정 해보십시오 :'echo '. $ 수정 됨. '->'. strtotime ($ 수정 됨). '; 비교 '. $ 수정 됨. '함께'. $ previous_day. '=>'. ($ modified <$ previous_day).
; 또는 종류의 무엇인가; 출력이 켜져 있습니까? –
'last_modified'는'Sun, 20 Mar 2011 23:09:36 GMT'와 같은 것을 반환하는 클래스 변수입니다. 그러면'timestamps'가됩니다 – ian