php - 每个循环之后的错误结果。JSON
问题描述
我有一个 JSON 结果文件,其中包含所有链接,但是在 foreach 循环之后,我几乎错过了所有数据。
我已经调试了代码并将爆炸从 - 更改为 _ ,但它没有帮助。
$pdfs = preg_grep('~\.(pdf)$~', getDirContents($config['directory']));
$result = [];
echo '<pre>';
var_dump($pdfs);
foreach ($pdfs as $doc) {
var_dump($doc);
$url = explode("/", $doc);
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile($doc);
$text = $pdf->getText();
$result[] = [
'file' => $url[9],
'text' => $text,
];
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($result));
fclose($fp);
我除了可以拥有 JSON 文件中包含的所有内容。
array(27) {
[0]=>
string(111) "/home/***/domains/***.com/public_html/doc/documenten/something/247Rostar-QRC-TR-A4-android-DEF.pdf"
[1]=>
string(107) "/home/***/domains/***.com/public_html/doc/documenten/something/247Rostar-QRC-TR-A4-iOs-DEF.pdf"
[2]=>
string(102) "/home/***/domains/***.com/public_html/doc/documenten/something/Anonimiseren Databases.pdf"
[3]=>
string(110) "/home/***/domains/***.com/public_html/doc/documenten/something/Arbeidstijdenwet in CAS.pdf"
[4]=>
string(128) "/home/***/domains/***.com/public_html/doc/documenten/something/Configuration Reference Manual - CAS 5,18.pdf"
[5]=>
string(128) "/home/***/domains/***.com/public_html/doc/documenten/something/Configuration Reference Manual - CAS 5,19.pdf"
}
string(111) "/home/***/domains/***.com/public_html/doc/documenten/something/247Rostar-QRC-TR-A4-android-DEF.pdf"
string(107) "/home/***/domains/***.com/public_html/doc/documenten/something/247Rostar-QRC-TR-A4-iOs-DEF.pdf"
string(102) "/home/***/domains/***.com/public_html/doc/documenten/something/Anonimiseren Databases.pdf"
string(110) "/home/***/domains/***.com/public_html/doc/documenten/something/Arbeidstijdenwet in CAS.pdf"
在你给出答案之前阅读这篇文章! 第一个数组显示了 JSON 文件中的所有内容,底部的数组显示了 for each 循环之后的结果。
方法调用后:
$pdf = $parser->parseFile($doc);
调用此方法后失败。
解决方案
在较早版本的Smalot\PdfParser
0.12.0 之前,该parseFile()
方法会消除解析 PDF 内容时发生的错误。请参阅Smalot/PdfParser/Parser.php 第 74 行。
此问题已在 v0.13.0 中修复。确保您至少运行 v0.13。
即使在最新版本中,@
运算符仍然用于在创建新TCPDF_PARSER
对象时消除错误。见第 93 行:
@$parser = new \TCPDF_PARSER(ltrim($content));
这里的任何致命错误也会导致代码退出而没有明确的错误消息。
如果您仍然遇到 v0.14 的问题,请编辑Smalot/PdfParser/Parser.php
并删除@
. 您应该能够看到出了什么问题。
推荐阅读
- ios - 共享时如何使 URL 字符串具有可链接性
- gps - 将预先录制的 Lidar-PCAP 文件和 IMU-Measurments 发布为 ros-bag
- c# - 当我运行我的 .net 代码时出现异常“请求的操作需要提升”
- postgresql - pg_restore 使用 ssl 证书
- mongodb - Docker top 导致没有这样的容器
- python - 如何在 Flask Jinja2 网站的斜线下托管 Jekyll 和静态 HTML 网站?
- java - 如何编写一个程序从用户那里获取三个输入:一个字符串(转换为数字)、一个 int 和一个 double 并将它们的值相加
- sql - 如果与外键约束一起使用,“非空”约束是否多余?
- jquery - jQuery UI Datepicker 您选择的日期是星期六或星期日
- python-3.x - 如何使用python绘制带有一些文本的reactangle