本文介绍了CodeIgniter PHPWord使用作为third_party的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用PHPWord并且有困难使用它。



这是我的应用程序中的代码/ libraries / words.php

 <?php if(!defined('BASEPATH'))exit('不允许直接脚本访问); 

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

\PhpOffice\PhpWord\Autoloader :: register(); \\不确定如果这是正确的

类Word扩展PhpWord {
public function __construct(){
parent :: __ construct();
}
}



基于PHPWord github,我必须使用:

 或者,您可以从版本页面下载最新版本。在这种情况下,您必须注册自动装入器。 

require_once'path / to / PhpWord / src / PhpWord / Autoloader.php';
\PhpOffice\PhpWord\Autoloader :: register(); //我应该放在哪里?

当我尝试从我的控制器加载库:

  $ this-> load-> library('word'); 

它给我错误说:

 致命错误:未在C:\ xampp\htdocs\path\to\application\libraries\Word.php第7行找到类'PhpWord'

我试图扩展Autoloader类,但PHP仍然抱怨,它找不到Autoloader.php。 / p>

当我执行

  file_exist(APPPATH。/ third_party / PhpWord /Autoloader.php)//与PhpWord.php类似

它返回1。

有人知道如何解决这个问题吗?

解决方案


在库中使用类似于CodeIgniter:

 <?php 
if(!defined BASEPATH'))exit('不允许直接脚本访问);


require_once APPPATH。'/ libraries / PHPWord / src / PhpWord / Autoloader.php';
使用PhpOffice\PhpWord\Autoloader作为自动加载器;
Autoloader :: register();

class Word extends Autoloader {

}

?>

在控制器样例代码中:

  $ this-> load-> library('word'); 
/ * remove;)
#require_once'PHPWord / src / PhpWord / Autoloader.php';
#PhpOffice\PhpWord\Autoloader :: register();
* /

//模板处理器实例创建
echo date('H:i:s'),'创建新的TemplateProcessor实例...';
$ templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('text.docx');


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

回声日期('H:i:s'),'保存结果文档...';
$ templateProcessor-> saveAs('test1.docx');

测试成功了!


I am trying to use PHPWord and having a difficulties to use it.

This my code within 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(); 
    } 
}

Based on PHPWord github, i must use it like this:

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?

When i try to load the library from my controller as such:

$this->load->library('word');

it gives me error that says:

Fatal error: Class 'PhpWord' not found in C:\xampp\htdocs\path\to\application\libraries\Word.php on line 7

i tried to extends the Autoloader class, but PHP still complains that it can't found Autoloader.php.

when i do

file_exist(APPPATH."/third_party/PhpWord/Autoloader.php") // Similarly with PhpWord.php

it returns 1.

Does anyone know how to fix this?

解决方案

From Russia with love;)Use like this in library for 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 {

    }

    ?>

In controller like code from samples:

$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');

Tested it works!

这篇关于CodeIgniter PHPWord使用作为third_party的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 14:02