php
文章平均质量分 90
卩杉
勤学如早春之苗,不见其增,日有所长。辍学如磨刀之石,不见其减,日有所损。
展开
-
php 7.x 编译安装 Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?
今天在编译安装 php7.2.28 时出现如下问题:[root@localhost /usr/local/php7.2.28/etc]#service php-fpm stopGracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?解决办法:先用 kill 办法关闭 ph...原创 2020-03-19 14:07:28 · 3084 阅读 · 0 评论 -
php expecting variable (T_VARIABLE) 错误
刚升级 lumen 到 5.7 时执行 php artisan 命令时出现了以下错误:Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in D:\projects\api.xiaobinqt.cn\src\vendor\nesbot\carbon\src\Carbon\Traits\Date.p...原创 2019-12-28 01:19:22 · 6303 阅读 · 0 评论 -
php sprintf() 使用中处理特殊字符 %
刚在使用 sprintf() 这个函数时发现字符串中有个特殊字符 %,字符串类似这样:select * from boss where date_format(ftime_minute,'%Y-%m%-%d') >= '%s';这里的如果不处理日期格式中的 % ,直接使用 sprintf() 就会出错,可以这样处理多加一个 %,如下:$sql = " select * from b...原创 2019-12-20 15:42:57 · 2833 阅读 · 0 评论 -
php 实现一个闭包函数
<?phpfunction MyClosure(array $prefix){ return function ($_prefix) use ($prefix) { if (in_array($_prefix, $prefix)) { return "in"; } else { return "no...原创 2019-11-27 16:23:46 · 262 阅读 · 0 评论 -
php 时间操作工具类
最近维护公司的项目,报表功能有个计算周月均值的功能。就是选取一段时间算自然周月的数据平均值。比如 20191015 - 20191029 是有三个自然周的(其中有不是整周的自然周),我需要把这三个自然周找到,算出这三个自然周的数据平均值,算出结果后类似下图:只是类似这样的折线图。<?php/** * Created by PhpStorm. * User: v_bivwei ...原创 2019-10-24 10:31:12 · 352 阅读 · 0 评论 -
php 5.6+ 不定参数的使用
php5.6+ 版本函数可以传入不定数目的参数:<?php/** * Created by PhpStorm. * User binWei */function getSum(...$numbers){ var_dump($numbers); $result = 0; foreach ($numbers as $n) { $resul...转载 2019-10-17 11:23:19 · 277 阅读 · 0 评论 -
php 按条件将数组合并
有个需求:按时间将数组合并原数组:<?php/** * Created by PhpStorm. * User: binWei */$str = <<<FFF[{"p_date":"2019-10-05","complex0":804242632},{"p_date":"2019-10-06","complex0":823298584},{"p_da...原创 2019-10-15 19:22:37 · 519 阅读 · 0 评论 -
php 回调函数 call_user_func_array 的简单使用
call_user_func_array 回调函数有几种常用的回调全局函数的回调类的静态方法的回调全局函数的回调 <?php /** * Created by PhpStorm. * User=> binWei */ function fnCallBack($msg1, $msg2) { echo 'msg1:' . $msg1; ech...原创 2019-10-15 19:21:32 · 270 阅读 · 0 评论 -
服务容器 IOC,DI 分析
DIDI ( Dependency Injection,简称DI) 就是常说的依赖注入,那么究竟什么是依赖注入呢?打个比方,台式机需要键盘和鼠标我们才能进行操作,这个‘需要’换句话说就是‘依赖’键盘和鼠标。那么,相应的,一个类需要另一个类才能进行作业,那么这也就是依赖。示例:class Computer { protected $keyboard; public fun...原创 2019-10-15 19:20:58 · 221 阅读 · 0 评论 -
php 常用函数总结
总结了一些 php 常用的函数list()list()把数组中的值赋给一些变量&amp;amp;amp;lt;?php$my_array = array(&amp;amp;quot;Dog&amp;amp;quot;,&amp;amp;quot;Cat&amp;amp;quot;,&amp;amp;quot;Horse&amp;amp;quot;);list($a, $b, $c原创 2019-01-15 15:12:53 · 245 阅读 · 0 评论 -
php 策略模式与简单工厂模式结合实现商场打折功能
简单工厂模式和策略模式简介需求代码实现优化简单工厂模式和策略模式简介关于简单工厂模式可以参看。所谓的策略模式就是用来封装算法的。策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用此算法的用户。需求现在有这样一个需求:商场推出优惠活动,所有物品一律八折。具体代码实现为了后期维护,比如满 1000 才能打八折,我们使用策略...原创 2019-05-19 21:45:19 · 697 阅读 · 0 评论 -
php 与方法重载和方法重写的关系
方法重载(#reload)方法重写(#override)方法重载方法重载指的是提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。由于 php 是弱类型的语言,对于方法中的参数类型我们可以忽略,在 php 中显然第一点就是不能满足的,php 中原生不支持创建多个同名方法的能力。<?php/** * Created by phpStorm. * User: bi...原创 2019-05-18 10:57:45 · 1158 阅读 · 0 评论 -
php 之简单工厂模式
简单工厂模式是由一个工厂对象决定创建出哪一种类的实例。比如现在我们用面向对象的方式封装了一个运算类 Operation<?php/** * Created by phpStorm. * User: binwei * Date: 2019/5/18 * Time: 17:02 */class Operation{ public static function g...原创 2019-05-18 17:50:56 · 228 阅读 · 0 评论 -
ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION 错误解决
今天项目中遇到一个问题解决了半天,就是在用浏览器下载后端生成的 csv 文件时,浏览器对于某些文件会出现崩溃的情况,浏览器直接出现下面这个页面了.这是问题是由于 header 中的 filename 参数值设置的问题,需要用双引号引起来,如下.header( "Content-Disposition: attachment;filename=\"$filename\"" );...原创 2019-06-13 22:10:52 · 15429 阅读 · 2 评论 -
php 对多维数组按照数组中的某个值进行排序
<?php/** * Created by phpStorm. * User: BinWei * Date: 2019/6/22 * Time: 22:41 */$arr = [ array( 'name' => '关羽', 'info' => [ "nickname" => "二哥", ...原创 2019-06-22 22:59:53 · 3344 阅读 · 0 评论 -
多版本 php 环境,如何指定 composer 使用的 php 版本
很多时候安装 composer 扩展包需要指定 composer 的 php 版本.比如我最近遇到的.我们需要去 https://getcomposer.org/download/ 下载一个 composer.phar 文件放到任意目录下.执行如下类似命令即可....原创 2019-08-08 14:39:46 · 4313 阅读 · 0 评论 -
php 保留 2 位小数的 2 种办法
php 在保留 2 位小数的时候有 2 种常用的方式.<?php/** * Created by PhpStorm. * User: binWei * Date: 2019/8/23 * Time: 10:54 */$num = 25.699;$round = round($num, 2);$sprintf = sprintf("%.2f", $num);var_du...原创 2019-08-26 10:09:50 · 2349 阅读 · 0 评论 -
php5.3 解决 json_encode 中文乱码问题
在 php 5.4 之后有一个常量 JSON_UNESCAPED_UNICODE 可以解决转 json 时中文乱码问题:json_encode($json,JSON_UNESCAPED_UNICODE)但是php 5.3 怎么解决中文乱码问题呢?我最近维护的项目是 php5.3 写的,哭死!可以使用正则把这个问题解决<?php/** * Created by PhpStorm....原创 2019-09-27 11:59:58 · 1279 阅读 · 0 评论 -
php 设计模式之观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题发生变化时,通知所有的观察对象。 总的来说, 观察者是解除耦合的重要手段。比如在一个登陆系统中,产品今天说在登陆时要加日志,明天又说在登陆时要发邮件或是发短信,后天又说要记录另外的一些东西。代码一直在打补丁,都改乱了,这时观察者模式可能会很好的解决这个问题,当登陆发生时去通知所有的观察者。我们可以设计一下第一...原创 2019-09-27 12:00:54 · 107 阅读 · 0 评论 -
php 验证码扩展包 Gregwar/Captcha
php 有很多优秀的扩展包可以帮我们缩短开发时间,避免重复造轮子.验证码扩展包 Gregwar/Captcha 就是其中的一个.1. 利用 composer 安装composer require gregwar/captcha2. 使用示例 2.1. 获取生成的验证码中的内容,并将验证码图片保存到本地# 测试路由Route::get('test', function ...原创 2019-01-09 11:21:16 · 3242 阅读 · 0 评论 -
php 可防止时序攻击的字符串比较函数 hash_equals()
时序攻击在 php 中比较字符串相等时如果使用双等 == 可能会有时序攻击的危险.比如比较"abscdd" == $request->code那么两个字符串是从第一位开始逐一进行比较的,发现不同就立即返回 false,那么通过计算返回的速度就知道了大概是哪一位开始不同的,这样就可以按位破解。而使用 hash_equals 比较两个字符串,无论字符串是否相等,函数的时间消...原创 2019-01-08 16:57:02 · 2764 阅读 · 0 评论 -
php 如何将数组导出成 csv
很多情况下我们需要将数据库中查询出来的数据导成 csv 保存.以下是 php 数组保存 csv 的方法,供参考<?php /** * Created by PhpStorm. * User: nwei * Date: 2018/9/10 * Time: 12:06 * * .--, .--, ...原创 2019-04-28 23:11:17 · 1293 阅读 · 0 评论 -
php 将文件打包成 zip
php 有自带的扩展类 ZipArchive 可以压缩/解压缩.压缩文件可以大致分为 3 类:单文件压缩成一个 zip 包 多文件压缩成一个 zip 包 文件夹压缩成一个 zip 包1. 单文件压缩<?php /** * Created by PhpStorm. * User: nwei * Date: 2018/10/17 ...原创 2019-01-03 16:22:00 · 12248 阅读 · 3 评论 -
php 下载资源文件到本地
php 将一个资源链接下载到本地的方法.仅供参考$source_url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1533882435&di=cbc2afab71336aec9f5d7f6edb133f25&imgtype=jpg&er=1&am...原创 2019-01-02 14:32:05 · 2086 阅读 · 0 评论 -
php 生成图片验证码方法
昨天碰到一个需要自己写图片验证码的需要,我用的 Lumen 框架中没有这个功能,需要自己写,网上搜了下,记录成一篇笔记.代码<?php /** * Created by PhpStorm. * User: nwei * Date: 2018/10/8 * Time: 15:14 * * .--, ...原创 2018-10-10 12:58:27 · 3753 阅读 · 0 评论 -
php 中奖概率算法
上次项目中有个抽奖活动,中奖概率算法整理成一篇笔记/** * 中奖概率算法 * v表示中奖概率,注意其中的v必须为整数,可以将对应的奖项的v设置成0,即意味着该奖项抽中的几率是0,数组中v的总和(基数),基数越大越能体现概率的准确性。本例中v的总和为100,那么 特等奖 对应的中奖概率就是1%,如果v的总和是10000,那中奖概率就是万分之一。 * *...原创 2018-10-10 12:48:49 · 1852 阅读 · 0 评论 -
php 计算时间段的最大连续天数
需求:需要计算这个时间数组的最大连续天数,9号到11号有连续三天,但是12号断开了,15号到18是一个连续的四天,所以计算结果应该是最大连续天数是 4 天. $dates = [ '2018-10-09', '2018-10-10', '2018-10-11', '2018-10-13', '2018-10-1...原创 2018-10-10 12:41:42 · 1030 阅读 · 0 评论 -
php 常用自定义方法总结「持续更新」
删除非空目录 /** * 删除非空目录 */ if (!function_exists("removeDir")){ function removeDir($dirName) { if(! is_dir($dirName)) { return false; ...原创 2018-10-10 12:36:45 · 135 阅读 · 0 评论 -
php 常用 composer 依赖「持续更新」
1. curl 扩展github 地址 https://github.com/php-curl-class/php-curl-class2. hash 加密工具 laravel-hashidsgithub 地址 https://github.com/vinkla/laravel-hashids3. wysiwyg-editor 富文本编辑器github 地址 https://g...原创 2018-10-16 13:37:42 · 706 阅读 · 0 评论 -
php 对密码进行加密
对于密码的处理可以参看 CodeIgniter 文档的安全章节https://codeigniter.org.cn/user_guide/general/security.html个人认为这是写的比较好的安全方面的文档.在密码加密中应该尽量减少使用 md5 方式加密 .在 Laravel/Lumen 中可以使用 Hash::make() 和 Hash::check() 加解密....原创 2019-08-24 13:36:08 · 3123 阅读 · 0 评论 -
php 过滤器函数 filter
php 自带的 filter 过滤函数还是很强大的,常用的一个函数是 filter_var() 具体可参看 文档filter_var() 的简单使用示例filter_var() 函数是获取一个变量并进行过滤.以下是常用的过滤方式使用示例把值作为 email 来验证(验证失败返回 false)&amp;amp;lt;?php$str = '1522563@163.com';$rs = filt...原创 2019-01-10 14:25:39 · 379 阅读 · 0 评论 -
php 后端上传图片到阿里云 OSS
1. composer 安装 SDK 依赖sdk 地址为 https://github.com/aliyun/aliyun-oss-php-sdk2. 代码实现<?php/** * Created by PhpStorm. * User: nwei * Date: 2019/1/4 * Time: 17:02 * * .--, .--, *...原创 2019-01-04 17:51:33 · 6764 阅读 · 0 评论 -
php 利用云片发送短信
在项目中很多时候需要用到短信服务,短信服务国内用到比较多了有阿里和云片.这里讨论云片的使用方法.1. 登录云片 新增签名和模板 2. 利用 composer 安装官方文档推荐的 SDK官方推荐的 sdk 地址 https://github.com/yunpian/yunpian-php-sdkcomposer 安装3. 使用示例sdk 的文档的使用示例...原创 2019-01-04 15:46:34 · 955 阅读 · 0 评论 -
php 实现无线分类
表结构如下:类方法<?php/** * Created by PhpStorm. * User: nwei * Date: 2018/12/14 * Time: 15:05 * * .--, .--, * ( ( \.---./ ) ) * '.__/o o\__.' * {= ^ =} * ...原创 2018-12-17 18:05:37 · 267 阅读 · 0 评论 -
php curl: (60) SSL certificate problem: unable to get local issuer certificate
我艹,我必须要先吐槽一下,我的 php 基础知识实在是无语了.我本地用的是 wampserver 开发环境,有多少人找这个问题是在 php 目录找 php.ini 的.也就是类似以下的这几个目录我这个傻逼就是改的这个里面的 php.ini ,我找了一晚上这个问题啊.关于修改 php.ini 我们可以下打印下 phpinfo() ,从 phpinfo 里的信息找到 php.ini 路...原创 2018-11-08 22:57:52 · 6263 阅读 · 0 评论 -
wampserver 开发环境的安装和使用
本地开发 php 环境推荐使用 wampserver ,下载地址为 https://sourceforge.net/projects/wampserver/当然国产的 phpStudy 可以.个人喜好问题.安装 wampserver 之前我们需要先安装 Visual C++ Redistributable for Visual Studio,这是 visual 2015 的下载地址 htt...原创 2018-11-12 22:04:46 · 752 阅读 · 0 评论 -
php substr、mb_substr、mb_strcut 函数比较
首先了解一下字符和字节:字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。 字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。它们完全不是一个概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉...原创 2020-10-11 08:26:38 · 224 阅读 · 0 评论 -
分享内容到 Facebook/Twitter/Instagram/Reddit
在做一些国外站的时,很多时候我们需要将内容分享都 Facebook/Twitter/Instagram/Reddit ,以下根据前辈博客稍作了总结,不成文章.分享到 Facebook"http://www.facebook.com/sharer/sharer.php?u=" + url;如果只是单纯的想分享一个链接到 facebook 去,而不添加过多的自定义内容,则只需要将需要分享的...原创 2018-10-12 11:47:32 · 13642 阅读 · 6 评论