// 加载文件 $spreadsheet = IOFactory::load($attachment); // 读取内容 $sheetData = $spreadsheet->getSheet(0)->toArray(null, true, true, true); // 循环检查数据 $allData = []; $allError = []; foreach ($sheetData as $key => $val) { if ($key == 1) { continue; } // 跳过空行 $val = array_map('trim', $val); // 去除首尾空格 if (empty(array_filter($val))) { continue; } try { $allData[] = $this->checkAndConvertItem($val); } catch (\Exception $exception) { $error = '第A' . $key . '行,此题需要检查,' . $exception->getMessage(); $allError[] = $error; } }
通过array_filter过滤即可
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
上篇文章已经讲解arrayacces的原理,现在来讲解下arrayaccess的实际应用。一个大型的互联网项目中必然会存在各种配置信息,例如多种数据库信息:mysql,tidb,mongodb,redis,某个业务模块单独的配置信息如比例,额度等等,那么该如何治理配置信息?PHP项目中大部分的框架都...
今天帮朋友查询wordpress执行超级慢的原因,特此记录开启fpm的慢日志,记录执行超过30秒的脚本request_slowlog_timeout = 30 slowlog = var/log/slow.log查看日志[23-May-2019 17...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:try { //开启事务 Db::startTrans(); &...