这两天需要做一个支持读写微软办公软件的功能模块.最底下会说下自己下一步的想法,我先找了PhpSpreadheet这个第三方的扩展包,功能很完善,是一个纯PHP编写的库,看了官方文档,目前支持XLS,XML,XLSX,ODS,SLK,Gnumeric,CSV以及HTML.
需要满足以下条件:
进入自己的项目目录,使用composer安装
composer require phpoffice/phpspreadsheet
编写电子表格最简单的一个方法
<?phprequire'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的加载器,而使用其他的加载器去检测当前文件.
<?phpuse 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文件
<?phpreturn array('app_begin' => array('cmf\behavior\VisitBehavior'),);
在vender/thinkcmf/cmf/src/behavior目录下添加VisitBehavior.php
<?phpnamespace cmf\behavior;class VisitBehavior{// 行为扩展的执行入口必须是runpublic 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-sAPP_ENV=localAPP_KEY=base64:aQ/ykVTPt/++KGQ27oRw6Y3SeACoCyzJOHaNlSumymY=APP_DEBUG=trueAPP_URL=http://laravel-s.testLOG_CHANNEL=stackDB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=laravel_sDB_USERNAME=rootDB_PASSWORD=rootBROADCAST_DRIVER=logCACHE_DRIVER=fileQUEUE_CONNECTION=syncSESSION_DRIVER=fileSESSION_LIFETIME=120REDIS_HOST=127.0.0.1REDIS_PASSWORD=nullREDIS_PORT=6379MAIL_DRIVER=smtpMAIL_HOST=smtp.mailtrap.ioMAIL_PORT=2525MAIL_USERNAME=nullMAIL_PASSWORD=nullMAIL_ENCRYPTION=nullAWS_ACCESS_KEY_ID=AWS_SECRET_ACCESS_KEY=AWS_DEFAULT_REGION=us-east-1AWS_BUCKET=PUSHER_APP_ID=PUSHER_APP_K
一个新的返回值类型void被引入。 返回值声明为 void 类型的方法要么干脆省去 return 语句,要么使用一个空的 return 语句。 对于 void 函数来说,NULL 不是一个合法的返回值。
返回的类型还有 void,定义返回类型为 void 的函数不能有返回值,即使返回 null 也不行。
void 函数可以省去 return 语句,或者使用一个空的 return 语句。
<?phpfunction 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);
以上实例输出结果:
nullint(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