假設我有MSWord文件source.doc,其中包含下一個內容「Microsoft Word文件的內容」。 例如,我想通過PHP打開它,並將「Microsoft」替換爲「Openoffice」,並將結果保存到result.doc。 下面是使用preg_replace
代碼:PHP編輯Microsoft Word文檔str_replace和preg_replace不起作用
$content = file_get_contents(SOMEPATH . '/source.doc');
$new_content = preg_replace('/Microsoft/i', 'Openoffice', $content);
file_put_contents(SOMEPATH . '/target.doc', $new_content);
或者使用str_replace
:
$content = file_get_contents(SOMEPATH . '/source.doc');
$new_content = str_replace('Microsoft', 'Openoffice', $content);
file_put_contents(SOMEPATH . '/target.doc', $new_content);
他們沒有不起作用。代碼無任何例外運行,但target.doc與source.doc相同。替換不執行。
我已經嘗試了很多不同的reciepts,比如正則表達式修飾符,iconv等,但沒有什麼幫助。
$content
的顯示var_dump
source.doc即充滿不尋常的字符和作爲我想一些它停止str_replace
或preg_replace
掃描的原始結構。無法弄清楚它是哪一個字符,如果我能找到它,該怎麼辦。
var_dump
of $new_content
與$ content相同。
感謝您的幫助!
MS Word將其文件以壓縮格式保存,因此如果不先解壓縮,就無法查看或編輯內容。但即使你這樣做,你也必須知道文件格式的細節(有幾種),並且不能保證頁面上的文字被保存爲文件中的連續字符。 – Spudley 2011-05-18 14:07:30