Php 如何加上「;“王子”;库到代码点火器?
我想使用这个库:它帮助我从HTML/XML文件创建PDF文件Php 如何加上「;“王子”;库到代码点火器?,php,codeigniter,wamp,princexml,Php,Codeigniter,Wamp,Princexml,我想使用这个库:它帮助我从HTML/XML文件创建PDF文件 我从这里下载了PHP zip文件:并将其添加到codeigniter目录中的“库”文件夹中。 据我所知,我只需要包括/调用库并定期使用它的功能。 我正在使用WAMP(Windows),因此我创建了一个别名,将其命名为Prince.exe所在的C:\Program Files(x86)\Prince\engine\bin,并将其命名为“Prince”(http://localhost/prince) 我的控制器上有这个: publ
- 我从这里下载了PHP zip文件:并将其添加到codeigniter目录中的“库”文件夹中。 据我所知,我只需要包括/调用库并定期使用它的功能。
- 我正在使用WAMP(Windows),因此我创建了一个别名,将其命名为Prince.exe所在的
,并将其命名为“Prince”(C:\Program Files(x86)\Prince\engine\bin
)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
函数:\u错误\u处理程序
文件:C:\wamp\www\tools\application\controllers\aso\Cli\u kas.php行:
304职能:图书馆
文件:C:\wamp\www\tools\index.php行:292函数:require\u一次
遇到一个PHP错误
严重性:通知
消息:未定义变量:exePath
文件名:libraries/prince.php
电话号码:50
回溯:
文件:C:\wamp\www\tools\application\libraries\prince.php行:50
函数:\u错误\u处理程序
文件:C:\wamp\www\tools\application\controllers\aso\Cli\u kas.php行:
304职能:图书馆
文件:C:\wamp\www\tools\index.php行:292函数:require\u一次
遇到一个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
功能:将\u内部\u文件\u转换为\u passthru
文件:C:\wamp\www\tools\application\controllers\aso\Cli\u kas.php行:
311函数:将\u文件\u转换为\u passthru
文件:C:\wamp\www\tools\index.php行:292函数:require\u一次
遇到未捕获的异常
类型:异常
消息:未能执行“”--结构化日志=已缓冲
“”-o-
文件名:C:\wamp\www\tools\application\libraries\prince.php
电话号码:814
回溯:
文件:C:\wamp\www\tools\application\libraries\prince.php行:528
功能:将\u内部\u文件\u转换为\u passthru
文件:C:\wamp\www\tools\application\controllers\aso\Cli\u kas.php行:
311函数:将\u文件\u转换为\u passthru
文件:C:\wamp\www\tools\index.php行:292函数:require\u一次
这是我第一次从CodeIgniter运行外部库,我不知道该做什么,CodeIgniter文档也没有提到太多信息
创建别名不起作用,因此我认为这就是它无法识别exePath
变量的原因
我如何使用所有“Prince”库并使其在CodeIgniter上工作?您应该尝试以下方法:
public function banana(){
// it should be a local path instead of URL
$exe_path = 'c:\\some_folder\prince\prince.exe';
// you can add parameter for the constructor call
$this->load->library('prince', $exe_path);
// it also should be a local path where the folder should be writable by apache
$xmlPath = 'c:\\some_folder\temp\test.html';
$this->prince->convert_file_to_passthru($xmlPath);
}
要将“Prince”用作CI上的库,请执行以下操作:
公共功能香蕉(){
//它应该是本地路径而不是URL
$exePath=array('exePath'=>'C:\ProgramFiles(x86)\Prince\engine\bin\Prince.exe');
}\u结构
:
public function\u构造($exePathArr)
{
//var_转储($exePathArr);
$exePath=“banana”;//只是为了确保这个变量是一个字符串:P
//变量转储($exePath);
$exePath=$exePathArr['exePath'];
//变量转储($exePath);
$this->exePath=$exePath;
$this->styleSheets='';
$this->scripts='';
...
.......
…….
我在WAMP和UBUNTU服务器上对此进行了测试。根据我的经验,加载库时,它会创建库工作者的实例(即new Prince()),并将其作为CI对象的成员添加。因此,在像加载一样加载它之后:
$this->load->library('Prince');
,您可以使用$this->()
no.。我遇到的第一个错误是,它希望库中的构造函数中有一个变量。我不确定该怎么办。我尝试添加EXE路径(使用别名:http://localhost/prince/prince.exe
)但它似乎不是这样工作的:xC然后,当您删除手动实例化Prince类的第二行时,是否可以验证这一点不起作用?@Glubus是的,我得到了相同的错误:XYou也可以尝试PrinceXML的云伙伴:。这将消除安装库的需要。不起作用。我尝试了这两个:$exe\u path='C:/Program%20Files%20(x86)/Prince/engine/bin/Prince.exe';
和$exe_path='C:\Program Files(x86)\Prince\engine\bin\Prince.exe';
这个:$xmlPath='C:\wamp\www\banana\index.html';
我在库文件夹中有pronce.php
文件。我做错了什么?我尝试将它移动到我的ubuntu服务器,但我得到了相同的错误。我
// you can add parameter for the constructor call
$this->load->library('prince', $exePath);
// it also should be a local path where the folder should be writable by apache
$xmlPath = 'C:\wamp\www\tools\files\banana\test.html';
$pdfPath = 'C:\wamp\www\tools\files\banana\test.pdf';
$this->prince->convert_file_to_file($xmlPath, $pdfPath);