我正在尝试使用phpword,但使用它有困难。
这是我在application/libraries/words.php中的代码

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH."/third_party/PhpWord/Autoloader.php";

\PhpOffice\PhpWord\Autoloader::register(); \\NOT SURE IF THIS IS CORRECT

class Word extends PhpWord {
    public function __construct() {
        parent::__construct();
    }
}

基于phpword github,我必须这样使用它:
Alternatively, you can download the latest release from the releases page. In this case, you will have to register the autoloader.

require_once 'path/to/PhpWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register(); // WHERE SHOULD I PUT THIS?

当我试图从控制器加载库时:
$this->load->library('word');

它给了我一个错误,说:
Fatal error: Class 'PhpWord' not found in C:\xampp\htdocs\path\to\application\libraries\Word.php on line 7

我试图扩展AutoLoad类,但是PHP仍然抱怨它找不到Autoloader.php。
当我这样做的时候
file_exist(APPPATH."/third_party/PhpWord/Autoloader.php") // Similarly with PhpWord.php

它返回1。
有人知道怎么解决这个问题吗?

最佳答案

来自俄罗斯的爱;)
在库中用于codeigniter:

<?php
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');


    require_once  APPPATH.'/libraries/PHPWord/src/PhpWord/Autoloader.php';
    use PhpOffice\PhpWord\Autoloader as Autoloader;
    Autoloader::register();

    class Word extends Autoloader {

    }

    ?>

在类似控制器的示例代码中:
$this->load->library('word');
/* remove ;)
#require_once 'PHPWord/src/PhpWord/Autoloader.php';
#PhpOffice\PhpWord\Autoloader::register();
*/

// Template processor instance creation
echo date('H:i:s') , ' Creating new TemplateProcessor instance...' ;
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('text.docx');


$templateProcessor->setValue('sss','123');

echo date('H:i:s'), ' Saving the result document...';
$templateProcessor->saveAs('test1.docx');

测试了它的工作!

09-10 00:30