Как сделать, чтобы после ошибки в одной функции, следующие за ней продолжили работу?
К примеру под спойлером две функции и если в первой возникает ошибка, выполнение кода прекращается, соответственно вторая уже не сработает. Что надо прописать, чтобы избежать этого и после ошибки в одном модуле, другие продолжили работу
spoilerfunction xlsToCsv($fileXls)
{
// Read the Excel file.
try {
$reader = IOFactory::createReader("Xls");
} catch (\PhpOffice\PhpSpreadsheet\Reader\Exception $e) {
}
$reader->setReadDataOnly(true);
$spreadsheet = $reader->load(__DIR__ . '/attach/' . $fileXls);
$info = pathinfo($fileXls);
// Export to CSV file.
try {
$writer = IOFactory::createWriter($spreadsheet, "Csv");
} catch (\PhpOffice\PhpSpreadsheet\Writer\Exception $e) {
}
$writer->setDelimiter(';');
$writer->setEnclosure('"');
$writer->setLineEnding("\r\n");
$writer->setSheetIndex(0);
$writer->save(safe_file(__DIR__ . "/files/" . $info['filename'] . '.csv'));
}
// конвертація великих Exel файлів в Csv
function xlsxToCsv($filesXlsx)
{
ini_set('max_execution_time', 1900);
// Read the Excel file.
try {
$reader = ReaderEntityFactory::createReaderFromFile(__DIR__ . '/attach/' . $filesXlsx);
} catch (UnsupportedTypeException $e) {
}
$reader->setShouldFormatDates(true);
try {
$reader->open(__DIR__ . '/attach/' . $filesXlsx);
} catch (IOException $e) {
}
$info = pathinfo($filesXlsx);
// Export to CSV file.
$writer = WriterEntityFactory::createCSVWriter();
$writer->setShouldAddBOM(false);
try {
$writer->openToFile(safe_file(__DIR__ . "/files/" . $info['filename'] . '.csv'));
} catch (IOException $e) {
}
// Set delimiter.
$writer->setFieldDelimiter(";");
try {
foreach ($reader->getSheetIterator() as $sheet) {
foreach ($sheet->getRowIterator() as $row) {
// ... and copy each row into the new spreadsheet
$writer->addRow($row);
}
}
} catch (IOException $e) {
} catch (ReaderNotOpenedException $e) {
} catch (WriterNotOpenedException $e) {
}
$reader->close();
$writer->close();
}
Вызываются так
spoiler$dir = realpath(__DIR__ . '/attach');
$fileSPLObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($fileSPLObjects as $fullFileName => $fileSPLObject) {
if ($fileSPLObject->isFile()) {
$info = new SplFileInfo($fullFileName);
if ($info->getExtension() === 'zip') {
if (filesize($fullFileName) >= 10) {
extractZip(basename($fullFileName));
}
}
}
}
foreach ($fileSPLObjects as $fullFileName => $fileSPLObject) {
if ($fileSPLObject->isFile()) {
$info = new SplFileInfo($fullFileName);
if ($info->getExtension() === 'xls') {
if (filesize($fullFileName) >= 10) {
xlsToCsv(basename($fullFileName));
}
}
}
}
foreach ($fileSPLObjects as $fullFileName => $fileSPLObject) {
if ($fileSPLObject->isFile()) {
$info = new SplFileInfo($fullFileName);
if ($info->getExtension() === 'xlsx') {
if (filesize($fullFileName) >= 10) {
xlsxToCsv(basename($fullFileName));
}
}
}
}
Если я жестко натупил и наваял ересь, так и говорите, думаю вы понимаете, мой уровень - еще очень много учиться))