PHP
文章平均质量分 65
愤世大魔头
一个不像技术的技术
展开
-
Laravel 关于阿里组件发短信报错:Class ‘AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi‘ not found 处理
阿里短信组件报错原创 2023-08-10 17:11:19 · 967 阅读 · 0 评论 -
PHP常见算法 - 选择排序 排序步骤输出展示
选择排序 排序步骤输出展示原创 2023-04-28 12:07:23 · 952 阅读 · 0 评论 -
PHP 之 Apple生成和验证令牌
一、情景描述前两天,APP因为有加了其他第三方的登录而唯独忽略了苹果登录,于是,被赤果果地拒了!因此,开发苹果登录,被提上了日程,故而,就有了这篇帖子“Generate and Validate Tokens”。苹果开发文档地址:https://developer.apple.com/documentation/sign_in_with_apple/generate_and_validate_tokens二、重点地方1、通过 苹果authorization_code去请求苹果的官方接口,获原创 2020-11-17 15:44:05 · 1128 阅读 · 0 评论 -
PHP和MySQL获取week值不一致的处理
应用情景在处理关于周数据的统计的时候,碰上一个问题:通过MySQL的week函数统计出来的“周数”,比PHP的date(“W”,time())获取的“周数”小1。如“2020-06-18 13:27:01”,MySQL取出来的是24,而PHP取出来的是25,这就导致有一周的数据没有匹配上。头一次碰上这个问题,于是我特意用win10角落的日历数了一下,发现“2020-06-18 13:27:01”确实在2020年的第25周,那问题就出在MySQL的week函数了。问题所在仔细一查,发现M.原创 2020-09-17 17:53:33 · 498 阅读 · 0 评论 -
Laravel框架日志文件存放在哪里?怎么用?
==----------------------------------------------------------------------------------------------------------------------文件位置:laravel/storage/logs/laravel.log使用前提:use Illuminate\Support\Facades\Log;添加日志Log::info('avatar-log', [$request->file('img')原创 2020-08-21 15:11:46 · 3912 阅读 · 0 评论 -
PHP - 设计模式之 写在最后
面向对象编程的基本原则1、单一职责原则。一个类,只需要做好一件事情,不要一个类就完成所有的事情,我们应该将其拆分成小的模块,每个负责每个的职责,切勿贪多。2、开发封闭原则。一个类,应该可以扩展,但不可修改。不应该使用修改来增加功能,而是通过扩展来增加功能。3、依赖倒置原则。一个类,不应该强依赖于另外一个类。每个类,对于另外一个类,都是可以替换的。比如有A和B两个类,如果A需要依赖于B,那实际上不应该在A类中,直接调用B类,而是应该使用依赖注入的方式,通过注入,将B类的对象,注入给A类,这样的话,原创 2020-05-28 09:49:54 · 307 阅读 · 0 评论 -
PHP - 设计模式之 代理模式
代理模式1、在客户端和实体之间,建立一个代理对象(proxy),客户端对实体进行的操作,全部委派给代理对象,隐藏实体的具体实现细节。2、Proxy还可以与业务代码分离,部署到另外的服务器。业务代码中通过RPC来委派任务。注记:在传统的编程中,业务代码是需要知道数据是存储到哪个数据库的哪个表中,使用代理模式后,就不想要关心具体实体的存储位置,可以存储在数据库,也可以存储在其他位置。业务代码将所有的操作委派给proxy,进行相关操作,而不是在业务代码中,直接进行操作。场景:典型的应用场景原创 2020-05-28 09:34:14 · 305 阅读 · 0 评论 -
PHP - 设计模式之 装饰器模式
装饰器模式1、装饰器模式(Decorator),可以动态地添加修改类的功能2、一个类提供了一项功能,如果要修改并添加额外的功能,传统的编程模式,需要写一个子类去继承它,并重新实现类的方法。3、使用装饰器模式,仅仅需要在运行时,添加一个装饰器对象即可实现,可以实现最大的灵活性。代码部分注意:这里借用"原型模式"的canvas的类,来对装饰器模式进行实现。1、如果想要给画的图,进行装饰,比如,给图设定个颜色,传统的方式该如何实现?传统编程方式,就是在draw方法前后,添加修.原创 2020-05-27 11:51:48 · 460 阅读 · 0 评论 -
PHP - 设计模式之 原型模式
原型模式概述部分1、与工厂模式相似,都是用来创建对象。2、与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后,通过clone原型对象,来创建新的对象。这样就免去了类创建时,重复的初始化操作。3、原型模式适用于大对象的创建。创建一个大对象,需要很大的开销,如果每次new操作,消耗就会很大,而原型模式,仅需内存拷贝即可。代码部分1、核心代码。该原型模式的作用是,设定宽高,来画*状的图形。2、调用canvas类,来实现画图功能...原创 2020-05-27 11:18:27 · 309 阅读 · 0 评论 -
PHP - 设计模式之 观察者模式
观察者模式概述部分1、观察者模式(observer),当一个对象状态发生改变时,依赖它的对象全部都会收到通知,并自动更新2、场景:一个事件发生之后,要执行一连串的更新操作。传统的编程方式,就是直接在事件代码的后面,加入处理逻辑。但当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑,就需要修改主体代码3、观察者模式实现了低耦合,非侵入式的通知和更新机制代码部分1、事件发生者2、事件观察者3、事件主体这里,Even.原创 2020-05-26 15:44:20 · 363 阅读 · 0 评论 -
PHP - 设计模式之 数据对象映射模式
数据对象映射模式1、数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作2、在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句,映射成对象属性的操作3、结合使用数据对象映射模式、工厂模式、注册模式代码部分-- 查看数据1、数据对象模式类2、调用数据对象模式类3、浏览器输出-- 更改数据1、数据对象模式方法2、调用部分3、浏览器访问后,查看数据库...原创 2020-05-26 15:24:59 · 393 阅读 · 0 评论 -
PHP - 设计模式之 策略模式
策略模式1、策略模式,将一组特定的行为或算法封装成类,以适应某些特定的上下文环境,这种模式就叫做策略模式。2、实际应用举例,如某个电商平台,针对男性用户和女性用户,要跳到不同的商品类目,并且,所有的广告位展示不同的广告。3、使用策略模式可以实现Ioc,依赖倒置,控制翻转。代码部分:1、首先创建一个策略接口2、然后,创建一个男士策略3、再创建一个女士策略4、代码调用我们先把对象给操作策略的类(setStrategy),这样,ind...原创 2020-05-23 20:58:45 · 603 阅读 · 0 评论 -
PHP - 设计模式之 适配器模式
适配器模式1、适配器模式,可以将截然不同的函数接口封装成统一的API2、实际应用举例,PHP的数据库有MySQL、mysqli、PDO三种,可以使用适配器模式,统一成一致。类似的场景还有cache适配器,将memcache,redis,file,apc等不同的缓存函数,统一成一致的。重点:适配器的好处在于,适配不同的业务,创建一个接口,然后,不同的业务实现这个接口,调用的时候,分门处理,即可达到适配!代码部分 - 以适配不同的数据库连接为例1、首先,得创建一个适配器接口..原创 2020-05-23 20:46:56 · 287 阅读 · 0 评论 -
PHP - 设计模式之 注册树模式
注册树模式用来解决全局共享和交换对象1、注册树类2、调用注册树类3、浏览器打印温馨提示:我们在用注册树模式,是在实例化的时候,就将它注册到全局树上,获取的时候再从全局树上获取使用。...原创 2020-05-22 15:58:38 · 187 阅读 · 0 评论 -
PHP - 设计模式之 单例模式
单例模式某个类的对象,只允许被创建一次1、数据库类构造方法私有2、访问已提示红色3、核心代码4、调用代码如果要连接MySQL,就通过以上代码,一次就可以连接,后续,如果还有连接操作,将不会再连接库了,因为,已经连接过!单例模式操作数据库,只需连接一次!...原创 2020-05-22 15:48:53 · 307 阅读 · 0 评论 -
PHP - 设计模式之 工厂模式
工厂模式使用工厂方法或者类生成对象,而不是在代码中直接new对象。1、首先,我们得创建一个工厂类2、这里,我们先看一下,如果不使用工厂模式,普通的使用,创建一个对象3、工厂模式,就是用一个工厂方法来替代new实例的操作,那么,下面我们来看看,工厂模式,怎么替代new实例工厂类,创建一个实例的静态方法那么,替换2,使用的时候,该怎么操作,如下看到这里,我们或许会问,那这个操作,比2有什么好处呢?就是,假如我们在实际的项目中有很多用到...原创 2020-05-22 15:40:37 · 315 阅读 · 0 评论 -
PHP - 设计模式之 魔术方法
__get和__set1、实例化一个类,然后,调用一个未定义的方法访问:2、但如果我们使用了__set和__get方法,也就是在该object类中,加入这两个方法,看看会怎么样?我们给一个未定义的属性赋值:浏览器查看结果:已经没有报错了!再看结果:从以上,我们能够看出,调用是先经过了__set方法,将没有的属性和值放到了映射数组,然后,调用的时候,又经过了__get方法,它又获取了映射...原创 2020-05-22 15:26:25 · 254 阅读 · 0 评论 -
PHP - 设计模式之 类自动载入
1、2、3、访问结果原因:没有加载上类!怎么处理呢?4、5、要点:__autoload__函数是魔术方法,可以自动加载类,但是,后来,被废弃了。原因是,我们PHP的工程一个可能会依赖多个框架,若每个框架都一个这个函数,就会报一个函数重复定义的致命错误。在PHP5.3之后的,PHP官方推出了spl_autoload_register(),它允许存在多个autoload函数。6、那么使用spl_a...原创 2020-05-21 12:49:09 · 366 阅读 · 0 评论 -
PHP - 设计模式之 PSR-0规范
PSR-0的三条规范1、PHP的命名空间必须与绝对路径一致2、类名的首字母必须要大写3、除了入口文件外,其他的“.php”文件必须只有一个类开发一个PSR-0规范的基础框架的要求1、全部使用命名空间2、所有的PHP文件必须自动载入,不能有include或require3、必须采用单一入口...原创 2020-05-22 14:44:27 · 259 阅读 · 0 评论 -
PHP之 常见问题拾记
PHP常识问题拾记1、PHP_EOL是干什么的?-》 PHP_EOL是PHP定义的变量,代表PHP换行。特点是这个变量会因为平台而变,在windows下是\r\n,在Linux下是\n,在mac下是\r。2、为什么echo一个对象会报语法错误,但如果这个对象实现了__toString方法后就可以直接输出呢?-》 echo本可以打印一个对象,而且也实现了这个接口,但是PHP对其进行了限制,只有实现__toString后才能使用。3、PHP在echo一个对象的时候,为什么要判断变量类型是否为st原创 2020-05-09 22:53:27 · 3498 阅读 · 0 评论 -
PHP之 链式邀请储值三级邀请所得计算算法
情景解说A B C D E F G H I J K L ,12个人, A储值了一笔钱,A邀请B和C储值了一笔钱,A从B和C获利他们充值金额的10%,即为邀请所得;然后,B又邀请D、F、G充值了一笔钱,B又分别从D F G那里分别获得一份邀请所得金额;这时,C 也邀请了 H I 冲值了一笔钱,C 即获得了两笔邀请所得;最后,G又邀请了J充值了一笔钱,获得一份邀请所得,I 又邀请了K L充值了一...原创 2020-04-13 17:52:43 · 1353 阅读 · 0 评论 -
PHP之 微信APP支付类
<?php defined('BASEPATH') OR exit('No direct script access allowed');/** * 微信支付 - APP - 类 * @author NangongYi * @time 2020-03-03 */class Wechat_payment_service extends FIT_Service{ /...原创 2020-04-13 17:04:00 · 502 阅读 · 0 评论 -
PHP之 直播开发后端需要做什么——准备工作
目前,直播应用于各大平台,可谓盛极一时。对于没有开发过的人,可能仅了解个大概,但谈到具体要怎么开发,可能就不知道其中梗概了。作为PHP后端开发,一开始在接到“直播开发”的任务时,也是一头雾水,代码不知何起一脸懵逼。于是上网搜索,有人说,后端不需要做什么,这些大部分是APP端(安卓和IOS)的事,后端仅需要在表里存一下推、拉流地址,就行了。可真的是这样么,当我开发完百分之九十的东西...原创 2020-04-13 16:50:16 · 3380 阅读 · 2 评论 -
PHP之 微信APP支付之APP端“code=-1”报错的坑
相关文档相关文档APP支付业务流程:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3问题来了微信APP支付,初次,在【步骤3】的时候,因为API秘钥的(文档含糊不清)问题,导致“签名错误”的业务流程,好不容易,处理,可到了【步骤4】,商户APP调起微信支付,安卓忽然告诉我说,他那边报“code=-1...原创 2020-03-31 12:21:17 · 1222 阅读 · 0 评论 -
PHP之 微信APP支付之“签名错误”踩的坑
做微信APP支付支付的人,初次调起微信支付,肯定有遇见“签名错误”的问题,我在做微信APP支付之初,就碰见了这个错误,现在回想起来,当时,各种找文档,帖子,然而,很多都说的含糊不清,甚至,抄别人的,整得人很无语,而,最要命的是,微信的“签名校验”居然还通过验证,没报错!?真的令人难以置信!签名校验能通过,但,调的时候,你却告诉我“签名错误”!你是在逗我玩么?天呐,当时,真恨不得十万坨翔给贴上...原创 2020-03-30 23:54:20 · 964 阅读 · 0 评论 -
PHP之 通过银行卡账号匹配银行名称
第一部分:配置文件/** * 银行卡匹配 接口 地址 * @desc api : 接口地址 * @desc bank_array : 银行数据集 */$config['bank_match'] = [ 'api'=>'https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-...原创 2020-03-30 23:05:48 · 2306 阅读 · 1 评论 -
PHP之 关于腾讯云“请求签名Signature”踩的坑
Signature报错:The provided credentials could not be validated. Please check your signature is correct。前文引述:做直播项目,如果你用的是腾讯云的云直播服务,那么,作为后端,不管是PHP、Java、Python,你肯定会接触一个用来“获取直播间状态的接口”,即【查看直播中的流】。因为,这...原创 2020-03-30 22:47:14 · 8458 阅读 · 3 评论 -
PHP之 向下取整 保留2位小数
情景:比如平台用户得了一笔 79999.2 的币,币与人民币兑换比例为 1000:1,你需要将这比“币”转换为人民币存库要求:保留两位小数,向下取整代码:$coins = 79999.2; $p = 1000;echo floor ( ($coins / $p) * 100 ) / 100;结果:79.99...原创 2020-03-22 22:07:37 · 2779 阅读 · 0 评论 -
PHP之 使用PHPMailer插件实现邮件发送功能
一、下载PHPMailer文件,并把“选取文件”放到你项目的对应目录下载地址:https://github.com/PHPMailer/PHPMailer/选取文件:PHPMailer\src\二、配置文件(服务配置以及发送人、内容相关配置)/** * 文件:dict/dict_email.php * 邮件发送服务配置及内容相关配置 * @Author NangongYi...原创 2019-12-02 17:14:55 · 468 阅读 · 1 评论 -
PHP之 微信access_token验证过期,存入redis,获取
写在前面关于微信的 access_token,我们经常碰到的问题,就是失效,access_token 一旦失效,跟其相关的操作就无法进行,那么该如何避免呢。采用redis,进行存储处理,可避免在没有失效的情况下,反复请求(防止超过限制)!一、 验证access_token是否失效,获取 access_token,存入redis并获取-Redis_access_token_serv...原创 2019-11-07 11:04:17 · 1865 阅读 · 0 评论 -
PHP之 微信支付 "查询企业付款银行卡API" 或 "查询给企业付款是否到账" 功能业务处理
一、情景简述之前做了微信付款到企业银行卡的功能,但是,给客户打款后,次日才能到账,为及时进行反馈,于是又做了"查询给企业付款是否到账"的功能。这块,我直接写了一个类,进行处理,下面,就是整个类的代码!微信文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_3二、相关注意1、这里涉及到一些敏...原创 2019-10-16 19:07:16 · 760 阅读 · 0 评论 -
PHP之 "微信走步数据"解析处理
情景简述:最近公司在做"通过微信走步排名,领取活动相关奖励"的功能,中间,自然就涉及到了,微信走步数据的相关解密操作,功能已做完,做个总结。注意,下文只涉及到后端数据处理,怎么获取,这里是由前端提供!一、基础部分,准备相关的参数/** * 每次进入小程序,把前端推送的走步数据,存入到【组成员表】 */public function save_member_steps(){...原创 2019-10-16 18:31:54 · 859 阅读 · 0 评论 -
PHP之 "微信模板消息推送" 的相关代码
温馨提示:微信模板消息推送,得先去微信端,设置模板配置,会生成相应的消息模板id,这个是一串字符,需连同参数数据,传给微信端,切记!~第一部分:主体部分代码,负责业务模块,准备微信端所需参数/** * 用户订单完成后在微信端推送【订单完成】相关信息 * @param int $orderid 订单id * @return mixed */public function ...原创 2019-09-24 11:27:32 · 492 阅读 · 0 评论 -
PHP之 微信【内容安全】“文字、图片” 校验代码
附加内容:1、微信文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html2、PHP5.4,json_encode函数,新增了一个参数选项,JSON_UNESCAPED_UNICODE,中文不编码,内容原样输出第一部分:【违规文...原创 2019-09-23 19:39:34 · 1979 阅读 · 0 评论 -
PHP之 生成"菊花状"的二维码图片代码
情景关于微信端的操作,经常会遇见,要生成菊花二维码,邀请好友助力,或者参团之类的业务操作,这时,就需要生成一个二维码,给到前端,那么,怎么用PHP如何生成呢?操作如下:第一步:生成 access_token,做好准备工作/** * 获取access_token值 * @return string $access_token */public function get_ac...原创 2019-09-18 02:33:27 · 1178 阅读 · 1 评论 -
PHP之 “微信走步数据” ,获取并解密处理的实践操作(关键代码)
应用场景在微信小程序的开发中,我们经常需要从微信端获取一些处理,以方便我们的程序操作处理,如“从微信端获取走步数据”,“从微信端获取手机号”等,而这些数据,考虑到安全的问题,一般需要根据微信的相关文档,进行数据获取、解密,然后,才能供我们使用!但是,微信的文档写的真是不尽人意,所以,今天,就“走步数据”的获取解密,就关键代码,简单地说说!相关知识点对称加密: 在加密和解密过程中使用...原创 2019-09-17 17:38:24 · 925 阅读 · 0 评论 -
PHP代码 - 简单、实用、美好的导出代码
卷首语: 作为后端攻城狮,在后台系统中,我们经常会遇到导出操作,常规情况,我们是找PHPExcel类来实现这个功能,但是,今天不用了,因为我在【PHP中文网】看到了一个超级好用的导出实现,所以,忍不住【转载加修改】的方式,贴出来,方便自己,也希望能方便到其他人。“All for one , one for all”, 愿程序世界更美好!一、后台页面Html代码: ...转载 2019-08-12 17:07:37 · 297 阅读 · 0 评论