- ベストアンサー
PHPでPDFファイル読み取りの課題
- PHPプログラムでPDFを読み込む際、Parserクラスが見つからないエラーに直面している。
- PDFファイルをテキストに変換しようとするが、クラスのインスタンス化に問題が発生している。
- エラーメッセージを解消するために、正しいパス設定やクラスのインクルードが必要である。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
----はなくしてください。 これは私が投稿の際にコードの終了を示すために書いているものです。 ?>がないのは最近のきまりごとみないな感じになっています。 https://sophiadigital.com/communication/end-tag/
その他の回答 (1)
- dell_OK
- ベストアンサー率13% (766/5720)
掲示されたコードを試したところ、インスタンスの作成はできました。 もしかすると、このファイル vendor/autoload.php がないか、このファイルの内容が不適切なのではないでしょうか。 参考になるかどうかわかりませんが、私がComposerでSmalot\PdfParserをインストールした際に作成された内容を載せておきますので確認してみてください。 ----composer.json { "require": { "smalot/pdfparser": "^2.7" } } ----vendor/autoload.php <?php // autoload.php @generated by Composer if (PHP_VERSION_ID < 50600) { if (!headers_sent()) { header('HTTP/1.1 500 Internal Server Error'); } $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; if (!ini_get('display_errors')) { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { fwrite(STDERR, $err); } elseif (!headers_sent()) { echo $err; } } trigger_error( $err, E_USER_ERROR ); } require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInit3ffbe28fb745b145fa2fcd19500ebf5e::getLoader(); ----
お礼
早速にご回答をいただき、有難うございます。 私の autoload.php は次のような、とても簡単なものになっています。 <?php // autoload.php @generated by Composer require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInitb228560e2e7b8c70a0292c1649b69de6::getLoader(); しかも、PHPファイルなのに ?> も入ってません。 今までこのファイルを見たこともなかったのですが、回答者さんが送って頂いたものに置き換えて実行してみましたが、今度は次のようなメッセージが出ています。 Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\NewBOM\vendor\autoload.php on line 33 33 行目は最後の ---- のある行です。 どこかでPHPファイルを閉じる ?> が必要なのでしょうか? もしそうなら、どこに入れるべきか教えてください。 よろしくお願いいたします。
お礼
ご回答ありがとうございます。 Composer 関係の部分を除き、回答者さんの送ってくれた<?PHP の部分だけを autoload.php に残して実行したところ、以下のメッセージが出ました。 Fatal error: Uncaught Error: Class 'ComposerAutoloaderInit3ffbe28fb745b145fa2fcd19500ebf5e' not found in C:\xampp\htdocs\NewBOM\vendor\autoload.php:26 Stack trace: #0 C:\xampp\htdocs\NewBOM\readPDF-purchase-order.php(3): include() #1 {main} thrown in C:\xampp\htdocs\NewBOM\vendor\autoload.php on line 26 line 26 とは最後の行です。 return ComposerAutoloaderInit3ffbe28fb745b145fa2fcd19500ebf5e::getLoader(); 何かのバージョンの違いでしょうか?
補足
別のアプリケーションで使っている VENDOR をコピーしてきて実行したら、テキストが読めるようになりました。 初めに動かなかったのは何が原因なのか、未だによくわかりませんが、取りあえず当座の問題は解決しました。 今回の質問はこれで締め切らせていただきます。 お付き合いどうもありがとうございました。 ベストアンサーにさせていただきます。