// 加载文件 $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 //对比$this和self /* * $this更倾向于对象本身 * */ class Par{ public  ...
本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...
xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
<?php /** * daemonize让当前脚本为守护进程执行 * @param string $callback 匿名函数 */ function daemonize($callback) {...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...