标签 - PHP

PHP    2022-09-21 12:18:57    0    0    0

前言

这两天需要做一个支持读写微软办公软件的功能模块.最底下会说下自己下一步的想法,我先找了PhpSpreadheet这个第三方的扩展包,功能很完善,是一个纯PHP编写的库,看了官方文档,目前支持XLS,XML,XLSX,ODS,SLK,Gnumeric,CSV以及HTML.

软件支持

需要满足以下条件:

  1. PHP5.6及以上版本
  2. PHP扩展php_zip已开启
  3. PHP扩展php_xml已开启
  4. 启用PHP扩展php_gd2(如果没有编译)

安装

进入自己的项目目录,使用composer安装

  1. composer require phpoffice/phpspreadsheet

编写电子表格最简单的一个方法

  1. <?php
  2. require'vendor/autoload.php';
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  5. $spreadsheet = new Spreadsheet();
  6. $sheet = $spreadsheet->getActiveSheet();
  7. $sheet->setCellValue('A1', 'Hello World !');$writer = new Xlsx($spreadsheet);
  8. $writer->save('hello world.xlsx');

读取文件

可以使用PhpSpreadsheet的IOFactory识别文件类型并加载它,

  1. $inputFileName = './sampleData/example1.xls';
  2. $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);

此方法会在执行加载之前测试当前文件,为了防止恶意文件,比如说当前文件实际上是CSV文件或者包含HTML标记,但是已经给出了.xls的扩展名,它会拒绝用于.xls的加载器,而使用其他的加载器去检测当前文件.

读取文件实例

  1. <?php
  2. use PhpOffice\PhpSpread
PHP    2022-09-09 16:33:14    0    0    0

最简单、最准确的PHP中文转拼音的类

支持获取拼音以及拼音的缩写即首字母

支持utf-8、gbk等编码

能准确匹配6千多个常用汉字

单个汉字,一句话,中英文混合都完美支持

例子utf-8版

  1. include_once 'Pinyin.php';
  2. echo Pinyin::getPinyin("早上好");//获取拼音
  3. echo Pinyin::getShortPinyin("早上好");//获取拼音缩写

例子gbk版

  1. include_once 'Pinyin.php';
  2. echo Pinyin::getPinyin("早上好",'gb2312');//获取拼音
  3. 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

PHP ThinkCMF    2022-06-26 18:18:12    0    0    0

查看RestBaseController的源文件

  1. ...
  2. protected $allowedDeviceTypes = ['mobile', 'android', 'iphone', 'ipad', 'web', 'pc', 'mac', 'wxapp'];
  3. ...
  4. private function _initUser()
  5. {
  6. $token = $this->request->header('XX-Token');
  7. $deviceType = $this->request->header('XX-Device-Type');
  8. ...
  9. }
  10. ...

前端发送token和机器设备代码已写好,用户登录非常方便

PHP Thinkcmf    2021-12-29 15:53:24    14    0    0

在app根目录添加tags.php文件

  1. <?php
  2. return array(
  3. 'app_begin' => array('cmf\behavior\VisitBehavior'),
  4. );

在vender/thinkcmf/cmf/src/behavior目录下添加VisitBehavior.php

  1. <?php
  2. namespace cmf\behavior;
  3. class VisitBehavior
  4. {
  5. // 行为扩展的执行入口必须是run
  6. public function run()
  7. {
  8. //开始统计
  9. }
  10. }
PHP Laravel    2021-12-20 18:50:49    3    0    0

一、前言

最近看到社区里很多人都在讨论 Laravel-S,我也去 Github 上查看了一下该项目,其实 Laravel-S 是快速集成 Swoole 到 Laravel 或 Lumen,然后赋予它们更好的性能、更多可能性的一个胶水项目。我今天正好空闲下来,心想还是测试一波,看看性能会不会有提升呢?

二、创建 Laravel 项目

1、新建项目

  1. laravel new laravel-S

或者使用

  1. composer create-project laravel/laravel laravel-S --prefer-dist "6.2.*"

进行新建项目

