【发布时间】:2016-06-14 02:10:11
【问题描述】:
我想使用这个库:http://www.princexml.com/ 这可以帮助我从 HTML/XML 文件创建 PDF 文件。
我从这里下载了 PHP zip 文件:http://www.princexml.com/download/wrappers/ 并将其添加到我在 codeigniter 目录中的“libraries”文件夹中。 据我所知,我只需要包含/调用库并定期使用它的功能。 https://ellislab.com/codeigniter/user-guide/general/creating_libraries.html
我正在使用 WAMP (Windows),因此我创建了一个别名到
C:\Program Files (x86)\Prince\engine\bin,其中找到了prince.exe,并将其命名为“prince”(http://localhost/prince)。
我的控制器上有这个:
public function banana(){
$this->load->library('prince');
$prince = new Prince('http://localhost/prince/prince.exe');
$xmlPath = 'http://localhost/temp/test.html';
$this->prince->convert_file_to_passthru($xmlPath);
}
我得到了这些错误:
遇到了 PHP 错误
严重性:警告
消息:Prince::__construct() 缺少参数 1,已调用 C:\wamp\www\tools\system\core\Loader.php 在第 1247 行并定义
文件名:libraries/prince.php
行号:48
回溯:
文件:C:\wamp\www\tools\application\libraries\prince.php 行:48 函数:_error_handler
文件:C:\wamp\www\tools\application\controllers\aso\Cli_kas.php 行: 304 函数:库
文件:C:\wamp\www\tools\index.php 行:292 功能:require_once
遇到了 PHP 错误
严重性:通知
消息:未定义变量:exePath
文件名:libraries/prince.php
行号:50
回溯:
文件:C:\wamp\www\tools\application\libraries\prince.php 行:50 函数:_error_handler
文件:C:\wamp\www\tools\application\controllers\aso\Cli_kas.php 行: 304 函数:库
文件:C:\wamp\www\tools\index.php 行:292 功能:require_once
遇到了 PHP 错误
严重性:警告
消息:proc_open(): CreateProcess 失败,错误代码 - 87
文件名:libraries/prince.php
行号:796
回溯:
文件:C:\wamp\www\tools\application\libraries\prince.php 行:796 函数:proc_open
文件:C:\wamp\www\tools\application\libraries\prince.php 行:528 函数:convert_internal_file_to_passthru
文件:C:\wamp\www\tools\application\controllers\aso\Cli_kas.php 行: 311 函数:convert_file_to_passthru
文件:C:\wamp\www\tools\index.php 行:292 功能:require_once
遇到未捕获的异常
类型:异常
消息:无法执行 "" --structured-log=buffered "http://localhost/temp/test.html" -o -
文件名:C:\wamp\www\tools\application\libraries\prince.php
行号:814
回溯:
文件:C:\wamp\www\tools\application\libraries\prince.php 行:528 函数:convert_internal_file_to_passthru
文件:C:\wamp\www\tools\application\controllers\aso\Cli_kas.php 行: 311 函数:convert_file_to_passthru
文件:C:\wamp\www\tools\index.php 行:292 功能:require_once
这是我第一次从 CodeIgniter 运行外部库,我不知道该怎么做,而且 codeigniter 文档没有提到太多信息。
创建 ALIAS 不起作用,所以我认为这就是它无法识别 exePath 的变量的原因。
我如何使用所有“Prince”库并让它在 CodeIgniter 上运行?
【问题讨论】:
-
根据我的经验,当您加载一个库时,它会创建该库工作者的一个实例(即 new Prince()),并将其作为成员添加到 CI 对象中。所以在你像你正在做的那样加载它之后:
$this->load->library('prince');,你可以使用$this-><prince_function>();访问prince函数 -
no.. 我得到的第一个错误是因为它期望库中的构造函数中有一个变量。我不知道该怎么做。我尝试添加 EXE 路径(使用别名:
http://localhost/prince/prince.exe),但它似乎不像那样工作:X -
您能否在删除手动实例化 Prince 类的第二行时验证这是否不起作用?
-
@Glubus 是的,我得到同样的错误:X
-
您也可以试试 PrinceXML 的云合作伙伴:docraptor.com。这将消除安装库的需要。
标签: php codeigniter wamp princexml