PHP & Swoole
PHP实例
Jason Ho
分享技术,深度学习,社区中活跃的一份子
展开
-
查看,修改,解除composer镜像
查看:composer config -gl修改(阿里云的镜像,速度非常快,非常稳定):composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/或者(该镜像在实际使用中不是特别稳定,可以尝试,但不建议):composer config -g repo.packagist compos...原创 2019-11-07 11:17:23 · 2089 阅读 · 0 评论 -
composer常用命令使用
1、查看版本:composer --version2、更改 Packagist 为国内镜像composer config -g repo.packagist composer https://packagist.phpcomposer.com3、更新 composercomposer selfupdate4、列出所有已经安装的包composer show...原创 2019-11-04 14:46:55 · 340 阅读 · 0 评论 -
Composer 安装与使用
Composer 的安装参考:https://www.runoob.com/w3cnote/composer-install-and-usage.htmlWondows 平台Wondows 平台上,我们只需要下载 Composer-Setup.exe 后,一步步安装即可。需要注意的是你需要开启 openssl 配置,我们打开 php 目录下的 php.ini,将 extension=php_openssl.dll 前面的分号去掉就可以了。安装成功后,我们可以通过命令窗口(cmd) 输入 compo原创 2020-09-07 14:50:23 · 286 阅读 · 0 评论 -
解决:No application encryption key has been specified
出现此问题的原因是:没有设置应用程序加密密钥phpstorm终端中执行:php artisan key:generate原创 2019-11-07 11:39:53 · 29265 阅读 · 1 评论 -
使用composer安装laravel,附安装错误解决办法
安装laravel其实很简单,只需要一条命令,如下:(在你的www目录下安装即可,先切换到www目录,打开cmd)composer create-project laravel/laravel=5.6.* laravel --prefer-dist备注:1、需要安装什么版本,只需把后面那个5.6改了就可以了。安装好后,会生成一个laravel的文件夹。2、–prefer-dist 会从g...原创 2019-11-07 10:08:03 · 10350 阅读 · 1 评论 -
解决报错:WebSocket connection to ‘ws://124.207.120.104:9502/‘ failed: Error in connection establish
使用swoole连接WebSocket时报错: WebSocket connection to ‘ws://123.207.120.104:9502/’ failed: Error in connection establish请运行以下代码:关闭服务:systemctl stop firewalld.service关闭后出现如下图则说明连接成功。...原创 2019-09-09 09:57:58 · 169493 阅读 · 5 评论 -
swoole服务端与客户端 异步任务
服务端:在Linux服务器上直接执行:php Server.php 打开长链接<?phpclass Server{ private $serv; public function __construct() { $this->serv = new swoole_server("0.0.0.0", 9501); $this->serv->set(array( 'worker_num' =>原创 2020-11-12 19:33:12 · 172 阅读 · 0 评论 -
swoole服务端TP5
运行命令:php think swoser<?php/** * swoole通用服务 */namespace app\home\swoole;use app\console\common\ServerCommand;use app\home\controller\AmazonExport;use app\home\controller\AmazonEx;use think\Log;use think\console\Input;use think\console\Outpu原创 2021-04-19 17:18:23 · 123 阅读 · 0 评论 -
Swoole安装方法
Swoole是PHP的一个扩展。直接按下面的步骤操作吧,just do it.1> wget http://pecl.php.net/get/swoole-4.2.9.tgz //下载swoole2> tar -zxvf swoole-4.2.9 //解压swoole3&g...原创 2019-09-07 14:24:18 · 397 阅读 · 0 评论 -
Yii最详细数据库增删改查及其他操作
1.批量增加数据或单条增加: ($codeArrays 是一个二维数组)$codeArrays = [[$user_id,time(),'1',$member_id,'','兑换码兑换会员']]; $res = \Yii::$app->db->createCommand()->batchInsert('szdato_qyx_user_membe...原创 2019-09-17 14:45:45 · 232 阅读 · 0 评论 -
使用YII后端做PHPExcel导出功能
第一步:前端代码:<a style="color:white;display:;margin-bottom: 20px;margin-left: 30px;width: 200px" class="btn btn-primary " href="<?= $urlManager->createUrl(['mch/user/export-vip-card', 'id'=&g...原创 2019-08-24 11:40:47 · 171 阅读 · 0 评论 -
PhpExcel向特定文件中插入数据,将数据导入到指定文件中
例如我们有这样的一个excel,需要向第三个sheet中插入数据,那么按如下方式操作。思路:1、先读取第三个sheet的内容(以下为第三个sheet 的表格表头,我们要读取表头,看它有多少列,后面会用到)以下内容会获取到表头列数$inputFileType = \PHPExcel_IOFactory::identify($local_path);$objReader = \PHPExcel_IOFactory::createReader($inputFileType);$objPHPExcel原创 2022-03-24 11:36:46 · 1448 阅读 · 0 评论 -
TP5,TP6数据排序方法按指定函数FIELD排序的方法
例如我们拥有这样一个表:需要先按找u_id=0排序,然后按照sort 排序。那么可以写成:$or_str = "FIELD(u_id,0) desc,sort asc";$p = db('product')->field('id,u_id,name,cover_img,sort,count') ->where('product_id', $ppi) ->orderRaw($or_str)原创 2022-01-18 11:22:21 · 3294 阅读 · 0 评论 -
Shopify 全套接口开发,产品上传、订单检索、自动履行【PHP接口】开发
PHP 接口:有看不懂的可以回复或联系@me<?php/** * Created by PhpStorm. * User: Administrator * Date: 2021/5/19 * Time: 10:52 */namespace app\shopify;class Shopify{ private $max_time; public function __construct() { $this->max_time =原创 2021-12-07 14:10:51 · 3640 阅读 · 6 评论 -
解决:PHPExcel 读取带公式的表格数据 以及时间转换问题
首先 不管你上传的表格中有多少个sheet,如果某个公式是跳sheet 式 的公司,例如第二个sheet中的某个值是第一个sheet 中计算的值被引用,以下方法依旧适用。代码(请看注释,请看注释): $params = request()->param(); $file = request()->file('excel'); if (empty($file)) { ApiResponse::error('请上传excel模板文件,包括但原创 2021-11-20 11:57:13 · 1247 阅读 · 0 评论 -
修改phpstorm 红线提示问题
进入设置settings…:->然后按如下操作:Languages & frameworks -> PHP ->composer然后点击PHP 标签 ->选择php 的版本操作完后 点击apply & ok 。红线提示自动消失。原创 2021-08-24 10:48:02 · 665 阅读 · 0 评论 -
curl 四通请求方法
/** * @param $url * @param string $method * @param array $data * @param array $request_headers * @return array|string */ protected function shoplazzaHandle($url, $method = 'GET', $data = [], $request_headers = []) { .原创 2021-08-18 16:10:52 · 89 阅读 · 0 评论 -
PHPExcel经典汇出逻辑
代码code: public function productExportExcel() { $params = request()->param(); $ids = $params['ids'] ?? ApiResponse::error('请选择汇出的产品'); $objPHPExcel = new \PHPExcel(); $sheet = $objPHPExcel->setActiveSheetIndex(原创 2021-08-05 16:30:35 · 79 阅读 · 0 评论 -
解决:simplexml_load_string(): Entity: line 22: parser error : xmlParseEntityRef: no name
原因是xml 转数据时 xml 字符串的格式不对,主要是& 造成。$xml = str_replace('&', ' ', $xml);原创 2021-07-17 12:27:07 · 1568 阅读 · 0 评论 -
隐藏X-Powered-By,不显示网站开发语言
参考:https://blog.csdn.net/qq_27517377/article/details/97376737?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162503530616780255245703%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162503530616780255245703&biz_id原创 2021-06-30 15:16:55 · 742 阅读 · 0 评论 -
解决file_get_contents 乱码
查看解决方案:https://www.jb51.net/article/43095.htm用 file_get_contents() 函数抓取网页会发生乱码现象。有两个原因会导致乱码,一个是编码问题,一个是目标页面开了Gzip。原创 2021-05-12 10:13:23 · 912 阅读 · 1 评论 -
PHPExcel导出图片表格
public function exportTrackNumberInfo() { $params = \request()->param(); $ids = $params['ids'] = '38505,38504'; $data = db('order') ->field('id,order_sn,tracking_num') ->whereIn('id', $ids)->o原创 2021-04-23 14:19:39 · 357 阅读 · 0 评论 -
PHP 时间显示刚刚,几分钟前、几小时前、昨天、前天
/** * 时间格式 * @param $time * @return false|string */function saveTime($time){ $rtime = date("Y-m-d H:i", $time); $time = time() - $time; if ($time < 60) { $str = '刚刚'; } elseif ($time < 60 * 60) { $min = floor($ti原创 2021-04-21 17:22:55 · 184 阅读 · 0 评论 -
解决file_put_contents 写入txt 乱码的问题
将txt 文件改成 .log 文件。原创 2021-04-01 18:03:26 · 915 阅读 · 0 评论 -
PHP 谷歌翻译类API 接口
谷歌翻译类:GoogleTranslate.php<?php/** * Created by PhpStorm. * User: Administrator * Date: 2021/3/26 * Time: 15:07 */namespace app\common;/** * 谷歌翻译类 * Class GoogleTranslate * @package app\common */class GoogleTranslate{ /** * @pa原创 2021-03-29 14:02:56 · 2002 阅读 · 1 评论 -
没有虚拟机,本地怎么做定时任务?
例如我们有一个脚本需要定时去执行怎么办。思路一:首先启动一个window的定时任务。方法:window下定时执行php文件(window下添加定时任务)思路二:用curl 去执行这个任务。方法:shell_exec("curl http://fsdfd33333sfsdf.com/crontab/crontab/updateTrackInfoBendi");...原创 2021-03-26 18:35:36 · 186 阅读 · 0 评论 -
PHPExcel插入图片到表格中
$excelInfo['path'] = 'D:\phpstudy_pro\WWW\api.321.design\Upload\excel\20201230\a795e09f355d48b018421f0f58c42814.xlsx';$titleExcelss = $this->construct()::getExcelTitle($excelInfo);$objPHPExcel = new \PHPExcel();$objDrawing = new \PHPExcel_Worksheet_D原创 2021-03-25 10:06:14 · 1489 阅读 · 0 评论 -
PHP 查询千万级数据表的方法
当一个表中存储千万条记录时,使用常规方法去查询显然无法满足,特别是汇出千万级别的数据时更是艰难,所以非常规方法变得如此重要。以下示例教你怎么去遍历查询千万条数据而程序不中断的方法:public function one(){ $co = db('goods')->count(); for ($i = 1; $i <= $co; $i++) { yield db('goods')->where(['id' => $i])->find();原创 2021-03-24 09:48:14 · 675 阅读 · 0 评论 -
PHPExcel 读取百万级、千万级Excel文件数据的方法,按每行读取数据,使用yield生成器技术
1、先将百万级别的excel 数据按每行读取,每读取一行记录一条,将其存储在yield生成器中,不占用内存,读一条取一条。public static function getExcelData() { $excelInfo['path'] = 'D:\phpstudy_pro\WWW\api.321.design\Upload\excel\20201230\a795e09f355d48b018421f0f58c42814.xlsx'; $inputFileType原创 2021-03-23 14:09:48 · 1437 阅读 · 2 评论 -
php防止内存爆满崩盘,使用yield 生成器减缓超大数组遍历、excel汇出瓶颈问题
yield关键字生成器函数的核心是yield关键字。以最简单的形式,yield语句看起来很像return语句,除了yield而不是停止函数的执行并返回,而是为循环生成器的代码提供一个值,并暂停生成器函数的执行。Example#1<?phppublic function gen_one_to_three($data) { foreach ($data as $da) { yield $da; } }$generator原创 2021-03-23 10:38:02 · 405 阅读 · 0 评论 -
在局域网内配置一个大家都可以访问的网站,本地测试移动端
找到vhosts.conf,然后把server_name 改成本地局域网域名即可,在手机上就可以预览效果了。注意要连接WIFI哦。原创 2020-06-30 11:38:42 · 507 阅读 · 0 评论 -
Http状态码一览(从100-500之间所有状态码)
# ***HTTP状态码列表 ***状态码 状态码英文名称 中文描述100 Continue 继续。客户端应继续其请求101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议200 OK 请求成功。一般用于GET与POST请求201 Created 已创建。成功请求并创建了新的资源202 A...原创 2019-11-11 11:52:21 · 849 阅读 · 0 评论 -
http状态码101概述
101,简述:切换协议。*** Switching Protocols 切换协议。服务器根据客户端的请求切换协议。服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。首先我们来看个典型的 Websocket 握手GET /chat HTTP/1.1...原创 2019-11-11 11:47:19 · 25481 阅读 · 3 评论 -
tp5注册swoole 自定义命令行,TP5使用swoole做异步任务示例代码
根据tp 介绍:https://www.kancloud.cn/manual/thinkphp5/235129我们注册一个swoole的自定义命令php think swoser服务端代码SwooleServ .php:<?php/** * swoole通用服务 */namespace app\home\swoole;use app\console\common\ServerCommand;use app\home\controller\AmazonExport;use原创 2021-03-16 14:43:10 · 468 阅读 · 0 评论 -
php冒泡排序的两种写法
第一种: function bubbleSort($arr) { foreach ($arr as $i => &$a) { for ($j = $i + 1; $j < $count($arr); $j++) { if ($a < $arr[$j]) { #大到小排序只需改成》 $temp = $a; $原创 2021-03-09 17:00:38 · 135 阅读 · 2 评论 -
php扩展imagick 安装
下载地址一: http://windows.php.net/downloads/pecl/releases/imagick/下载地址二: https://pecl.php.net/package/imagick要点: 注意对应php版本 ts还是nts x86还是x64这里以phpinfo()为准本地环境x64 nts解压后将整个目录放入php目录:解压上述文件后,将php_imagick.dll复制到php/ext目录下修改php.ini 加上extension=php_imagick.d原创 2021-03-09 14:41:23 · 523 阅读 · 0 评论 -
php 分别降低图片尺寸与质量的方法
方法一:降低图片大小尺寸$a = 'https://nimg7.hicustom.com/static/productTypeDetTexture/X25LF3-ef4c71-1-29-4-500-d4f40ad0d36c44c4c1c344d7a7230bd3.png';$ai = new \Imagick($a);$ai->thumbnailImage(1200,1200);$path = "/public/product/" . "99999.png";$ai->writeIma原创 2021-03-08 15:53:56 · 482 阅读 · 0 评论 -
php中 strtr 和 str_replace区别
两者都是替换字符串中某个值例如: $a = strtr('hello', ['he' => 'n999']); $b = str_replace('he', 'n999', 'hello'); d($b);测试结果:$a = $b原创 2021-02-26 11:56:28 · 139 阅读 · 1 评论 -
get_object_vars 仅获取类中的公共属性
get_object_var(object),返回一个数组。获取object),返回一个数组。获取object),返回一个数组。获取object对象中的属性,组成一个数组$a = get_object_vars(new Niubi());d($a);<?php<?phpnamespace app\home\controller;class Niubi{ public $g = 'l'; protected $go = 'upload'; privat原创 2021-02-20 11:57:26 · 155 阅读 · 0 评论 -
PHPExcel 设置单元格受保护,不可编辑,或需要密码
设置全表受保护,不能编辑 $objPHPExcel->getActiveSheet()->getProtection()->setPassword(str_shuffle('PHPExcel')); #设置一个密码 $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); $objPHPExcel->getActiveSheet()->getProtection()-&g原创 2021-02-07 14:58:28 · 1264 阅读 · 0 评论