PHP
文章平均质量分 79
zhang-jianqiang
这个作者很懒,什么都没留下…
展开
-
解析tp5中.env配置文件的加载原理
简介.env 是 thinkphp、laravel框架的本地配置文件,位置一般放在项目的根目录下。thinkphp 入口脚本分析index.php<?php// 定义应用目录define('APP_PATH', __DIR__ . '/../application/');// 定义上传目录define('UPLOAD_PATH', __DIR__ . '/../public'...原创 2020-03-20 17:57:46 · 2426 阅读 · 0 评论 -
php分块上传
原理介绍本文的分块上传主要是使用html5的file对象对文件进行分块,然后一块块进行上传,后端接收上传的每块文件,判断分块是否上传完成,上传完成合并文件并删除所有分块。demo目录结构index.phpupload.phpuplod block前端代码index.php<!DOCTYPE html><html lang="en"><he...原创 2020-03-17 17:14:15 · 400 阅读 · 0 评论 -
swoole实现简单的rpc调用
介绍rpc 翻译过来就是远程过程调用,其实现形式有 restful api形式调用和 tcp 形式的调用。当然就性能来说,肯定是 tcp 形式的调用性能更高一些。这里以一个 tcp 来简要讲述 rpc 的实现过程。目录结构│ Client.php // 客户端│ composer.json // 主要为了自动加载│ Server.php // 服务端│├─Service...原创 2020-03-16 22:06:51 · 1839 阅读 · 1 评论 -
PHP调用office进程去除水印
具体 deme 参见的博客《PHP调用office进程去除水印》原创 2020-03-12 22:21:21 · 160 阅读 · 0 评论 -
php实现单例模式
通常的单例模式都是直接在一个类中直接通过三私一公的方式进行实现,当然这是一种最常用的实现方式,当然还有别的方式实现。在 easyswoole 中通过实现一个 trait 方式单例获取对象,我觉得有一定的借鉴作用,在这里摘录出来,作为笔记。Singleton.php<?php/** * Created by PhpStorm. * User: yf * Date: 2018/5/...原创 2020-02-06 18:42:15 · 228 阅读 · 0 评论 -
PHP在Console模式下进度条显示
示例效果在 Linux 下安装文件时,经常会看到有一个百分比的进度条显示,如下图这样:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sJwDDcOV-1578899814537)(index_files/6cb12303-932e-40fc-a015-080db8df4609.png)]基本原理这里只说一下 php 相关的语法,相关的代码都 php 做为示例...原创 2020-01-13 15:17:11 · 684 阅读 · 0 评论 -
发布自己的composer扩展
前言大多时候都在搬别人写好的砖,那么这些砖到底是如何造好的呢,今天我们来一探究竟。本文我主要以实践的知识进行展示,不会在一些名词上做过多的解释,如果涉及到比较重要的名词知识会放上相关的官方文档链接参考。开始创建仓库首先,在 github 或码云创建一个自己仓库,为于发布提交我们自己的扩展。这里我在码云新建了一个仓库,仓库地址:https://gitee.com/zjq528/compos...原创 2019-12-01 02:06:22 · 700 阅读 · 0 评论 -
PHP多进程处理任务
环境要求系统 - linuxPHP 4 >= 4.1.0, PHP 5, PHP 7扩展 - pcntl posix使用PHP 多进程一般应用在 PHP_CLI 命令行中执行 php 脚本,不要在 web 访问时使用。多进程处理分解任务一般要比单进程更快。php 查看是否安装多进程模块(pcntl 是 process control 的缩写):php -m | grep ...原创 2019-11-20 16:33:10 · 239 阅读 · 0 评论 -
psr 规范
不知不觉,psr 已经更新了这么多的版本了,加油,学习起来中文网址:http://phpfig.p2hp.com/英文网址:https://www.php-fig.org/原创 2019-11-18 17:06:29 · 202 阅读 · 0 评论 -
编译 php 扩展
下载扩展扩展的官方下载地址:https://pecl.php.net/解压编译# 从官网右键复制对应扩展的链接wget 下载链接# 解压(这里以 gz 后缀为例)tar zxvf 压缩包名字cd 解压后的文件夹phpize./configure --with-php-config=/usr/local/php/bin/php-config # 这里替换成自己的 php-conf...原创 2019-11-13 16:45:18 · 232 阅读 · 0 评论 -
编译 php7.2
添加用户useradd -r -s /sbin/nologin php-fpm# -r 创建一个系统用户# -s 指定登录的脚本 /sbin/nologin 不可登录的用户# php-fpm 用户名,如果没有指定用户组会同时创建一个相同名字的用户组下载解压安装包cd ~wget https://www.php.net/distributions/php-7.2.24.tar.gz...原创 2019-11-12 16:43:36 · 436 阅读 · 0 评论 -
利用反射实现构造函数依赖注入
简介php 从 php5 开始提供了一套完整的反射类,通过反射类可以获取类中的属性、方法、构造函数等等,包括私有的方法和属性。因此反射在框架的初始化中使用非常普遍,如 thinkphp5 框架和 laravel 框架中都不同程度的使用反射来实现控制器中的依赖注入。下面将以一个简单的示例来展示一下,如何通过反射来实现构造函数依赖注入。示例<?php/** * 通过反射来实现一个...原创 2019-11-09 15:56:43 · 509 阅读 · 0 评论 -
腾讯Biny框架集成think-orm
当然想要先集成扩展,前提我已经把框架部署好了。下面就开始吧!下载 Biny 框架git clone https://github.com/Tencent/Biny.git安装 think-ormcomposer require topthink/think-orm引入 composer 自动加载文件Biny 框架默认没有 vendor 目录的,当我们第一次使用 composer 会...原创 2019-10-30 10:29:20 · 988 阅读 · 0 评论 -
php事件驱动
介绍PHP 事件驱动本质上一种观察者模式。以下是从 yii2 框架中提取出来的一个简化版的事件驱动类,并做简要的说明。示例代码<?phpclass Event{ private $events = []; // 绑定事件 public function on($name, $handler, $data = null, $append = true) ...原创 2019-10-17 10:34:59 · 450 阅读 · 0 评论 -
php 使用Restful Api
常用的响应状态码(httpCode)状态码描述200请求成功201创建成功202更新成功400无效请求401未授权403禁止访问404请求资源不存在500内部错误常用请求示例下面以获取用户信息为例:请求方式接口描述getuser/index查询postuser/1新增...原创 2019-05-11 13:36:03 · 1429 阅读 · 0 评论 -
php如何下载远程图片及视频
思路远程图片和视频也是一个链接,我们要想获取它的内容就和我们想要请求一个接口获取接口返回值一样,都需要发送一个请求,不同的是接口请求返回的是指定格式的json或xml等数据,图片或视频链接请求返回的图片数据或视频数据,然后通过文件操作函数将数据保存到本地。这里我们采用curl发送,使用文件操作函数保存到本地。代码// 远程图片地址$imgUrl = 'https://www.baidu....原创 2019-05-31 10:51:47 · 5606 阅读 · 2 评论 -
PHP使用OpenSSL加密
1.生成签名与验签相关函数openssl_get_privatekey() 获取私钥文件的内容openssl_sign() 私钥生成签名opensll_get_publickey() 获取公钥文件的内容opensll_veriry() 公钥验证签名生成公钥和私钥常用的rsa密钥有两种格式:pkcs1格式# 公钥-----BEGIN RSA PUBLIC KEY------...原创 2019-05-31 22:39:11 · 3668 阅读 · 0 评论 -
php常用插件
初衷以下总结了一些开发中发现以及用到的比较好用的扩展,会不断地进行更新,如果有好的扩展推荐,也可以留言我会及时补充上,方便自己和大家使用。1.定时任务管理扩展https://gitee.com/zjq528/yii2-cron2.php验证扩展(类似yii2)https://gitee.com/zjq528/php-validate3.阿里大于短信扩展https://github...原创 2019-05-29 09:59:39 · 5745 阅读 · 1 评论 -
php生成分享图片
昨天在发布一个博客时,发现csdn进行了一些更新生成了一个可爱的分享图片,如下图。我们拼多,淘宝,小程序等多个平台上都见过这种带有信息的分享图片。那么这个图片是如何实现在的呢?这里以php进行一个简单的实现。1.素材准备一张背景图、一张二维码图片、一个字体文件2.php实现<?php//从现在文件载入一幅图像背景图$im = imagecreatefro...原创 2019-06-14 13:48:31 · 1993 阅读 · 0 评论 -
php导出数据到多个csv并打包压缩
以下代码都是以yii2框架的语法为示例进行演示,其它写法类似:1.不压缩直接下载// 测试php导出大量数据到csvpublic function actionExportData(){ // 设置不超时 set_time_limit(0); // 设置最大可用内存 ini_set('memory_limit', '1024M'); // 设置第一列...原创 2019-06-11 19:00:03 · 847 阅读 · 0 评论 -
php统一管理crontab
1.介绍统一管理crontab计划任务的关键点,在于实现像crontab一样对*/10 * * * *这样的命令如何进行解析。解析完成最后调用系统函数执行shell命令2.实现采用语言:php借助框架:yii2这里虽然是在yii2框架下进行实现的,但是对yii2框架的依赖极低,只是借助yii脚本执行命令而已,没有使用到其它的依赖,如换成其它框架,只需要将继承控制器修改为相应控制器实...原创 2019-06-17 17:06:41 · 2268 阅读 · 0 评论 -
php扩展安装篇
介绍本文记录工作中常用到的php扩展的安装,自己用到的扩展有最新的更新后会在本文做说明,并在更新中标明。更新无安装php官方有的扩展可以直接从官方的扩展库中进行下载,下载链接为:https://pecl.php.net/package-search.php1. xlswrite扩展下载wget https://pecl.php.net/get/xlswriter-1.2.7.t...原创 2019-09-11 18:49:55 · 1781 阅读 · 0 评论 -
php开源项目汇总
介绍这里汇总一些自己平时见到或用到的好用的php开源项目,方便自己以后查询使用也方便大家借签参与更新暂无项目列表可道云(私有云存储&协同办公)https://kodcloud.com/tpshop(商城系统)http://www.tp-shop.cn/index.phpecshop(商城系统)http://www.ecshop.com/niushop(商城系...原创 2019-09-17 15:12:48 · 1638 阅读 · 1 评论