Doc文件当然是乱码啊。你用记事本打开doc文件就是乱码。doc文件被word编码过了的,不可能简单的就能直读。
成都创新互联公司专注于中大型企业的成都网站制作、成都做网站、外贸营销网站建设和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户1000+,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
如果想读自己预设的doc或者用php生成别人能用word打开看的doc文件很简单。因为doc可以直接写成html格式
但如果你想用PHP读别人用word保存的文件,在windows下必须用到php的COM组件word.application。并且服务器安装了word程序。这段程序网上很多,我就不再复制了。
如果是linux服务器的话,方法五花八门,可以找第三方开发的程序比如catword,antiword,装了openoffice也可以用它的组件
1, 你的doc是怎么存到数据库的?就是一个text字段或者varchar字段的话,那么读出来的就是一个字符串,然后你去生成word;
2, 看你的代码好像是打开一个文件,然后用fread直接读出来,然后存数据库,然后取出来,多word这种复杂类型的文档不能直接这么处理。除非是一个简单 的文本文档。
move_uploaded_file用这个上传文件。
然后用file_get_contents 读到一个字符串中。
?
// 建立一个指向新COM组件的索引
$word = new COM(”word.application”) or die(”Can't start Word!”);
// 显示目前正在使用的Word的版本号
//echo “Loading Word, v. {$word-Version}br”;
// 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)
// to open the application in the forefront, use 1 (true)
//$word-Visible = 0;
//打?一个文档
$word-Documents-OPen(”d:\myweb\muban.doc”);
//读取文档内容
$test= $word-ActiveDocument-content-Text;
echo $test;
echo “br”;
//将文档中需要换的变量更换一下
$test=str_replace(”{变量}”,”这是变量”,$test);
echo $test;
$word-Documents-Add();
// 在新文档中添加文字
$word-Selection-TypeText(”$test”);
//把文档保存在目录中
$word-Documents[1]-SaveAs(”d:/myweb/comtest.doc”);
// 关闭与COM组件之间的连接
$word-Quit();
?
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款