这两天需要做一个支持读写微软办公软件的功能模块.最底下会说下自己下一步的想法,我先找了PhpSpreadheet这个第三方的扩展包,功能很完善,是一个纯PHP编写的库,看了官方文档,目前支持XLS,XML,XLSX,ODS,SLK,Gnumeric,CSV以及HTML.
需要满足以下条件:
进入自己的项目目录,使用composer安装
composer require phpoffice/phpspreadsheet
编写电子表格最简单的一个方法
<?php
require'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');
可以使用PhpSpreadsheet的IOFactory识别文件类型并加载它,
$inputFileName = './sampleData/example1.xls';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
此方法会在执行加载之前测试当前文件,为了防止恶意文件,比如说当前文件实际上是CSV文件或者包含HTML标记,但是已经给出了.xls的扩展名,它会拒绝用于.xls的加载器,而使用其他的加载器去检测当前文件.
<?php
use PhpOffice\PhpSpread
最简单、最准确的PHP中文转拼音的类
支持获取拼音以及拼音的缩写即首字母
支持utf-8、gbk等编码
能准确匹配6千多个常用汉字
单个汉字,一句话,中英文混合都完美支持
例子utf-8版
include_once 'Pinyin.php';
echo Pinyin::getPinyin("早上好");//获取拼音
echo Pinyin::getShortPinyin("早上好");//获取拼音缩写
例子gbk版
include_once 'Pinyin.php';
echo Pinyin::getPinyin("早上好",'gb2312');//获取拼音
echo Pinyin::getShortPinyin("早上好",'gb2312');//获取拼音缩写
代码地址
https://github.com/sunSK91/Spencer_php_pinyin
————————————————
版权声明:本文为CSDN博主「Spencer0411」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ssk0411/article/details/109068856
查看RestBaseController的源文件
...
protected $allowedDeviceTypes = ['mobile', 'android', 'iphone', 'ipad', 'web', 'pc', 'mac', 'wxapp'];
...
private function _initUser()
{
$token = $this->request->header('XX-Token');
$deviceType = $this->request->header('XX-Device-Type');
...
}
...
前端发送token和机器设备代码已写好,用户登录非常方便
在app根目录添加tags.php文件
<?php
return array(
'app_begin' => array('cmf\behavior\VisitBehavior'),
);
在vender/thinkcmf/cmf/src/behavior目录下添加VisitBehavior.php
<?php
namespace cmf\behavior;
class VisitBehavior
{
// 行为扩展的执行入口必须是run
public function run()
{
//开始统计
}
}
最近看到社区里很多人都在讨论 Laravel-S,我也去 Github 上查看了一下该项目,其实 Laravel-S 是快速集成 Swoole 到 Laravel 或 Lumen,然后赋予它们更好的性能、更多可能性的一个胶水项目。我今天正好空闲下来,心想还是测试一波,看看性能会不会有提升呢?
1、新建项目
laravel new laravel-S
或者使用
composer create-project laravel/laravel laravel-S --prefer-dist "6.2.*"
进行新建项目
2、配置好 .env 文件
配置如下:
APP_NAME=laravel-s
APP_ENV=local
APP_KEY=base64:aQ/ykVTPt/++KGQ27oRw6Y3SeACoCyzJOHaNlSumymY=
APP_DEBUG=true
APP_URL=http://laravel-s.test
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_s
DB_USERNAME=root
DB_PASSWORD=root
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_K
一个新的返回值类型void被引入。 返回值声明为 void 类型的方法要么干脆省去 return 语句,要么使用一个空的 return 语句。 对于 void 函数来说,NULL 不是一个合法的返回值。
返回的类型还有 void,定义返回类型为 void 的函数不能有返回值,即使返回 null 也不行。
void 函数可以省去 return 语句,或者使用一个空的 return 语句。
<?php
function swap(&$left, &$right) : void
{
if ($left === $right) {
return www.xiaohonghuaw.com;
}
$tmp = $left;
$left = $right;
$right = $tmp;
}
$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);
以上实例输出结果:
null
int(2)
int(1)
————————————————
版权声明:本文为CSDN博主「gzxiaomei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gzxiaomei/article/details/108822479
RabbitMQ是一个消息代理器:它接受和转发消息。你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里。在这个比喻中,RabbitMQ就是这里的邮箱,邮局和邮差。
RabbitMQ和邮局之间的主要区别是,它不处理纸张,而是接受、存储和转发二进制数据‒消息。
RabbitMQ,和一般的消息传递,使用专业术语。
生产者的工作就是发送消息。发送消息的程序是生产者:
队列类比一个邮箱,存在于RabbitMQ, 然而信息流通过RabbitMQ和您的应用程序,他们只能存储在一个队列。队列只受主机内存和磁盘限制的约束,它本质上是一个很大的消息缓冲区。会有许多生产者可以发送到一个队列的消息,许多消费者可以尝试从一个队列接收数据。这就是我们如何表示队列的方式:
消费者和生产者有着相似的意义. 消费者无非就是等待消息然后处理的程序:
请注意,生产者、消费者和代理不必同一主机上;事实上,在大多数应用程序中它们没有这样做。
(使用PHP amqplib客户端)
在本教程的这一部分中,我们将用PHP编写两个程序;一个生产者发送一条消息,一个用户接收消息并将它们打印出来。我们会PHP amqplib API的忽略一些细节,集中在这个非常简单的事情刚刚开始。这是一个“Hello World”的消息传递。
在下图中,“p”是我们的生产商,“C”是我们的消费者。在中间的框是一个队列的消息缓冲区,RabbitMQ保持代表的消费。
RabbitMQ有很多协议。本教程介绍AMQP 0-9-1,这是一个开放的、通用的协议消息。有许多不同的语言RabbitMQ一批客户。我们将在本教程中使用PHP amqplib,composer解决依赖管理。
添加composer.json:
{
"require": {
"php-amqplib/php-amqplib": ">=2.6.1"
}
}
composer install
# 或者 直接运行包引入
composer require php-amqpli