2、配置好 .env 文件
配置如下:

  1. APP_NAME=laravel-s
  2. APP_ENV=local
  3. APP_KEY=base64:aQ/ykVTPt/++KGQ27oRw6Y3SeACoCyzJOHaNlSumymY=
  4. APP_DEBUG=true
  5. APP_URL=http://laravel-s.test
  6. LOG_CHANNEL=stack
  7. DB_CONNECTION=mysql
  8. DB_HOST=127.0.0.1
  9. DB_PORT=3306
  10. DB_DATABASE=laravel_s
  11. DB_USERNAME=root
  12. DB_PASSWORD=root
  13. BROADCAST_DRIVER=log
  14. CACHE_DRIVER=file
  15. QUEUE_CONNECTION=sync
  16. SESSION_DRIVER=file
  17. SESSION_LIFETIME=120
  18. REDIS_HOST=127.0.0.1
  19. REDIS_PASSWORD=null
  20. REDIS_PORT=6379
  21. MAIL_DRIVER=smtp
  22. MAIL_HOST=smtp.mailtrap.io
  23. MAIL_PORT=2525
  24. MAIL_USERNAME=null
  25. MAIL_PASSWORD=null
  26. MAIL_ENCRYPTION=null
  27. AWS_ACCESS_KEY_ID=
  28. AWS_SECRET_ACCESS_KEY=
  29. AWS_DEFAULT_REGION=us-east-1
  30. AWS_BUCKET=
  31. PUSHER_APP_ID=
  32. PUSHER_APP_K
PHP    2021-12-19 12:04:11    6    0    0

一个新的返回值类型void被引入。 返回值声明为 void 类型的方法要么干脆省去 return 语句,要么使用一个空的 return 语句。 对于 void 函数来说,NULL 不是一个合法的返回值。
返回的类型还有 void,定义返回类型为 void 的函数不能有返回值,即使返回 null 也不行。

void 函数可以省去 return 语句,或者使用一个空的 return 语句。

  1. <?php
  2. function swap(&$left, &$right) : void
  3. {
  4. if ($left === $right) {
  5. return www.xiaohonghuaw.com;
  6. }
  7. $tmp = $left;
  8. $left = $right;
  9. $right = $tmp;
  10. }
  11. $a = 1;
  12. $b = 2;
  13. var_dump(swap($a, $b), $a, $b);

以上实例输出结果:

  1. null
  2. int(2)
  3. int(1)

————————————————
版权声明:本文为CSDN博主「gzxiaomei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gzxiaomei/article/details/108822479

RabbitMQ PHP    2021-12-11 12:28:35    6    0    0

介绍

RabbitMQ是一个消息代理器:它接受和转发消息。你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里。在这个比喻中,RabbitMQ就是这里的邮箱,邮局和邮差。

RabbitMQ和邮局之间的主要区别是,它不处理纸张,而是接受、存储和转发二进制数据‒消息。

RabbitMQ,和一般的消息传递,使用专业术语。

生产者的工作就是发送消息。发送消息的程序是生产者:

title

队列类比一个邮箱,存在于RabbitMQ, 然而信息流通过RabbitMQ和您的应用程序,他们只能存储在一个队列。队列只受主机内存和磁盘限制的约束,它本质上是一个很大的消息缓冲区。会有许多生产者可以发送到一个队列的消息,许多消费者可以尝试从一个队列接收数据。这就是我们如何表示队列的方式:

title

消费者和生产者有着相似的意义. 消费者无非就是等待消息然后处理的程序:

title

请注意,生产者、消费者和代理不必同一主机上;事实上,在大多数应用程序中它们没有这样做。

"Hello World"

(使用PHP amqplib客户端)

在本教程的这一部分中,我们将用PHP编写两个程序;一个生产者发送一条消息,一个用户接收消息并将它们打印出来。我们会PHP amqplib API的忽略一些细节,集中在这个非常简单的事情刚刚开始。这是一个“Hello World”的消息传递。

在下图中,“p”是我们的生产商,“C”是我们的消费者。在中间的框是一个队列的消息缓冲区,RabbitMQ保持代表的消费。

title

PHP amqplib客户端库

RabbitMQ有很多协议。本教程介绍AMQP 0-9-1,这是一个开放的、通用的协议消息。有许多不同的语言RabbitMQ一批客户。我们将在本教程中使用PHP amqplib,composer解决依赖管理。

添加composer.json:

  1. {
  2. "require": {
  3. "php-amqplib/php-amqplib": ">=2.6.1"
  4. }
  5. }
  1. composer install
  2. # 或者 直接运行包引入
  3. composer require php-amqpli