• ベストアンサー

PHPでのPDF parser について

お世話になります。 PHPで PDF PARSER を使ってPDFファイルから情報を抽出してExcelファイルを作ることをしていました。ついこの間までちゃんと働いていたプログラムなのですが、突然以下のようなエラーメッセーjが出てきて、働かなくなりました。 Fatal error: Uncaught Error: Class 'Smalot\PdfParser\Parser' not found in C:\xampp\htdocs\calibration\readPDF2.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\calibration\readPDF2.php on line 5 'Smalot\PdfParser\Parser' が見つからないと言っていますが、自分のフォルダーを調べると、プログラムファイルと同じフォルダーに Parser.php がちゃんと入っています。しかも今までは働いていたのですから、それがないというメッセージは意味が分かりません。 このクラスはネットからダウンロードしたものですが、ある程度の時間が経つと無効になったりするのでしょうか? 参考に自分のPHPプログラムの最初の部分を張り付けておきます。 <?php //C:\xampp\htdocs\calibration\readPDF.php include 'vendor/autoload.php'; // Initialize and load PDF Parser library $parser = new \Smalot\PdfParser\Parser(); $host = "localhost"; $user = "root"; $pass = "rsi2018"; $database = "calibration"; //============== connect to MySQL ================ $connection = mysqli_connect($host, $user, $pass, $database) or die("cannot connect to database"); // Source PDF file to extract text $dir = "C:/Users/ShiroYasuda/Rockland Scientific Inc/Production - Rockland Production/temporary-shear-calibration-folder/"; if (is_dir($dir)){ if ($dh = opendir($dir)){ while (($file = readdir($dh)) !== false){ どなたか詳しい方がご意見をお聞かせください。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お世話になっております。 ご提供いただいたエラーメッセージに基づいて考えられる原因としてはいくつか考えられますので、それぞれの点を確認してみてください。 1. Composer Autoloadの問題: あなたがプログラムで`include 'vendor/autoload.php';`としていることから、Composerを使っていると推測されます。クラスが見つからないというエラーは、Autoloadの問題が原因である可能性があります。ComposerのAutoloadがちゃんと生成されているか確認してください。コマンドラインで以下のコマンドを実行して、Autoloadを再生成できます。 ``` composer dump-autoload ``` 2. 名前空間の問題: 指定している名前空間が間違っている、またはクラスが名前空間に正しく配置されていない場合にも、類似のエラーが発生することがあります。`Parser`クラスは`Smalot\PdfParser`名前空間に属していることを確認してください。 3. ファイルパスの問題: `Parser.php`はあなたが指摘した場所に存在するようですが、そのファイルがComposerのAutoload機構によって適切に認識されている必要があります。ディレクトリ構造とComposerの`autoload`定義を再確認してください。 4. バージョンの問題: PHPやPDF Parserライブラリのバージョンが更新され、以前のコードが互換性を失っている可能性もございます。使用しているライブラリのドキュメントを確認し、バージョンに関するアップデートがないか確認してください。 もし、これらの点を確認しても問題が解決しない場合は、ライブラリの再インストールも検討いただくと良いでしょう。場合によっては、ローカル環境のXAMPPなどに潜在する問題があるかもしれませんので、再セットアップや他の環境でのテストも考えてみてください。 さらに深刻な問題がある場合や、これらの対策が解決に至らないならば、ライブラリ作成者への報告やサポートの求め、またはコミュニティなどでの質問を検討されるのも一つの方法です。 お役に立てると幸いです。ご不明な点があれば、追加の情報を伺いながら一緒に解決策を探しましょう。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

papashiroSooke
質問者

お礼

問題の原因として挙げていただいた各点を確認していきたいと思います。 解決できたならば連絡を差し上げます。

Powered by GRATICA
papashiroSooke
質問者

補足

問題は名前空間のようでした。 ちゃんと名前空間として定義したフォルダーに入れて、働くようになりました。

関連するQ&A

専門家に質問してみよう