Код: Выделить всё
$parser = new Parser();
$pdf = $parser->parseFile($_FILES['pdf']['tmp_name']);
$text = $pdf->getText();
// Normalize NBSP → plain space
$text = preg_replace('/\x{00A0}/u', ' ', $text);
$text = preg_replace('/\R+(?=\s*Weekly\s+Totals)/iu', ' ', $text);
// Split into lines
$lines = preg_split('/\R/u', $text);
$results = [];
$currentType = null;
foreach ($lines as $line) {
$line = trim($line);
< /code>
и он обнаруживает имена, когда < /p>
// Only lines with "Weekly Totals" matter now
if (stripos($line, 'Weekly Totals') === false) {
continue;
}
// Match: Name Weekly Totals $
if (preg_match('/^(.+?)\s+Weekly\s+Totals\s+\d+\.\d{2}\s+\$[\d,]+\.\d{2}\s+(\d+\.\d{2})$/i', $line, $m)) {
$name = ucwords(strtolower($m[1]));
Джош Брук Сильвестер Дэмиен 34,90 $ 259. 32.00
младшие еженедельные итоги
Следовательно, это не обнаруживается в результатах. Все данные игнорируются, и следующий человек в PDF получен (слева 34.90, стоимость 259, фактические 32) < /p>
Как можно приблизиться к этой ситуации? Я пытался исправить выражение режима по -разному, но не работал. < /P>
Проблема связана только с именами, которые разделены на две строки. Обнаружает все остальные имена, падающие в одну линию вместе с «еженедельным»
Подробнее здесь: https://stackoverflow.com/questions/795 ... column-php
Мобильная версия