2012-12-12 106 views
2

下面的代碼作品種類。PHP zip提取和重命名

$zip = new ZipArchive; 
if($zip->open($path) === TRUE) { 
    $zip->renameName('list.csv', 'list'.$batch_id.'.csv'); 
    $zip->extractTo('list_output'); 
    $zip->close(); 
} 

zip中的文件被重命名,但不提取。如果我刪除重命名行,那麼它提取罰款。我需要它來做到這一點。

+0

看看如果關閉zip並在兩個操作之間重新打開會發生什麼。 – PeterJ

+1

你嘗試在解壓縮後重命名它嗎? –

回答

2

那麼?

$zip = new ZipArchive; 
if($zip->open($path) === TRUE) { 
    $zip->extractTo('list_output'); 
    $zip->close(); 
} 

rename('list_output/list.csv', 'list_output/list'.$batch_id.'.csv'); 

在CPU /內存上也會更容易。

+0

瘋狂的快速回答,我會使用這種方法,仍然好奇爲什麼我沒有工作,但你的方法更好。 –

+1

我最好的猜測,你需要關閉它。然後重新打開。 –