PHP
文章平均质量分 63
ZhiHuaWei
我知道自己能力小,但,有什么可以能帮到你的吗?
展开
-
基于PHP7和JS的AES相互加密解密方法详解2(CryptoJS)
基于PHP7和JS的AES相互加密解密方法详解2综述openssl加密解密代码调整php代码修改部分(index.php)JS部分代码(funciton.js)综述在18年的时候写了一篇《基于PHP和JS的AES相互加密解密方法详解(CryptoJS)》,上面详细描述了如何使用PHP和JS对数据进行相互的AES加密解密。由于当初使用的是PHP5中的mcrypt_decrypt和mcrypt_encrypt方法,在PHP7中已经废弃了。故写本篇文章进行更新在PHP7中如何与JS进行相互的AES加密解密。原创 2021-01-09 18:20:54 · 931 阅读 · 0 评论 -
PHP开发小技巧②⑤—多维数组多字段自定义排序
在前面的开发小技巧中已经介绍了一种二维数组根据key进行排序《PHP开发小技巧②—实现二维数组根据key进行排序》这个在使用的时候可能功能不足,或是达不到要求,今天我就遇到这么一个情况。下面介绍两种改进之后的方法。一、多维数组根据某一字段排序此处用到了PHP的array_multisort方法(对多个数组或多维数组进行排序),关于此方法的用法可以查看PHP开发手册。首先我们假设一个原创 2018-04-19 16:05:09 · 1415 阅读 · 0 评论 -
PHP开发小技巧②③—根据ip地址获取城市
这个方法我们用的还是比较多的,便于收集信息用于数据挖掘分析。此方法不光根据ip地址进行获取当前城市还可以根据http请求获取用户的城市位置。 实现方法:主要是根据高德地图API进行获取,首先注册成为高德地图用户,然后认证成为开发者,创建应用获取key进行调用即可。具体实现方法如下:<?php/** * ==================================原创 2018-04-12 16:34:55 · 1078 阅读 · 0 评论 -
PHP开发小技巧②②—判断是否微信访问
在开发中有时需要禁止或者仅允许微信浏览器进行访问,则此时就需要对微信浏览器访问进行判断,本篇博文讲述如何判断是否是微信访问。原创 2018-04-10 10:11:11 · 1567 阅读 · 0 评论 -
PHP开发小技巧②④—获取真实的IP(微信支付:网络环境未能通过安全验证,请稍后再试)
今日在项目开发中遇到一个问题,使用微信H5支付时,提示“网络环境未能通过安全验证,请稍后再试”;查看官方文档说是下单ip(spbill_create_ip)地址检验不正确。阅读官方所给sdk代码是:$inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//获取终端ip这种方法不能获取到真实的ip地址,然后我修改成: /**原创 2018-04-14 16:02:34 · 5437 阅读 · 0 评论 -
详解PHP设计模式之设计模式类别
MVC是设计模式开发中很重要的一点,不过这还只是一个起点。对于编程中MVC的使用、误用和滥用,已经有大量相关的文档做过介绍。总的来说,设计模式是按照作用和范围来组织的,设计模式的作用可以分为3大类:创建型结构型行为型 这种分类页反映了一般所人为的模式所要完成的目标。 设计模式按照范围划分可以分为两大类:类对象 本篇博文将简要介绍这些类别划分...原创 2018-03-05 17:23:51 · 339 阅读 · 0 评论 -
PHP开发小技巧②①—生成唯一订单号
现在的的项目中,定制开发商城的越来越多。其次,无论商城,还是其他的什么,都会需要订单号的应用,而订单号的唯一性就是十分重要的了。在此提供一种如何生成唯一的订单号方法,供大家参考使用。 下面是代码实现: <?php /** * ======================================= * Created by ZHIHUA原创 2018-03-16 17:31:53 · 1014 阅读 · 3 评论 -
基于PHP和JS的AES相互加密解密方法详解(CryptoJS)
在最近的项目中,前端后台数据交互需要进行加密之后传输使用,以保证系统数据的安全。有关数据加密解密的问题,有很多种加密的方式,在这里我选择了AES的加密方式。特此写下此篇博文,总结讲述下PHP和JS进行相互AES加密解密的方法。 关于源代码点击地址进行下载:http://download.csdn.net/download/zhihua_w/10261363HT原创 2018-02-27 14:54:00 · 13428 阅读 · 6 评论 -
详解PHP设计模式之综述
综述随着PHP日益成为很多程序员首选的服务器端程序,将专业的技术和编程结构相结合已经势在必行。设计模式(Design patterns)是指对给定上下文(的环境)中某个经常出现的问题得出的一种一把行可重用的解决方案。在日常的开发工作中,PHP程序员综合在某种软件开发环境中遇到“经常出现的问题”,PHP设计模式就是针对这些“经常出现”的PHP编程问题提出的一组解决方案。简单的说,PHP设计模式是用来...原创 2018-02-26 10:51:53 · 391 阅读 · 0 评论 -
PHP开发小技巧②〇—获取header头信息
研究了一下php关于自定义header头信息的问题。看了很多代码,我们可以在$_SERVER中获取header数据,自定义的数据都是使用HTTP_作为前缀的,所以可以把HTTP_前缀的数据读出。 下面是代码实现: <?php /** * ======================================= * Created by ZHIHUA·W原创 2018-02-05 13:56:28 · 2480 阅读 · 0 评论 -
PHP开发小技巧①⑨—实现将数字转换为大写金额计数
在我们开发项目过程中,有时会遇到这种情况:当我们在写支付账单的时候需要填写数字金额的大写,有的时候还真的写不出来,这个时候用百度也听尴尬的,特地写了这个方法,可以经常使用,进行直接转换。代码实现如下:<?php/** * ======================================= * Created by ZHIHUA·WEI. * Author: ZH原创 2018-01-29 10:43:35 · 839 阅读 · 0 评论 -
PHP开发小技巧①⑧—将一个字符串部分字符用*替代隐藏
有时候我们在开发中会遇到这样一种情况,例如:显示手机号我们需要将中间4位遮挡掉,一般使用“*”号代替,或是显示身份证号码是为了保护个人信息也同样需要遮挡掉4位,故可用到下列方式、代码进行实现:<?php/** +---------------------------------------------------------- * 将一个字符串部分字符用*替代隐藏 +-------原创 2018-01-16 17:01:58 · 1765 阅读 · 0 评论 -
PHP.INI(php配置)文件内容全解析
[PHP]; About php.ini ; 关于 php.ini ; PHP's initialization file, generally called php.ini, is responsible for; configuring many of the aspects of PHP's behavior.; PHP的初始化文件,一般称为php.ini,负原创 2018-01-31 15:18:44 · 1681 阅读 · 0 评论 -
PHP开发小技巧①⑦—PHP实现跨域
由于项目需要,一些界面用HTML+CSS+Javascript实现,放入到不同的服务器中,还需要进行数据交互,这时就会出现请求失败,返回的信息如下: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not al原创 2017-12-15 17:49:02 · 863 阅读 · 0 评论 -
PHP开发小技巧①⑥—提取富文本字符串中的文本内容
综述富文本在我们平常的项目中应用已经很广泛了,并逐渐发展成了一个行业。最近在项目中遇到需要提取富文本字符串中的文本内容,本篇博文就是记述如何重富文本字符串中提取出文本内容,欢迎大家相互学习。富文本字符样例<h1 style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-size:...原创 2019-10-24 09:58:10 · 5839 阅读 · 1 评论 -
PHP 应用性能优化方案
程序员都喜欢最新的PHP 7,因为它使PHP成为执行最快的脚本语言之一(参考PHP 7 vs HHVM 比较)。但是保持最佳性能不仅需要快速执行代码,更需要我们知道影响性能的问题点,以及这些问题的解决方案。本篇博文就是介绍保障PHP应用平稳高速运行的知识点,大量干货来袭,建议收藏。1、PHP代码优化最佳实践 编写好的PHP代码是创建快速稳定Web应用的关键一步原创 2017-09-08 10:55:07 · 746 阅读 · 0 评论 -
开发第三方银生宝支付DEMO
简述 第三方的支付机构很多,每个支付机构的支付方式也都大不相同,有的甚至还没有开发DEMO,最近项目中使用的就是银生宝这一第三方支付机构。并且没有参考代码,仅有一个文档描述。DEMO还需自行开发。故此,将代码记录一些,如有需要的博友,自行阅读。源码首页支付请求:index.php<?php/** * ===========================...原创 2019-09-17 10:21:37 · 1047 阅读 · 0 评论 -
PHP开发者必须了解的工具—Composer
Composer是PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。对于PHP开发者来说掌握Composer是必须的。对于使用者来说Composer非常的简单,通过简单的一条命令将需要的代码包下载到vendor目录下,然后开发者就可以引入包并使用了。Composer由来PHP最早加...原创 2018-05-17 10:17:13 · 882 阅读 · 0 评论 -
ECSHOP支付插件开发(银生宝支付)
简述 上篇博文自行开发了银生宝支付DEMO,本篇博文就是将银生宝支付整合到ECSHOP中。ECSHOP中的支付插件开发并不是很复杂,主要提供一个插件模块的基本信息,一个插件的类。插件模块的进本信息主要用于和数据库对应在后台显示此插件的安装信息;类主要提供生成此第三方支付的支付代码和回调。下面是代码,欢迎大家相互学习。(下述代码仅是简单的实现了支付功能,未对代码进行优化处理[强迫症...原创 2019-09-17 10:21:12 · 1099 阅读 · 0 评论 -
PHP使用phpCAS对接CAS单点登陆系统
PHP使用phpCAS对接CAS单点登陆系统综述`CAS`单点登陆原理搭建`CAS SSO`SERVER服务端下载`phpCAS`客户端phpCAS客户端配置PHP开发对接注意综述本文档用来说明如何使用PHP对接CAS单点登陆系统。想要对接使用CAS单点登陆,我们首先需要了解什么是单点登陆。本博文主要对下面几项进行说明:了解CAS单点登录原理解析搭建CAS SSOSERVER服务端;...原创 2019-09-11 15:24:11 · 10629 阅读 · 0 评论 -
微信第三方登陆从零到实现过程(PHP开发版)
综述在很多项目开发中我们都可能于遇到实现第三方登陆的功能(微信、QQ、微博等);其实现的原理大同小异,实现的过程也不是很复杂。本篇博文用以讲述从零实现微信第三方登陆功能。创建网站应用登陆微信开发平台,创建一个网站应用(如图),点击创建网站引用之后按要求进行填写相应的信息等待审核通过即可。审核通过之后可获得对应应用的AppID和AppSecret (如图2)。图1 创建网站应用...原创 2019-06-21 15:51:52 · 2505 阅读 · 1 评论 -
PHP实现随机发红包|抢红包功能
综述自从红包功能火起来之后很多APP都开始添加上此功能以顺应“潮流”。技术流人员都开始研究各种红包算法,别看一个简单的红包功能看起来(说起来)简单,但是实现起来真不简单。首先我们不光要考虑到生成各个红包金额值的合理性(所有红包值不能大于总数),还要考虑各个类型的抢红包模式(例如:拼手气红包、指定金额红包等),最重要的还要考虑大数据下的并发情况(不能抢超了,例如发了5个红包抢走了7个)。下面博主...原创 2019-06-11 16:20:38 · 3851 阅读 · 2 评论 -
ThinkPHP5在Nginx服务器下访问提示“重定向的次数过多”解决方法
综述由于项目需要,以前使用Apache作为服务器的项目需要改换成Nginx,但是换过之后出现了一个问题,直接使用域名进行访问的时候提示“该网页无法正常运作 重定向的次数过多 ERR_TOO_MANY_REDIRECTS”。通过一步一步对代码进行断点输出查到原因是没有进行设置默认的访问模块(默认控制器和默认方法)或者设置的默认访问模块(默认控制器和默认方法)不存在。所以造成了此种原因。解决方案如...原创 2019-04-11 11:15:46 · 8227 阅读 · 0 评论 -
PHP生成带二维码的分享图片
综述项目开发中需求,要求在APP中进行分享的时候可以分享图片,图片由美工进行设计,其上带有二维码,分享给别人可以直接长按图片进行识别。这种方式在分享中用户体验更好,首先图片由美工设计很好看,其次这种方式比单单的分享出去一个链接更能吸引人。总之将实现过程进行记录。准备首先要美工设计的分享海报效果图,根据海报效果图标注获取图片模板(如下所示)。代码<?php/** ...原创 2019-03-22 11:47:09 · 3863 阅读 · 4 评论 -
PHP大数据量(大于50万)导出到Excel解决方案
综述最近在工作中遇到这样一个问题,公司项目要求订单有导出功能,以前虽然也使用PHPExcel做过几个导出功能,但是这次所需导出的数量巨大,因此在开发中遇到一些导出的坑,在此进行总结记录一下。吐槽首先,我们可以肯定这个需求太XX(手动和谐)了,这么大的数据量让谁看这去分析啊?一般的Excel数据都是给市场、财务的的非技术部门使用的,所以,我认为应该把思路首先放到为什么需要导出这类数据上,...原创 2019-02-12 18:42:52 · 20567 阅读 · 0 评论 -
深入了解PHP的include和require
综述 在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:a. require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。b. include...原创 2019-01-03 12:03:38 · 900 阅读 · 0 评论 -
详解PHP设计模式之适配器模式
综述 看到这首先我们要知道什么是适配器模式,我们可以简单的理解为适配器设计模式只是将某个对象的接口适配为另一个对象所期望的接口。适配器很容易理解:我们一直在使用适配器,例如手机转换器,USB连接头等就是一种“适配器”。实例<?php/** * ======================================= * Created by ZHIHU...原创 2018-12-19 09:37:12 · 630 阅读 · 0 评论 -
如何统计PHP程序的运行时间、耗费内存
简述在项目开发中有时需要我们进行代码效率优化,这样就需要知道我们的代码运行所需的时间,所占用的内存等等问题。此篇博文就是简单讲一下如何统计PHP程序的运行时间和运行所需耗费的内存。代码实现<?php/** * ======================================= * Created by ZHIHUA·WEI. * Author: ZHIHUA...原创 2018-09-27 09:02:00 · 1779 阅读 · 0 评论 -
详解PHP设计模式之工厂方法模式
简述工厂方法(Factory Method)模式也是一种创建型设计模式,工厂模式就是要创建“某种东西”。对于工厂方法模式,要创建的“东西”是一个产品,这个产品与创建它的类之间不存在绑定。实际上,为了保持这种松耦合,客户会通过一个工厂发出请求,再由工厂创建所请求的产品。也可以换种方式考虑,利用工厂方法模式,请求者只发出请求,而不具体创建产品。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接...原创 2018-07-25 10:22:27 · 358 阅读 · 0 评论 -
详解PHP设计模式之单例模式
简述单例模式属于创建型设计模式,其强调的是实例化过程。单例模式是为了防止多次重复实例化,例如数据库的重复连接,造成资源浪费。单例模式1. 设计重点一个类只有一个对象; 类为自行创建,不能通过new来声明 用途:在整个系统中统一提供这一个对象。2. 设计写法类中定义一个私有静态变量; 类中只提供私有的构造函数; 提供一个静态公有函数用来创建私有对象本身; 使用__cl...原创 2018-07-24 09:18:56 · 617 阅读 · 0 评论 -
如何更好的设计MySQL数据库(MySQL 数据库设计原则)
简述 在我们项目开发中,数据库的设计可以说是非常重要,我遇到过很多数据库设计比较杂乱的项目,像表名、字段名命名混乱、字段类型设计混乱等待。写本篇博文的目的就是总结一下设计MySQL 数据库原则,有一个小小的规范会使得我们的项目更加强壮。设计原则1. 命名规则 数据库的的名字一般都是很随意,最好和我们的项目业务一致,这样比较好进行区分;数据表的命名应尽可能...原创 2018-07-04 10:31:20 · 3144 阅读 · 0 评论 -
开发多图片上传且可拖拽排序功能详解
简述 最近的商城项目中遇到这样一个需求,客户要求在上传商品图片时可多图片上传,并且可以拖拽排序。前面多图片上传比较好实现,网上一大片的教程、插件可供学习使用,可又要求可以拖拽排序,我也没找到现有的代码,自己也就研究着尝试实现了下,实现的结果还是比较好的。大家有需要的可以跟着学习下。 在这里我使用了jQuery的file upload插件用于实现多图片上传,使用了jQue...原创 2018-06-30 11:24:35 · 7183 阅读 · 4 评论 -
PHP开发小技巧②⑥—加密解密
简述 加密解密是一个很广泛的概念,这里仅是指在程序中对数据字符串进行加密解密的一种操作方式。例如有时我们需要在URL中进行数据传递,又不想让别人看到我们所传递的值,此时我们就会想到对数据进行加密之后进行传递。本篇博文适用于此类问题的解决。源码<?php/** * ======================================= * Created by ZH...原创 2018-06-05 14:46:15 · 587 阅读 · 0 评论 -
PHP安装Redis扩展的操作步骤(Windows操作系统下)
随着大数据的流行,现在网站的数据量越来越大,则对应的处理数据所需的时间就越来越长,用户体验会变差,从而现在很多网站开始使用缓存技术。本篇博文介绍的就是PHP增加Redis扩展的方法步骤,从而可以使用PHP进行Redis的使用操作。1、PHP版本信息 首先我们要使用phpinfo()函数查看PHP的版本信息,这会决定我们使用扩展文件的版本。图1-1原创 2017-08-09 09:59:03 · 508 阅读 · 0 评论 -
如何将phpMyAdmin设置为禁止外网
很多时候在我们新安装PHP集成环境的时候总会带着phpMyAdmin这个数据库管理软件,如果我们不细心随便设置了数据库密码,或是直接使用其数据库默认密码,则别人就可以很轻易的访问到你的数据库,修改你的数据,这是非常不安全的。本篇博文讲述的就是禁止外网进行访问phpMyAdmin这套软件的方法,涉及对配置文件的修改,是非常实用的技巧,需要的朋友可以参考下: 首先,在ph原创 2017-07-31 11:21:08 · 4492 阅读 · 1 评论 -
PHP开发小技巧⑦—获取中文字符的拼音首字母
有时候在我们的项目开发过程中,需要对某一组数据按照中文进行排序,这就需要我们首先获取这些中文字符的首字母,然后进行排序,这是解决此类问题的以后总方法。笔者就曾遇到这样一个问题,当时由于经验比较少,为了解决这个问题查找了很多方法,但是都没有把它完美的解决掉,最后还是在网上找到这个一串代码先获取到首字母,然后在进行拍的序。 代码如下: <?php /**原创 2016-12-06 08:49:03 · 1944 阅读 · 3 评论 -
PHP开发小技巧⑥—判断是否是移动端访问
在开发中这一技巧也是我们经常用到的,现在使用手机比使用PC的更为方便,所以有时为了使系统更加友好,要自动的判断是否是移动端进行访问,如果是则让其进入不同的路径。前些日子我也写过一遍博文:PHP判断访客是否是手机端(移动端浏览器)访问的4种方法,写的比较详细,今天这篇主要是将几种方法合成了一个函数,使用起来更为方便。 下面就是其代码实现过程: <?php原创 2016-12-05 08:51:01 · 1514 阅读 · 0 评论 -
PHP开发小技巧⑤—实现实现递归删除文件夹
在很多时候,我们开发过程中需要我们对磁盘上文件进行直接操作,这是在编程中不可避免的,下面的代码介绍的就是如何进行递归的删除磁盘上文件: <?php /** * ======================================= * Created by Zhihua_W. * Author: Zhihua_W * Da原创 2016-12-03 17:26:14 · 863 阅读 · 0 评论 -
PHP开发小技巧⑧—CURL请求
PHP实现访问远程URL的方式有很多种,例如用file_get_contents方式获取内容;用fopen打开ur方式获取内容;用fsockopen函数打开url方式获取等等。不过最推荐的还是使用CURL进行访问。 <?php /** * ======================================= * Created by Zhi原创 2016-12-12 14:25:20 · 747 阅读 · 0 评论 -
PHP开发小技巧④—两种方法实现获取随机字符串
获取随机字符串的方法很多,只要自己的算法设计的比较好,就可以很方便快速的得到自己想要的结果。获取随机字符串在我们的日常工作编程中也用到的很多,例如:登录时要输入的验证码,发送手机短信验证的验证码,以及在我们生成订单的时候为了防止订单号码重复,我们会在固有的单号之后再加上一串随机字符串,增加其号码不会重复的保障,等等。其实只要是对编程有了解的人都知道,没有什么真正的随机,所有的都能找到其规律,只是难原创 2016-12-01 17:21:15 · 2156 阅读 · 0 评论