因此,這裏是我的代碼:問題節省編輯zip壓縮包(DOCX)
<?php
$zip = new ZipArchive;
if ($zip->open('test.docx') === TRUE) {
$xmlString = $zip->getFromName('word/document.xml');
$xmlString = str_replace('$FIRST_AND_LAST_NAME', 'John Doe', $xmlString);
$zip->addFromString('word/document.xml', $xmlString);
echo 'ok';
$zip->close();
} else {
echo 'failed';
}
它的目的很簡單。它打開一個test.docx文件,搜索字符串「$ FIRST_AND_LAST_NAME」的所有出現,並將其替換爲「John Doe」。
它在我的Windows開發服務器上完美工作(當我打開它時,「John Doe」字符串在docuemnt中)。
它在我的Lunux製作服務器上不起作用(「$ FIRST_AND_LAST_NAME」字符串仍然存在,沒有「John Doe」)。
沒有錯誤或通知,「ok」打印沒有任何錯誤。我確保test.docx文件的權限設置爲777.
沒有警告?報告錯誤? close()返回true嗎? – 2010-08-25 14:11:43
您是否嘗試過在$ xmlString被提取後查看內容?可能是提取在Linux方面的失敗。 str_replace不會讓你生氣,只是突然失敗,所以很可能它的輸入($ xmlString)不是你期望的那樣。 – 2010-08-25 14:12:16
@Pekka我只注意到$ zip-> close()返回false。 – 2010-08-25 14:15:28