我正在开展一个项目,对我来说有点太难了...... 我解释一下。
我需要用PHP解析PDF文件,以分析这些文件的内容。为此,我使用pdfparser.org库。 我首先尝试通常包含这个库,没有任何结果。 阅读完所有的互联网后,由于这个库需要安装Composer(在我的网络托管上我无法安装Composer),我已经在我的Windows PC上应用了Composer过程。我得到了“autoload.php”文件的“vendor”文件夹。好!!
然后,我试图在CodeIgniter中正确包含它。我选择的解决方案是:
在application / libraries /
中创建文件“Pdfparser.php”class Pdfparser
{
public function __construct()
{
require_once APPPATH."/third_party/pdfparser.php";
}
}
然后,我在application / third_party /中添加了PdfParser“Composer”应用程序,并在/third_party/pdfparser.php中添加:
if (!defined('pdfparser')) {
define('pdfparser', dirname(__FILE__) . '/');
require(pdfparser . 'pdfparser/autoload.php');
}
然后,我将此库添加到CodeIgniter /application/config/autoload.php中:
$autoload['libraries'] = array('pagination', 'form_validation','email','upload','pdfparser');
最后,我在application / controllers / Admin.php中的函数中调用它:
$parser = new Pdfparser();
$pdf = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
(这4段代码直接取自官方文档:http://www.pdfparser.org/documentation,并且刚刚改编)。
但现在,我打破了互联网......我有这个错误:
PHP Fatal error: Call to undefined method PdfParser::parseFile() in /path/application/controllers/Admin.php on line 3083
看了CodeIgniter文档之后,我尝试将Composer自动加载器添加到核心...在application / config / autoload.php中我把:
$config['composer_autoload'] = APPPATH . "/third_party/pdfparser/autoload.php";
当然,它不起作用。我迷路了......
答案 0 :(得分:1)
正确使用composer。 $config['composer_autoload'] = TRUE;
并在您的应用程序文件夹中运行composer install smalot/pdfparser
。然后在你的控制器内运行它,如果不使用,请使用:)
use Smalot\PdfParser;
class My_controller extends CI_Controller {
}
答案 1 :(得分:1)
使用composer时,要在项目中包含库,您可以执行以下操作:
composer install smalot/pdfparser
然后,要包含新安装的库,您只需要包含" autoload.php"文件由composer提供:
<?php
include 'vendor/autoload.php';
$parser = new Pdfparser();
$pdf = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
var_dump($full_text);
没有更多。
答案 2 :(得分:0)
替换您的代码
class Pdfparser
{
public function __construct()
{
require_once APPPATH."/third_party/pdfparser.php";
}
}
与
<?php
require_once APPPATH."/third_party/pdfparser.php";
class Pdfparser
{
public function __construct()
{
}
}
包括在课堂外。
您可以像这样加载库,而不是使用自动加载......
$this->load->library('library_name');
示例:
$this->load->library('pdfparser');