Я работаю над проектом, и мне становится слишком тяжело … Я объясню.
Мне нужно разобрать PDF-файлы с PHP, чтобы проанализировать содержимое этих файлов. Для этого я использую библиотеку pdfparser.org . Сначала я попытался включить эту библиотеку, как обычно, без какого-либо результата. После прочтения всего Интернета, поскольку для этой библиотеки требуется, чтобы Composer был установлен (и на моем веб-хостинге я не могу установить Composer), я применил процесс Composer на своем ПК с Windows. Я получил папку «vendor» с файлом «autoload.php». Отлично!
Затем я попытался правильно включить его в CodeIgniter. Решение, которое я выбрал, это:
Создание файла «Pdfparser.php» в приложении / библиотеках /
class Pdfparser { public function __construct() { require_once APPPATH."/third_party/pdfparser.php"; } }
Затем я добавляю приложение PdfParser «Композитор» в application / third_party /, а в /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');
Наконец, я называю это своей функцией в приложении / контроллерах / Admin.php:
$parser = new Pdfparser(); $pdf = $parser->parseFile(myfile.pdf); $full_text = $pdf->getText();
(Этот блок кода непосредственно взят из официальной документации здесь: 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";
Конечно, это не работает. И я потерялся …
Используйте композитор правильно. $config['composer_autoload'] = TRUE;
и внутри вашей папки приложения запустить composer install smalot/pdfparser
. Затем внутри вашего контроллера он должен работать, если не использовать Use 🙂
use Smalot\PdfParser; 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');