php
文章平均质量分 79
wulove52
这个作者很懒,什么都没留下…
展开
-
前端资源文件(图片 css js)同步到阿里云OSS
前端资源文件(图片 css js)同步到阿里云OSS需求:为了实现自动化更新前端资源,前端资源已放到了阿里云OSS,实现自动上传。思路:1.因为使用的是php语言开发项目,自然会想到用php实现,用php实现目录遍历和文件遍历操作然后结合阿里云sdk进行上传操作,但是这样会有个问题,目录层级比较多,文件比较多,那么循环效率低。所有一开始就不打算使用这种方式。2.网上开始寻找解决方法,1)了解lin...原创 2018-06-13 15:26:09 · 3166 阅读 · 1 评论 -
无限极分类原理与实现
前言无限极分类是我很久前学到知识,今天在做一个项目时,发现对其概念有点模糊,所以今天就来说说无限极分类。首先来说说什么是无限极分类。按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始,到主干、枝干、叶子……完成无限极分类,主要运用了两种方法,一是递归方式,二是迭代方式。而主要运用无限极分类的地方有地址解析,面包屑导航等等。下面就来具体介绍两种方法的原理及实现方法。家谱树与子孙树转载 2017-10-24 14:13:30 · 782 阅读 · 0 评论 -
如何创建一个自己的Composer包
首先让我们踏着欢快的脚步去Github创建一个新库,这里取名 composer-car,又欢快的将它克隆到本地:$ git clone git@github.com:wulove52/vilin-car.git $ cd vilin-car这个composer-car文件夹就是你的包的根目录了,你只需要记住composer.json在包的哪个目录下面,一般那就是包的根目录了。现在原创 2017-10-30 14:29:39 · 690 阅读 · 0 评论 -
慎用composer update
问题说明我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的:composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害。因为 composer update 的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是 所有扩展包,举个例子,你在项目一开始的时候使用转载 2017-10-30 14:27:00 · 31041 阅读 · 4 评论 -
imagick的简单使用
PHP建图通常都用GD库,因为是内置的不需要在服务器上额外安装插件,所以用起来比较省心,但是如果你的程序主要的功能就是处理图像,那麼就不建议用GD了,因为GD不但低效能而且能力也比较弱,佔用的系统资源也颇多,另外GD的creatfrom也有bug,而imagick却是一个很好的替代品,为此最近把我的一个项目由GD改成了imagick,但是改完之后出现了一些状况在此分享给大家.首先说一下我这原创 2017-10-28 15:20:15 · 5822 阅读 · 0 评论 -
事务具有4个属性:原子性、一致性、隔离性、持久性
事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体如下:1. 原子性(Atomic) 一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚到事务执行之前的状态。 回滚实际上是一个比较高层抽象的概念,大多数DB在实现事务时,是在事务操作的数据快照上进行的(比如,MV转载 2017-10-28 14:57:20 · 2569 阅读 · 0 评论 -
面向对象五大基本原则
面向对象五大基本原则以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象,其实真正的面向对象设计是要符合下面的五大原则,面向对象的五大基本原则单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) ...转载 2017-10-28 14:02:07 · 247 阅读 · 0 评论 -
php给pdf加上水印
环境php5.5.12 fpdi-1.5.2 fpdf-1.7原理利用fpdi来加载已知pdf文件,用fpdf对pdf进行操作注意事项免费的fpdi只支持处理pdf1.4及以下版本,1.5以上就需要用到FPDI PDF-Parser插件使用方法fpdi-1.5.2 fpdf-1.71.文字水印 word.php?转载 2017-10-28 11:24:25 · 3001 阅读 · 0 评论 -
laravel5.5的新特性简单说明
一.新的报错页面 关闭错误后的报错页面 和可以直接指定500.blade.php 的错误页面二.preset 命令 php artisan help preset 查看帮助 php artisan preset none 什么前端框架都不使用 php artisan react 使用 react框架注:其实修改的就是package.json 和resource 的前端js原创 2017-08-24 18:49:48 · 3703 阅读 · 1 评论 -
homestead注意事项
在安装 Laravel homestead 虚拟机的时候,由于神秘的原因,直接添加 box 实在太慢,中途失败的几率又太大。所以,在国内,非常推荐大家都直接使用本地 box 的方式安装 Laravel homestead:1.下载 homestead.box 文件你可以使用迅雷或其他的方式下载下面的 boxhttps://atlas.hashicorp.com/larave转载 2017-06-29 23:19:43 · 442 阅读 · 0 评论 -
[Laravel 5.3 新功能] 12. Mail 操作类 Laravel Mailable
[Laravel 5.3 新功能] 12. Mail 操作类 Laravel Mailable说明#此文章是 [Laravel 5.3 新功能] 系列的第十二篇文章,Mail 操作类 Laravel Mailable。[Laravel 5.3 新功能] 系列完整文章列表请见:https://laravel-china.org/topics/26385转载 2017-05-04 17:51:41 · 1715 阅读 · 0 评论 -
laravel中的错误与日志(可以自定义日志目录和log文件名)
laravel中的错误与日志2014-12-19 10:09 by 轩脉刃, 21252 阅读, 1 评论, 收藏, 编辑日志laravel中的日志是基于monolog而封装的。laravel在它上面做了几个事情:把monolog中的addInfo等函数简化成为了info这样的函数增加了useFiles和useDailyFiles两个参数,使得做日志管理和切割变的容转载 2017-05-04 17:49:35 · 18834 阅读 · 0 评论 -
一个无限极分类转成tree树的数据结构
说明:工作中 商品的分类 城市的分类 用户组的分类 面包屑 等分类 会可能设计到无限极分类。不确定层级数量。还在前端展示时为了项目好实现,后端需要转成tree树结构function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($items原创 2017-10-24 15:12:47 · 654 阅读 · 0 评论 -
文章添加和修改自动生成手机端文章页面
文章添加和修改自动生成手机端文章页面需求:为了更好的实现自动化,在添加和编辑文章时自动生成手机端的文章页面思路:1.之前已经安装了手机端静态化模块,此开发依赖于这个模块,这样代码可以复用这个模块的,之前文章页生成需求点击手机端静态化模块进行更新文章。2.发布文章时候回自动生成PC静态化页面,代码实现可以卸载这个下面,并做个配置开关。代码开发如图:代码特点:1.做个一个配置开启的开关可以关闭和开启 ...原创 2018-06-13 15:24:06 · 1383 阅读 · 0 评论 -
添加和修改文章时,自动更新顶级栏目和次级栏目首页和文章父级栏目
添加和修改文章时,自动更新顶级栏目和次级栏目首页和文章父级栏目需求: 为了更好的实现自动化,在添加和修改了文章就能自动刷新首页和栏目页的文章标题和栏目数据(包含手机端 和pc端首页)思考: 根据杨老师提供的织梦cms计划任务 展开思考,计划任务一个很好的解耦方式不会让代码冗余在一起 这样通过指定任务调用指定脚本完成我们的需求,具体的需求写在指定脚本中实现计划任务的特点 1.可以创多个任务存入到数据...原创 2018-06-13 15:17:58 · 388 阅读 · 0 评论 -
archives和article添加和修改的缩略图支持上传阿里云oss
archives和article添加和修改的缩略图支持上传阿里云oss需求: 在添加和修改文章和archives 时候里面会有个 缩略图字段,这个上传时候传到oss思路: 主要是寻找,有没有统一调用的位置,把代码写在该位置,会让代码量和后期修改更简单,这个过程需要不断,读源码,跑这也文章和archives的流程。经过读源码发现 这四个文件中都使用了 GETDDImage() 方法修改如图: 阿里云...原创 2018-06-13 15:16:17 · 263 阅读 · 0 评论 -
解决 fxp/composer-asset-plugin 包报错问题
报错信息如下我的解决办法 删除C:\Users\win7\AppData\Roaming\Composer\vendor\ 路径下的 Fxp 下文件 包含Fxp路径重新到https://pkg.phpcomposer.com/ 该网站搜索 fxp/composer-asset-plugin包 安装最新版composer global require "fxp/composer-asset-plug...原创 2018-03-06 14:11:07 · 7184 阅读 · 0 评论 -
rawurlencode与urlencode
昨天看ucenter源码的时候,发现有些地方用urlencode,有些地方用rawurlencode。由于对这两个方法的差异不是很清楚,特意写了一段代码来测试。 请将下面的代码保存到一个PHP文件中:[php] view plain copytestEncode('http://www.baidu.com?a=search原创 2018-02-02 11:43:38 · 1915 阅读 · 0 评论 -
PHP Socket编程 之使用fsockopen()函数
Socket可以理解为两台计算机相互通信的通道。用法:使用fsockopen()函数具体用法详见上篇文章。函数的参数为URL、端口号、一个存放错误编号的变量、一个存放错误信息字符串的变量和超时等待时间。(只有第一个参数是必须的)常见的端口表:端口号主要用途21FTP22转载 2018-02-01 10:04:42 · 1961 阅读 · 0 评论 -
PHP mcrypt加密扩展使用总结
PHP mcrypt加密扩展使用总结在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密。PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密。一、mcrypt扩展的安装 在低版本的PHP中需要在配置文件php.ini中显式添加对扩展的引用,同时要保证扩展引用目录中有相应的扩展文件;在高版本的PHP中,Windows下似乎默认开启了mcrypt的转载 2017-10-16 22:53:12 · 392 阅读 · 0 评论 -
.ssh文件下 git克隆 秘钥多配置实现
说明:在你进行项目克隆时 有多个项目 并且 有个人和公司的 项目 你们使用了不同的 公钥。那么多配置 怎么实现呢。 其实很简单,只需要改两个地方1.hosts 文件 ip 和域名的绑定关系 2. .ssh 目录下 的 config 文件配置如下:原创 2017-10-16 21:12:54 · 338 阅读 · 0 评论 -
微信使用的签名算法应用到接口认证
1、签名算法(签名校验工具)签名生成的通用步骤如下:第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。特别注意以下重要规则:◆ 参数名ASCII码从小到大排序(字典序);◆ 如果参数的值为空不参原创 2017-10-16 20:51:13 · 1804 阅读 · 0 评论 -
jwt的详细说明
什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可转载 2017-10-16 20:48:30 · 2824 阅读 · 0 评论 -
php autocode 加密 解密代码实现
//************************加密解密*************************//** $string: 明文 或 密文* $operation:DECODE表示解密,其它表示加密* $key: 密匙* $expiry:密文有效期* */function authcode($string, $operation = 'DECODE', $转载 2017-10-16 20:47:22 · 632 阅读 · 0 评论 -
Laravel 发送邮件(smtp方式最简单的讲解!)-邮件部分
Laravel集成了SwiftMailer库进行邮件发送,邮件配置文件位于config/mail.PHP:、[python] view plain copyreturn [ 'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smt转载 2017-05-04 17:42:10 · 9208 阅读 · 0 评论 -
Laravel 5.3 新特性系列 —— Blade 模板新增 $loop 变量
什么是Blade指令?Laravel的Blade模板语言提供了指令功能,这些指令其实是一些自定义标签 —— 以@开头,通常用于控制结构。如果你用Blade写过模板,就会对形如@if、@foreach这些指令非常熟悉。这些指令通常都是相应PHP代码的等价物,例如@if(condition)等价于<?php if($condition):$loop变量在Lara转载 2017-05-04 17:47:46 · 1402 阅读 · 0 评论 -
会话控制--php基础最详细教程
会话控制cookie和session 原创什么是会话控制?COOKIECOOKIE概述cookie技术服务器给客户端的 礼物就是借助 客户端 电脑 的 一个文件 来保存这个用户信息, 再访问同一个网站的各个页面都会带这些信息过去,服务器在每个页面只要通过这些信息就能区分用户COOKIE的设置注意:因为s原创 2016-08-30 22:03:19 · 1768 阅读 · 0 评论 -
PHP的日期和时间--php基础最详细教程
PHP的日期和时间 原创介绍UNIX时间戳简介:以最小从0开始,最大到2的32次方减一的整数表示格林威治标准时间如112304325这个UNIX时间戳整数是从1970年1月1日0时0分0秒开始(计算机元年)到现在的秒数。作用:方便我们计算使用(参与运算)时间范围 1970-01-01 0:0:0 到2038-01-19 11:14:07 时间戳范围1-2原创 2016-08-30 22:04:59 · 564 阅读 · 0 评论 -
php动态图像处理--php基础最详细教程
PHP动态图像处理 原创创建新图片画图header('content-type:text/html;charset=utf-8');//1-1.创建一个基于调色板的画布$img1 = imagecreate(400,400);//1-2.创建一个真彩色画布$img2 = imagecreatetruecolor(400,400原创 2016-08-30 22:09:56 · 1596 阅读 · 0 评论 -
数据库抽象层--php高级最详细教程
数据库抽象层PDO 原创使用PDO的好处?PDO(PHP Data Object) 的出现让PHP达到一个新的高度。PDO扩展类库为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这个,无论你使用什么数据库,都可以通过一致的函数执行查询和获取数据。大大简化了数据库的操作,并能够屏蔽不同数据库之间的差异。使用PDO可以很方便的进行跨数据库原创 2016-08-30 22:24:29 · 1595 阅读 · 0 评论 -
数据库基础语法--php基础最详细教程
数据库开发篇 原创MySQL数据库概述 数据库系统(database system) 数据库(database) 数据库管理系统(Database Management system) 结构化查询语原创 2016-08-30 22:13:39 · 1020 阅读 · 0 评论 -
smarty模板引擎--php高级最详细教程
Smarty(模板引擎) 原创一、什么是模板引擎?Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下,他们不可能是同一个人;分开编写,加快开发进度!二、自定义模板引擎引擎类:Mytpl.class.php class M原创 2016-08-30 22:30:53 · 14583 阅读 · 0 评论 -
PHP面向对象的程序设计关键字--php高级最详细教程
PHP面向对象的程序设计关键字 原创关键字finalfinal不能修饰成员属性(类中声明常量不是用这个词,与JAVA不同)final只能修饰类和方法作用:使用final修饰的类,不能被子类继承使用final修饰的方法,不能被子类去覆盖用来显示类不能被继承,方法不被覆盖就使用finalstatic 1.使用static可原创 2016-08-30 22:42:00 · 744 阅读 · 0 评论 -
PHP面向对象的程序设计封装--php高级最详细教程
PHP面向对象的程序设计前言: PHP5正式版本的发布,标志着一个全新的PHP时代的到来。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方式实现类的保护。(细说PHP2 224页)面向对象的介绍1、面向对象的程序设计(Object Oriented Programm原创 2016-08-30 22:32:27 · 4958 阅读 · 0 评论 -
PHP面向对象的程序设计继承--php高级最详细教程
PHP面向对象的程序设计 原创继承概念:就是用子类"扩展"父类他也是面向对象的三大特性之一优点:1.开放性、可扩充性2.增加代码的重用性3.提高软件的可维护性其他语言比较:C++属于多继承,同一个类可以有多个父类PHP和Java属于单继承,同一个类只能有一个父类设计理念:只要原创 2016-08-30 22:36:25 · 723 阅读 · 0 评论 -
PHP面向对象的程序设计多态--php高级最详细教程
PHP面向对象的程序设计 原创多态抽象类抽象类 接口 多态抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类或接口抽象类:什么是抽象方法? 定义:如果一个类中的一个方法,没有方法体的方法就是抽象方法(就是一个方法没有使用{}而直接使用分号结束)abstract function test(); //抽象方法原创 2016-08-30 22:38:48 · 1030 阅读 · 0 评论 -
php错误处理--php基础最详细教程
PHP的错误和异常处理 原创PHP的错误处理方式错误处理PHP程序的错误发生一般归属于下列三个领域:语法错误: 如 声明变量未加 $ 功能执行语句未加 ; 等 语法错误最常见,并且也容易修复。如:代码中遗漏一个分号。这类错误会阻止脚本的执行。 运行时错误:原创 2016-08-30 22:01:33 · 599 阅读 · 0 评论 -
正则表达式--php基础最详细教程
正则表达式简介 原创概念: 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。作用:1.匹配,也常常用于从字符串中析取信息。2.用新文本代替匹配文本。3.将一个字符串拆分为一组更小的信息块。说明:如果可以使用字符串处理函数处理的任务,就不用使用正则。有一些复杂的操作,只能使用正则完成。正则原创 2016-08-30 21:59:59 · 678 阅读 · 0 评论 -
composer install 与 composer update 区别
1.composer installinstall 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。php composer.phar install如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都转载 2017-03-16 11:48:21 · 3727 阅读 · 0 评论 -
php-china.org 的开源项目安装
本安装过程基于window7 环境下进行:准备工作1.本地环境支持了composer 2.本地环境支持了 git 3.本地环境支持npm 4.已经安装了homestead 已确认以上环境可以正常使用后,我们开始安装phphub5 开源参考以下文章:https://github.com/summerblue/phphub5原创 2017-03-31 14:06:46 · 783 阅读 · 0 评论