Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP生成word文档_Php_Ms Word_Docx_Doc_Phpdocx - Fatal编程技术网

用PHP生成word文档

用PHP生成word文档,php,ms-word,docx,doc,phpdocx,Php,Ms Word,Docx,Doc,Phpdocx,你知道用PHP和不使用COM组件生成doc和docx文件的方法吗?我尝试了创建docx文件的PHPWord,但这些文件无法在OpenOffice中打开,因为它们会导致它崩溃。我也尝试了PHPDocx,但它根本没有生成任何文件。请参见此处: 引用本文中最常用的方法: 使用HTTP头 在这个方法中,您需要使用 Word友好的CSS,并将标题信息添加到PHP脚本中。制作 确定您不使用外部样式表,因为所有内容都应该在 相同的文件 因此,系统将提示用户下载文件。此文件将 不是100%的“原始”Word文

你知道用PHP和不使用COM组件生成
doc
docx
文件的方法吗?我尝试了创建docx文件的
PHPWord
,但这些文件无法在
OpenOffice
中打开,因为它们会导致它崩溃。我也尝试了
PHPDocx
,但它根本没有生成任何文件。

请参见此处:

引用本文中最常用的方法:

使用HTTP头 在这个方法中,您需要使用 Word友好的CSS,并将标题信息添加到PHP脚本中。制作 确定您不使用外部样式表,因为所有内容都应该在 相同的文件

因此,系统将提示用户下载文件。此文件将 不是100%的“原始”Word文档,但它肯定会在MS中打开 文字应用。您可以在Unix和Windows上使用此方法 环境


可以使用模板技术在纯PHP中生成Docx文档


简单。

使用JS生成word文档:

我创建了一个简单的开源库,它将用值替换标记

例如,
Hi{name}
with
data={name:“John”}
将替换为
Hi John

这是:

演示:

正如我在这里提到的


到目前为止,我找到的最好的解决办法是。您可以将它与Zend框架一起使用。非常容易设置,并且与实际单词格式的偏差最小。它可以很好地将word文档从/转换为html(以及其他格式)

(相关)也不要放弃PHPDocx。它看起来像一个像样的包装不要放弃PHPWord也。。。这里面有很多工作要做。也不是所有版本的OO都可以读取docx文件,你确定你的版本可以吗?不过PHPDocx是付费的。没有机会!这是垃圾。不要再复制粘贴了。发送伪造的HTTP头和一些HTML输出不会使其成为Word文档。它可能会欺骗浏览器将其传递给Word,后者会隐式地转换它。新版本至少会发出警告。任何一个商业级防火墙都可能会阻止这种粗糙的解决方法。@mario-注意,这已经有四年的历史了,也是你标记的重复链接的部分答案。我同意你的一些概要,但是请注意,
垃圾
很可能是夸张。顺便说一句,很抱歉措辞强硬。但是这个代码示例被误传给了新手问题。刚刚结束了主题,并在主副本中进行了澄清。非常感谢您让我的生活变得更轻松。很好,伙计:)
<?php
  header("Content-type: application/vnd.ms-word");
  header("Content-Disposition: attachment;Filename=document_name.doc");    
  echo "<html>";
  echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
  echo "<body>";
  echo "<b>My first document</b>";
  echo "</body>";
  echo "</html>";
?>