
PHP
larance
phper java python 找工作了 18600756313
展开
-
分享一个基于workerman的rabbitmq客户端生产者、消费者(基于Timer实现事件驱动)
通过综合分析、研究和探索workerman和PhpAmqpLibr相关手册,经过长期的实践,现分享一套基于workerman的rabbitmq客户端生产者和消费者代码,供大家测试,使用。转载 2023-03-14 15:28:11 · 475 阅读 · 0 评论 -
Laravel – 自定义命令 – 创建 service 服务层文件
4、编辑文件 MakeService.php 使用以下内容完全替换。3、编辑文件 services.stub。2、创建存根目录及文件。转载 2023-03-09 13:59:15 · 534 阅读 · 0 评论 -
swagger-php注释数组写法
request 请求中包含数组id = [12,,123]各种php的插件中例子不够详尽,详细规则建议看。reponse 中包含数组。原创 2023-03-08 13:50:36 · 419 阅读 · 0 评论 -
Laravel创建定时任务
运行这个定时任务 run 是运行一次,我们可以用来测试是否成功,work是一直运行,每分钟执行一次,当执行到我们设置的时间就会自动执行。创建一个任务,创建成功后会在App/Console/Commands中生成一个以Test命名的文件,我们可以在这里面写我们的任务指令。我们在将逻辑完成之后,就需要在App/Console中的Kernel.php文件当中去设置我们的定时任务的时间段。laravel 的定时任务最短间隔为1分钟。然后 php artisan schedule:run 手动执行测试。原创 2023-03-03 17:15:02 · 817 阅读 · 0 评论 -
Laravel 打印执行sql语句
【代码】Laravel 打印执行sql语句。转载 2023-02-16 14:48:48 · 2628 阅读 · 0 评论 -
PHP parse_ini_file 解析配置文件
parse_ini_file — 解析一个配置文件。原创 2023-02-07 10:35:02 · 566 阅读 · 0 评论 -
关于 declare(ticks=N)
1:Zend引擎每执行N条低级语句就去执行一次 register_tick_function() 注册的函数。2:每执行N条低级语句会检查一次该进程是否有未处理过的信号.转载 2022-11-03 15:56:12 · 116 阅读 · 0 评论 -
php: pcntl_signal信号处理
SIGTERM 程序结束(terminate、信号, 与SIGKILL不同的是该信号可以被阻塞和处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这个信号.SIGSTOP 停止(stopped、进程的执行. 注意它和terminate以及interrupt的区别: 该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.本信号在用户终端连接(正常或非正常、结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联.转载 2022-11-03 14:58:50 · 938 阅读 · 0 评论 -
workerman/mqtt在docker 中自启动
使用workerman、mqtt 做了一个command 执行命令是。所在容器中 有个start.sh 作为开机自启的, 我加在里面。如果使用的是laravel中的commands,不能使用。把他加入到/root/.bashrc 中 终于可以了。原创 2022-10-25 14:26:54 · 603 阅读 · 0 评论 -
laravel 中phpredis 和predis
PHP 扩展库 (PHP Extension Community Library) 提供了一系列已知的扩展库,由 C、C++ 等其他语言编写。PECL 是 PHP 的底层扩展,PHP 可能不支持的一些操作系统底层的功能,通过 C 写个扩展,对 PHP 语言本身,进行了扩充。PHP 扩展与应用库 (the PHP Extension and Application Repository) 是一个 PHP 扩展及应用的代码仓库,纯粹由 PHP 代码编写。predis 属于这种,是使用纯 PHP 写的。原创 2022-10-20 20:47:55 · 933 阅读 · 0 评论 -
laravel中使用jwt
安装使用 jwt1. 下载 laravel2. 安装 jwt 扩展包3. 发布资源 (这条命令会在 config 中生成 jwt.php 配置文件)4. 生成 jwt 秘钥5. 注册中间件在 app/Http/Kernel.php 文件中 $routeMiddleware 中添加如下代码:在需要的路由加上 auth.jwt 中间件就可以正常使用6. 在 config/auth.php 中 注:这里可以不修改不修改使用方法如下:修改之后使用方法如下 (当然修转载 2022-07-14 12:26:18 · 884 阅读 · 0 评论 -
Laravel配合Workerman命令行监听MQTT
公司是做物联网的,经常有服务端通过PHP与物联网设备通过MQTT协议通信,恰好PHP框架用的是Laravel,刚接触的时候发现没什么比较接近的资料,自己摸索了一阵,已经在几个项目使用上了,这里将相关的步骤贴出来,方便以后自己查阅以及有类似需求的朋友参考。众所周知,PHP是一门专为Web设计的语言,绝大部分时间都是与Web Server通信,再后端一点,也是与别的后端语言配合做“前端”,其底层设计也限制了其本身更适合做Web那些事,所以如果想要用来服务端监听MQTT,就需要别的库来配合,这里说的库主要就两个,转载 2022-06-18 16:24:28 · 1055 阅读 · 0 评论 -
session_unset()和session_destroy()的区别
释放当前在内存中创建的$_SESSION变量,但不删除session文件以及不释放对应的session_id。不删除当前的会话id,意味着当前会话连接还保持着,意思就是在不关闭浏览器的情况下再创建别的session后继续使用该session_id来保持会话。测试 在浏览器中访问该方法可以看到当前会话id为ad4016bf675ab4736712d4bb0d8c2778 浏览器继续访问该方法我们发现session变量yy已经被删除,符合上面说的:释放当前在内存中已经创建的所有$_转载 2022-06-14 09:49:48 · 525 阅读 · 0 评论 -
安装composer 的一点小问题
在docker 镜像中 安装composer安装后 执行 composer -v出现;错误缺少 php-mbstring命令行安装搞定原创 2022-06-10 00:15:28 · 1618 阅读 · 0 评论 -
mqtt 使用及laravel集成MQTT
去 EMQX: Open-Source, Cloud-Native MQTT Broker for IoT下载和安装服务端和客户端 客户端为了看着方便本人是mac 所以下载的是1. 下载emqx-4.4.3-otp24.1.5-3-macos10-amd64.zipSHA256wget https://www.emqx.com/zh/downloads/broker/4.4.3/emqx-4.4.3-otp24.1.5-3-macos10-amd64.zip没有安装wget 浏览...原创 2022-05-23 19:48:49 · 1950 阅读 · 0 评论 -
php 路由验证
//$mask 子网掩码 // $begin 起始网段 $subnet = $this->sugar_ip4_op_mask($begin, $mask);//获取子网 不变化部分 if ($this->sugar_ip4_op_same($this->sugar_ip4_op_mask($router, $mask), $subnet) && $this->sugar_ip4_op_range($router, $su...原创 2022-05-20 16:47:29 · 233 阅读 · 0 评论 -
php和syslog
syslog是Linux系统默认的日志守护进程。使用syslog可以方便把指定的事件写入特定文件中,可以让任何事件都登录到一台或多台服务器上。1、简单例子,先说一下syslog怎么使用,以php为例<?php//为应用打开一个系统日志连接, openlog是可选的,如果需要,会被sysylog会自动调用openlog("log test", LOG_PID | LOG_PERROR, LOG_LOCAL0);syslog(LOG_INFO, " this is a log me转载 2022-05-19 17:34:43 · 703 阅读 · 0 评论 -
php中socket的使用
一、开启socketphpinfo();查看是否开启了socket扩展,否则在php.ini中开启。二、服务器端代码的写法error_reporting(E_ALL);set_time_limit(0);//ob_implicit_flush();$address = 127.0.0.1;$port = 10005;//创建端口if( ($sock = socket_create(AF_INE原创 2011-06-13 13:59:00 · 1381 阅读 · 0 评论 -
nginx 出现504 Gateway Time-out 相关设置
nginx配置nginx.conf中,设置以下几个参数,增加超时时间fastcgi_connect_timeoutfastcgi连接超时时间,默认60秒fastcgi_send_timeoutnginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒fastcgi_read_timeoutfastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒php配置php.inimax_execution_timephp脚本最大执行时间p.原创 2022-03-09 18:39:02 · 4014 阅读 · 0 评论 -
Laravel Illuminate\Http\Exceptions\PostTooLargeException
出错原因是: 请求的post的数据比 php.ini设定的post_max_size大的原因解决方法:增加php.ini中post_max_size和upload_max_filesize的设置打开/etc/php.ini文件修改 2个字段,使它的值足够大,如:1024M或者2048Mpost_max_size = 1024Mupload_max_filesize = 1024M生成环境上传文件大小的限制需按实际情况来设定然后重启 web服务器(如:Apache)使...转载 2022-03-04 11:29:09 · 402 阅读 · 0 评论 -
php curl 发起get和post网络请求
curl getfunction curl_get($url){ $header = array( 'Accept: application/json', ); $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 0); // 超原创 2022-02-23 19:35:39 · 255 阅读 · 0 评论 -
在 Laravel 中使用 MongoDB
安装组件composer require jenssegers/mongodb注册服务 ,在config/app.phpJenssegers\Mongodb\MongodbServiceProvider::class,修改数据库配置文件config/database.php添加 MongoDB 的数据库的信息:'mongodb' => [ 'driver' => 'mongodb', 'host' =&g..原创 2022-02-14 15:41:43 · 1710 阅读 · 0 评论 -
mac编译安装php-mongodb扩展
安装步骤:1、下载源码自己官网下载 PECL :: Package :: mongodbhttp://pecl.php.net/package/mongodb我用的1.10.0mv mongodb-1.10.0 mongodb2、进入文件夹,生成configurecd mongodbsudo /usr/local/Cellar/php@7.3/7.3.25_1/bin/phpize [找到你自己安装对应的phpize的绝对路径]3、编译安装 (多个php版本的情况,需...原创 2022-02-11 10:09:24 · 344 阅读 · 0 评论 -
laravel 时间日期格式多了个.000000Z
use DateTimeInterface;/** * Prepare a date for array / JSON serialization. * * @param \DateTimeInterface $date * @return string */protected function serializeDate(DateTimeInterface $date){ return $date->format('Y-m-d H:i:s');}原创 2022-01-07 17:04:11 · 1274 阅读 · 0 评论 -
PHP大文件分割上传(分片上传)
问题:请问如何上传比较大的文件?服务端为什么不能直接上传大文件?跟php.ini 里面几个配置有很大的关系。upload_max_filesizepost_max_sizememory_limitmax_execute_time当然不能简单粗暴的将这几个参数调大,否则服务器会出现内存资源吃光是早晚的的问题。解决思路好在HTML5开放了新的FILE API,也可以直接操作二进制对象,我们可以直接在浏览器端实现文件切割,按照以前的做法就得用Flash的方案,实现起来会麻烦转载 2022-01-06 16:04:16 · 1237 阅读 · 0 评论 -
php 文件上传并转发
UPLOAD_ERR_OK: 0UPLOAD_ERR_INI_SIZE: 1UPLOAD_ERR_FORM_SIZE: 2UPLOAD_ERR_NO_TMP_DIR: 6UPLOAD_ERR_CANT_WRITE: 7UPLOAD_ERR_EXTENSION: 8UPLOAD_ERR_PARTIAL: 3原创 2021-12-31 17:51:38 · 1399 阅读 · 0 评论 -
laravel8 接口跨域
原创 2021-12-31 14:46:06 · 936 阅读 · 0 评论 -
laravel框架注意bootstrap/cache
修改了 config/public.php 不生效原来是bootstrap/cache 下 public.php 在捣乱。他获取了config/public.php 中的内容 并自己缓存了一份。删除掉就可以了原创 2021-12-27 17:19:49 · 787 阅读 · 0 评论 -
php 文件流式接收
$fp = fopen('php://input', "r"); $chunk = 4096;//4K的块// $fs = sprintf("%u", filesize($img)); $fs = sprintf("%u", filesize($file)); $max = (intval($fs) == PHP_INT_MAX) ? PHP_INT_MAX : $fs; $newfp = fopen($new...原创 2021-12-22 18:54:50 · 825 阅读 · 0 评论 -
laravel中添加公共函数
1. 在项目中的新建app/Helper/functions.php文件2.在项目的跟目录找到composer.json 文件,并打开,然后再autoload中添加如下代码:"files":[ "app/Helper/functions.php" ]3.打开终端,在项目的根目录下执行composer命令composer dump-auto...原创 2021-12-20 09:49:37 · 692 阅读 · 0 评论 -
Laravel整合swagger
一、找到swagger的包我们访问packagist网站,搜索swagger,这里我们选择下载量最多的包二、安装swagger-uicd public在public目录下git clone https://github.com/swagger-api/swagger-uigit clone拷贝完之后呢,其实我们只需要dist目录就行,其他的目录以及文件可以删掉三、使用创建SwaggerController配置数据php artisan make:cont..转载 2021-12-13 09:44:10 · 464 阅读 · 0 评论 -
laravel中关于migrate的几个命令
创建数据表php artisan migrate删除重新建立数据表php artisan migrate:fresh给某个表增加字段 比如 posts 表增加 article 字段php artisan make:migration add_article_to_posts_table然后在生成的迁移文件中的up 方法中增加$table->string('title');down 方法中增加$table->dropColumn('title');...原创 2021-12-05 21:30:34 · 504 阅读 · 0 评论 -
swagger-php注释写法教程,实用例子
网上关于swagger-php的注释写法,资料较少。最全面的应该是 Laravel-China上如何编写基于 Swagger-PHP 的 API 文档本篇文章记录一下遇到的坑。文章中第1章2.5节,required的值应该是true,不带引号。如果是post请求,请求消息体中包含多个参数,并且修改了header内容。header内容应该放到form内容之前。例子:1 /** 2 * @SWG\Post( 3 * path="/mall/s转载 2021-12-02 22:30:00 · 667 阅读 · 0 评论 -
Laravel8扩展swagger
Laravel8扩展swagger转载 2021-12-02 17:31:36 · 421 阅读 · 0 评论 -
PHP底层的运行机制与原理(2)
Zvalue是用来保存一个变量的实际数据。因为要存储多种类型,所以zvalue是一个union,也由此实现了弱类型。PHP变量类型和其实际存储对应关系如下:1 IS_LONG-> lvalue 2 IS_DOUBLE-> dvalue 3 IS_ARRAY-> ht 4 IS_STRING-> str 5 IS_RESOURCE-> lvalue 引用计数在内存回收、字符串操作等地方使用非常广泛。PHP中...转载 2021-11-30 22:42:17 · 103 阅读 · 0 评论 -
PHP底层的运行机制与原理
PHP说简单,但是要精通也不是一件简单的事。我们除了会使用之外,还得知道它底层的工作原理。PHP是一种适用于web开发的动态语言。具体点说,就是一个用C语言实现包含大量组件的软件框架。更狭义点看,可以把它认为是一个强大的UI框架。了解PHP底层实现的目的是什么?动态语言要像用好首先得了解它,内存管理、框架模型值得我们借鉴,通过扩展开发实现更多更强大的功能,优化我们程序的性能。1. PHP的设计理念及特点多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服转载 2021-11-30 22:40:56 · 162 阅读 · 0 评论 -
HttpOnly Cookie 怎么讲
HttpOnly是加在cookies上的一个标识,用于告诉浏览器不要向客户端脚本(document.cookie或其他)暴露cookie。HttpOnly背后的相关议题是:当网站存在跨站脚本攻击(XSS)漏洞时,黑客通过执行脚本获得cookie时被阻止,从而在根本上杜绝这种类型的攻击。当你在cookie上设置HttpOnly标识后,浏览器就会知会到这是特殊的cookie,只能由服务器检索到,所有来自客户端脚本的访问都会被禁止。当然也有前提:使用新版的浏览器。HttpOnly Cookie 最初由 Micr转载 2021-11-30 21:49:55 · 769 阅读 · 0 评论 -
深入浅出 Laravel Macroable
Laravel 提供的Macroable可以在不改变类结构的情况为其扩展功能,本文将教你从零开始构建一个Macroable.Macroable的核心是基于匿名函数的绑定功能,先来回顾下匿名函数的绑定功能。预备知识PHP 可通过匿名函数的绑定功能来扩展类或者实例的功能。定义类class Foo{}定义匿名函数$join = function(...$string){ return implode('-', $string);}使用bindTo为类的...转载 2021-11-22 21:37:38 · 324 阅读 · 0 评论 -
关于CGI和FastCGI的理解
在搭建 LAMP/LNMP 服务器时,会经常遇到PHP-FPM、FastCGI和CGI 这几个概念。如果对它们一知半解,很难搭建出高性能的服务器。回到顶部0.CGI的引入在网站的整体架构中,Web Server(如nginx,apache)只是内容的分发者,对客户端的请求进行应答。如果客户端请求的是index.html这类静态页面,那么Web Server就去文件系统中找对应的文件,找到返回给客户端(一般是浏览器),在这里Web Server分发的就是是静态数据。整个过程如下图:..转载 2021-11-03 21:54:24 · 537 阅读 · 0 评论 -
PHP对象的复制
先说一下深拷贝和浅拷贝通俗理解深拷贝:赋值时值完全复制,完全的copy,对其中一个作出改变,不会影响另一个浅拷贝:赋值时,引用赋值,相当于取了一个别名。对其中一个修改,会影响另一个PHP中, = 赋值时,普通对象是深拷贝,但对对象来说,是浅拷贝。也就是说,对象的赋值是引用赋值。(对象作为参数传递时,也是引用传递,无论函数定义时参数前面是否有&符号)php4中,对象的 = 赋值是实现一份副本,这样存在很多问题,在不知不觉中我们可能会拷贝很多份副本。php5中,对象的 = 赋值和转载 2021-11-02 17:23:20 · 569 阅读 · 0 评论