我试图通过将文件读入变量$content
然后使用str_ireplace()来更改字符串来替换word文档中的字符串。我可以从文件中读取内容但是str_ireplace()似乎无法替换字符串。我认为这是因为字符串是二进制安全的'根据PHP文档。对不起,我是PHP文件操作的初学者,所以这对我来说都是新的。
这就是我写的。
copy('jack.doc' , 'newFile.doc');
$handle = fopen('newFile.doc','rb');
$content = '';
while (!feof($handle))
{
$content .= fread($handle, 1);
}
fclose($handle);
$handle = fopen('newFile.doc','wb');
$content = str_ireplace('USING_ICT_BOX', 'YOUR ICT CONTENT', $content);
fwrite($handle, $content);
fclose($handle);
当我下载新文件时,它会在MS Word中打开,但它会显示旧字符串而不是应该替换的字符串。
我能解决这个问题吗?有没有更好的工具可以用来替换MS Word thourgh PHP中的字符串?
答案 0 :(得分:1)
我对使用php编辑 .doc 或 .docx 文件有相同的要求,我找到了解决方法。 我在It :: http://www.onlinecode.org/update-docx-file-using-php/
上写了帖子copy('jack.doc' , 'newFile.doc');
$full_path = 'newFile.doc';
if($zip_val->open($full_path) == true)
{
// In the Open XML Wordprocessing format content is stored.
// In the document.xml file located in the word directory.
$key_file_name = 'word/document.xml';
$message = $zip_val->getFromName($key_file_name);
$timestamp = date('d-M-Y H:i:s');
// this data Replace the placeholders with actual values
$message = str_replace("client_full_name", "onlinecode org", $message);
$message = str_replace("client_email_address", "ingo@onlinecode.org", $message);
$message = str_replace("date_today", $timestamp, $message);
$message = str_replace("client_website", "www.onlinecode.org", $message);
$message = str_replace("client_mobile_number", "+1999999999", $message);
//Replace the content with the new content created above.
$zip_val->addFromString($key_file_name, $message);
$zip_val->close();
}
答案 1 :(得分:0)
也许这会指向正确的方向:http://davidwalsh.name/read-pdf-doc-file-php
答案 2 :(得分:0)
到目前为止我找到的解决方案(虽未测试):
Docvert - 适用于Doc,免费但不能直接使用
PHPWordLib - 为Doc工作,而不是免费的
PHPDocX - 仅限DocX,需要Zend。
答案 3 :(得分:0)
我将选择PHPWord www.phpword.codeplex.com,因为我相信老师明年将获得Office 2007,我也会尝试找到一些方法来通过PHP转换.docx和.doc之间的支持他们在同一时间。
答案 4 :(得分:0)
如果您可以访问网络服务,请查看Docmosis云服务,因为它可以将doc文件与您的数据邮寄到一起,并返回doc / pdf / other。您可以https发布到服务以发出请求,因此从PHP开始非常简单。
答案 5 :(得分:0)
在linux上处理word文档文件的方法很多
antiword
- 转换为纯文本时效果不高。pyODconvert
open-office
或liboffice
- 通过UNO unoconv
实用程序 - 需要在服务器上安装权限有一个python脚本最适合在线文件转换,但您需要通过命令行转换这些文件。
仅使用php代码处理word文件没有特定和满意的解决方案。
我找了很长时间才达成这个建议。