0
我使用下面的代碼來下載的存檔CSV文件,解壓預覽:PHP函數下載並覆蓋下載的文件
$url="http://www.some.zip";
$target = 'data-' . md5(microtime()) . '.zip';
function download($src, $dst) {
$f = fopen($src, 'rb');
$o = fopen($dst, 'wb');
while (!feof($f)) {
if (fwrite($o, fread($f, 2048)) === FALSE) {
return 1;
}
}
fclose($f);
fclose($o);
return 0;
}
download($url,$target);
if (file_exists($target)){
echo "Download Successuful <br />";
$arc = new ZipArchive;
if (true !== $arc->open($target)) {
echo "Unzipping Failed <br />";
}else {
file_put_contents($out, $arc->getFromIndex(0));
echo "Unzipping Successuful <br />";
fclose($handle);
}
}else {
echo "Download Failed <br />";
}
然而,在第二次運行,但這並沒有做任何事情,我想用新文件覆蓋最初的文件。 (CSV文件)
我應該怎麼做?解決方案應該與第一次下載大致相同!
爲什麼它應該做的事情?您正在使用微秒時間戳創建文件。第一次運行它時,它將是'data-1234567890',然後下一次您將要查找'data-345678912'。您將永遠無法找到以前的文件,因爲您只查找「現在」時間戳。 –
對不起,現在它必須分別命名爲「filename.zip」,「filename.csv」 –