我正在从事一个项目,这对我来说太难了...我解释。
我需要用PHP解析PDF文件,以分析这些文件的内容。为此,我使用pdfparser.org库。我首先尝试将此库放在通常的情况下,而没有任何结果。阅读了所有Internet后,由于此库需要安装作曲家(在我的网络托管上,我无法安装作曲家),因此我已经在Windows PC上应用了Composer进程。我在" autoLoad.php"文件中获得了"供应商"文件夹。很好!
然后,我试图将其正确包含在CodeIgniter中。我选择的解决方案是:
-
在应用程序/库/
中创建一个文件" pdfparser.php"class Pdfparser { public function __construct() { require_once APPPATH."/third_party/pdfparser.php"; } }
-
然后,我在应用程序/thix_party/以及/third_party/pdfparser.php中添加了pdfparser" composer"应用程序,我简单地put:
if (!defined('pdfparser')) { define('pdfparser', dirname(__FILE__) . '/'); require(pdfparser . 'pdfparser/autoload.php'); }
-
然后,我将此库添加到codeigniter/application/config/autoload.php as:
$autoload['libraries'] = array('pagination', 'form_validation','email','upload','pdfparser');
-
最后,我在应用程序/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文档后,我尝试将作曲家自动加载器添加到Core ...在Application/config/config/autoload.php中,我放置了:
$config['composer_autoload'] = APPPATH . "/third_party/pdfparser/autoload.php";
-
当然,它行不通。我迷路了...
正确使用作曲家。$config['composer_autoload'] = TRUE;
并在您的应用程序文件夹内运行composer install smalot/pdfparser
。然后在您的控制器内部运行,如果不使用:)
use SmalotPdfParser;
class My_controller extends CI_Controller {
}
使用作曲家时,要在项目中包括一个库,您会做类似的事情:
composer install smalot/pdfparser
然后,要包括新安装的库,您只需要包括作曲家提供的" autoLoad.php"文件:
<?php
include 'vendor/autoload.php';
$parser = new Pdfparser();
$pdf = $parser->parseFile(myfile.pdf);
$full_text = $pdf->getText();
var_dump($full_text);
仅此而已。
替换您的代码
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');