拥有php标签的文章

php的垃圾回收机制

  • 仙士可
  • 2020-01-19 11:02:58
  • PHP
  • php
在平时phpfpm的时候,可能很少人注意php的变量回收,但是到swoole常驻内存开发后,就不得不重视这个了,因为在常驻内存下,如果不了解变量回收机制,可能就会出现内存泄露的问题,本文将一步步带你了解php的垃圾回收机制,让你写出的代码不再内存泄漏 写时复制首先,php的变量复制用的是写时复制方式,举个例子. ```php$a='仙士可'.time();$b=$a;$c=$a;//这个时候内存占用相同,$b,$c都将指向$a的内存,无需额外占用 $b='仙
阅读全文

原生workman实现消息推送

原生workman实现及时消息推送 需求: 共享单车关闭后,会通过设置的url,进行回调,发送数据。那么相对于共享单车关锁来说,回调给url的数据,对于客户端来说是异步操作,那么如何使回调变成同步操作,客户端能立即收到关锁之后的信息呢? 问题: 由于进程之间申请的内存不能共享,所以当你直接调用workman里面封装的方法时,会无法拿到数据。所以好多人就会出现,在回调里面调用推送的方法,提示 `未定义方法或方法不存在`的情况 workman 代码: ```
阅读全文

地理位置计算之geohash算法

地理位置距离实现目标:最近在做共享单车单车的项目,用户打开APP后,如果根据当前的经纬度坐标获取附近的车辆呢? 特点: geohash用一个字符串表示经度和纬度两个坐标(可以加索引) geohash表示的并不是一个点,而是一个矩形区域 geohash编码的前缀可以表示更大的区域。 原理: geohash算法将地球理解为一个二维平面,将平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码,这种方式简单粗暴,可以满足对小规模的数据进行经纬度的检索 通过对
阅读全文

高德鼠标绘制覆盖物

最近在做共享单车的项目,项目用有用到电子围栏区域的功能,也就是相当于在地图中画一个区域,用户只能在区域内骑行,如果超出,则需要调度费 添加地图围栏```<div id='container' style="height: 450px;width: 100%;"</div<div class="inputcard" style='width: 24rem;' <div class="inputitem" <input type="hidden" name="location_
阅读全文

TP5.1中导入Excel表到数据库

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2020-01-02 15:33:45
  • PHP
  • php mysql
TP5.1中利用Excel库导入数据到mysql1. 利用composer下载类库 `composer require phpoffice/phpspreadsheet`1. 找到源码在vender下面有个最新下载的phpoffice类库,找到samples下面的Basic,查看里面的自带demo1. 自己新建一个xls文档,用来做测试使用,如果所示1. 编写上传程序,此处前端省略(直接看代码里面的注释)```phppublic function upload(Reque
阅读全文

Centos7下安装kafka

Centos7下安装kafka单机版 项目中要用到kafka来做消息队列,然而本人是小白一枚,所以从零开始,尝试着安装并搭建好kafka测试环境 安装java的JDk 首先要使用命令 `java version` 查看本地是否已经安装JDK(我本地是比较干净的,并没有系统自带的jdk,所以不需要删除) 官网找到最新稳定的JDK 并根据自己的系统,下载合适的下载到本地(因包比较大,所以wget 下载会失败,所以采用本地下载并使用ftp上传的方式解决) 找到JDK压缩包并
阅读全文

EasySwoole源码生命周期

EasySwoole生命周期 本图是EasySwoole一群群友看源码所画,然后为Easyswoole贡献尽一点微薄之力,希望帮助到更多学习EasySwoole的人
阅读全文

PHP对接硬件当中用到的函数

对接硬件当中常用的函数1、对接8266中使用的CRC16加密函数```php function crc16Modbus($str) { //pack — 将数据打包成二进制字符串 $data = pack('H', $str); $crc = 0xFFFF; for ($i = 0; $i < strlen($data); $i++) { //ord —— 串第一个字节为 0255 之间的值 $
阅读全文

EasySwoole后台权限管理

EasySwoole和layuiAdmin前后端分离的后台权限管理系统(目前已升级为最新版EasySwoole文档版本,并改为ORM版) 测试地址: 账号:test 密码:123456 废话不多说,效果图如下 1. 登录页面 1. 系统首页 1. 用户列表页 1. 菜单列表页 1. 角色列表页 1. 权限分配页 介绍 EasySwoole 是一款基于Swoole Serv
阅读全文

EasySwoole中连接池为空的原因

问题由来在easyswoole的群里,每天都需要回答各种各样的问题,其中不乏一些问题反复被小白们问起,比如今天的这个主题:`连接池取出empty 为null导致的问题`本文会简单引申出什么是`连接池`、`连接池数量如何设置`、`连接池的优点`等问题。 什么是连接池 连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。 简单来说,就是创建一个容器,并且把资源提前准备好放在里面,比如我们常用的redis连接、mysql连接。 连接池的优点
阅读全文