- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть необходимость вытащить некоторые цифры из отчетов фирм.
Отчеты в ПДФ.
Написал парсер с использованием библиотеки pdfparser.
Протестировал на первом - все работает, увеличил лимит и все повисло.
Начал разбираться, оказалось что второй пдф весь из картинок, текста нет.
Это не проблема я бы с радостью такие пропускал, но не знаю как обработать это событие.
Вот часть кода парсера
// Создаем объект для парсинга PDF
$parser = new \Smalot\PdfParser\Parser();
// парсим PDF файл
$pdf = $parser->parseFile('https://urlfirm/get_file.php?id='.$idOtchet[0][1].'&name=file.pdf');
// ссылка из PDF
// Извлекаем все страницы из PDF файла
$pages = $pdf->getPages();
var_dump($pages);
// проходимся по каждой странице и получаем текст
foreach ($pages as $page) {
Вот где у меня var_dump - на этом участке зависает намертво и все. Как мне это можно обработать?
Например - если $pages не получен за 5 сек, прерываем и идем дальше?
второй пдф весь из картинок, текста нет.
1) объём
2) возможно, по свойствам пробежаться.. закономерности поискать
3) Если текста нет, зачем лезть в страницы?
ivan-lev, попробовал получить инфу о файле, тоже зависло на этом
$details = $pdf->getDetails();
var_dump($details);
---------- Добавлено 15.09.2019 в 12:56 ----------
Так тоже висит
// Loop over each property to extract values (string or array).
foreach ($details as $property => $value) {
if (is_array($value)) {
$value = implode(', ', $value);
}
echo $property . ' => ' . $value . "\n";
}
Дайте два пдф'а, с проблемный и нормальный, посмотрю чем вам можно помочь.
П.С. На var_dump у вас виснет, т.к. не хватает памяти на процесс.
infant, спс, отправил в личку.
У проблемного файла размер всего 3,5 мб. А на серваке в данный моменты свободно 5 гб оперативы и мунин не показывает что идет како-то рост потребления ресурсов когда виснет все.
Как я и предполагал, проблема в памяти.
Ваш парсер обрабатывает сразу все страницы, загоняя их в пулл процесса. Отсюда нехватка времени и памяти. (У меня не самый слабый и комп , на нем тоже не хватило ))) )
В качестве решения вашей проблемы подключаем еще одну библиотеку и с помощью нее скармливаем парсеру по одной странице за раз. На выходе получите массив со страницами без картинок. Обрабатывать вероятные ошибки в коде не стал, это на ваше усмотрение. Вырезать из массива пустые элементы (там где были картинки) тоже не стал, вдруг вам нужен четкий порядок страниц.
Парсер форума вырезает квадратные скобки.
$res = []; и $res[$i] = $txt;
infant, большое спасибо!