// 加载文件 $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过滤即可
在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 = filter_input(INPUT_POST...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
【一】.介绍session由于HTTP是无状态的请求,创建一个会话需要保持必须需要身份标识。当用户第一次访问,PHP会为用户创建一个唯一的sessionid,并将sessionid通过cookie发送给浏览器,并在服务器的临时文件创建一个以sessionid为名的文件用来保存这个sessionid保...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...
在编写多进程的实例中我在每个进程中使用如下代码://调用等待信号的处理器 while (true) { pcntl_signal_dispatch(); }开启5个进程,cpu直接100%修正之后的代码://调用等待信号的处理器 while&...
自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": { "easy...