【问题标题】:How to read a .docx file via PHP Word sample code in Codeigniter如何通过 Codeigniter 中的 PHP Word 示例代码读取 .docx 文件
【发布时间】:2017-10-30 11:02:18
【问题描述】:

我正在尝试通过 PHP Word 库读取我的项目文件夹中的 .docx 文件。我已经包括了这样的自动加载器: include_once 'vendor/autoload.php'; 在我的控制器中。

控制器功能代码:

function test_phpword()
{
 $a=base_url();
 $path=$a."".'123.docx';
 $source =$path;

 echo date('H:i:s'), " Reading contents from `{$source}`";
 $phpWord = \PhpOffice\PhpWord\IOFactory::load($source);

 echo write($phpWord, basename(__FILE__, '.php'), $writers);
}

但出现如下错误:

06:18:42 从http://localhost/myproject/123.docx读取内容

致命错误:未捕获的异常:找不到存档文件。在 /opt/lampp/htdocs/myproject/vendor/phpoffice/common/src/Common/XMLReader.php:51

【问题讨论】:

  • 它是否适用于doc 文件类型?
  • 我现在尝试使用 .doc 文件..仍然错误.. opt/lampp/htdocs/myproject/vendor/phpoffice/common/src/Common/XMLReader.php 在第 51 行。
  • 我在PHPExcel 有同样的问题。我想阅读xlsx 文件类型。在 Windows 中,它可以工作,但在 Ubuntu 中不行。但如果我阅读xls,两者都有效。
  • 好的..我在 ../vendor/phpoffice/phpword/src/PhpWord/Reader/Word2007.php(145).. 中遇到了一些错误。但无法包含在我的问题中。跨度>
  • 你能编辑 PHPExcel 库中的文件吗?它在 Vendor 文件夹的所有文件夹中都显示了一个锁定符号……你也一样吗?

标签: codeigniter docx phpword


【解决方案1】:

在加载路径的时候,你必须给出doc文件的相对路径,如下所示,

$random_name = 123.docx;
$contents = \PhpOffice\PhpWord\IOFactory::load('../uploads/'.$random_name);

我不知道你的$base_url 是什么,但是如果它是像http://path/to/doc/file 这样的绝对路径,它将不起作用。

我已经对此进行了研究并进行了测试。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    试试这个

    改变

    $path=$a."".'123.docx';
    

    到

    $path='123.docx';
    

    并将 123.docx 放在您的 php 脚本文件旁边。确保这两个文件在同一个地方。再次运行你的 php 脚本。

    如果这有帮助并且工作正常,您可以检查文件路径并对您的 php 程序进行适当的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多