Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何加上「;“王子”;库到代码点火器?_Php_Codeigniter_Wamp_Princexml - Fatal编程技术网

Php 如何加上「;“王子”;库到代码点火器?

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

我想使用这个库:它帮助我从HTML/XML文件创建PDF文件

  • 我从这里下载了PHP zip文件:并将其添加到codeigniter目录中的“库”文件夹中。 据我所知,我只需要包括/调用库并定期使用它的功能。

  • 我正在使用WAMP(Windows),因此我创建了一个别名,将其命名为Prince.exe所在的
    C:\Program Files(x86)\Prince\engine\bin
    ,并将其命名为“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 函数:\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上的库,请执行以下操作:

  • 将Prince.php添加到库文件夹(/application/library/Prince.php),并确保文件名的首字母大写

  • 要将变量传递到库中,必须使用数组,而不是简单的字符串<代码>$exePath=array('exePath'=>'C:\ProgramFiles(x86)\Prince\engine\bin\Prince.exe')

    公共功能香蕉(){
    //它应该是本地路径而不是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);