PHP
魏小强
本人PHP搬砖工一枚,技术渣渣、性格逗比、闷骚
展开
-
PHP浮点数运算精度
PHP有一个BC Math高精确度的数学扩展,它可以为任意精度数学计算提供了二进制计算器(Binary Calculator),它支持任意大小和精度的数字,以字符串形式描述。在需要处理数字计算时,不要在简单地使用四则运算,而要用BC Math相关的函数来处理。1、安装BC Math扩展本类函数仅在 PHP 编译时配置了 –enable-bcmath 时可用。PHP 的 Windows 版本已内建对...转载 2018-06-14 16:53:30 · 2940 阅读 · 0 评论 -
PHP开发接口使用RSA进行加密解密方法
网络安全问题很重要,尤其是保证数据安全,遇到很多在写接口的程序员直接都是明文数据传输,在我看来这是很不专业的。本人提倡经过接口的数据都要进行加密解密之后进行使用。 这篇文章主要介绍使用PHP开发接口,数据实现RSA加密解密后使用,实例分析了PHP自定义RSA类实现加密与解密的技巧,非常具有实用价值,需要的朋友可以参考下。简单介绍RSA: RSA加密算法是最常用...转载 2018-07-03 09:48:54 · 375 阅读 · 0 评论 -
基于原生PHP的路由分配实现
对于由原生PHP写成的独立PHP框架,利用单一入口文件实现路径的访问。这时我们会遇到的首要问题是:文件的相互包含,其次就是路由分配。当我们不利用成熟的PHP框架进行web开发时,我们就会发现上述两个问题会是很困扰我们的问题所在。 问题解决方案: 1、文件包含 php的文件包含有两种方式:require和include,两个方法的区别在于利用require包含文件当出错时,会报出严重错误,同时PHP...转载 2018-07-03 09:56:09 · 5036 阅读 · 0 评论 -
利用PHPExcel实现Excel文件的写入和读取
作为一个原本的JAVA党,用过PHP才知道,原来对于Excel文件的写入和读取原来可以这么简单! 利用PHP实现对于Excel的读取,主要借助于PHPExcel插件来完成。 PHPExcel下载地址:PHPExcel下载 一、PHPExcel实现写入excel操作步骤 首先需要引入类文件,引入PHPExcel.php文件。 1、新建一个Excel表格(实例化PHPExcel类) 2、创建sheet...转载 2018-07-03 10:01:02 · 5126 阅读 · 0 评论 -
redis在PHP中的基本使用案例
利用phpredis实现php操作redis,需要进行redis.so的下载,添加//利用Redis类进行操作//实例化Redis类$redis = new Redis();//选择指定的redis数据库连接,默认端口号为6379$redis->connect('127.0.0.1', 6379);//普通set/get操作$redis->set(‘library’, ...转载 2018-07-03 10:02:39 · 222 阅读 · 0 评论 -
MySQL数据库操作类(PHP实现,支持连贯操作)
使用过ThinkPHP框架的同学可能会对于其中数据库模型操作特别有好感,ThinkPHP提供了数据库操作的简单的操作,对于连接数据库,数据库的增删改查等数据操作都非常的nice,同时支持连贯操作,对于那些不习惯写sql语句的同学真是大大的便利。(注:sql还是很重要的,不要因为用了框架就把原先的忘了)。 而在笔者使用php操作redis实现后台任务的过程中,也想要借助这种便利,但无奈redis操作...转载 2018-07-03 10:04:34 · 1272 阅读 · 0 评论 -
五种常见的 PHP 设计模式
策略模式策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。策略模式的三个角色:1.抽象策略角色2.具体策略角色3.环境角色(对抽象策略角色的引用)实现步骤:1.定义抽象角色类(定义好各个实现的共同抽象方法)2.定义具体策略类(具体实现父类的共同方...转载 2018-06-28 14:17:29 · 119 阅读 · 0 评论 -
ThinkPHP接入微信公众号支付
微信在生活中的地位越来越重要。人流量大,信息大的地方都是商户营销必争之地,在微信公众号中微信支付使用的场景越来越多。下面PHP程序员雷雪松就详细的讲解下ThinkPHP如何接入微信公众号支付。1、下载官方demo,并放到ThinkPHP/Library/Vendor/下面,建议建一个Wxpay文件夹。以后如果想接入支付宝就再建一个Alipay。这样在多种支付的情况下目录可能会比较清晰。2、在WxP...转载 2018-06-28 15:31:02 · 1172 阅读 · 0 评论 -
PHP __autoload自动加载机制详解
PHP在魔术函数__autoload()方法出现以前,如果你要在一个PHP文件中实例化10个对象,那么首先你必须用include或者require包含10个类文件,或者你把这10个类定义在同一个类文件中再引入,相信这个文件一定会非常大,后期维护也非常困难,这也违反了OO设计的基本思想。__autoload()方法自动加载机制出来以后,就让PHP程序员很方便的解决这一问题。下面就看看PHP __au...转载 2018-06-28 15:33:51 · 479 阅读 · 1 评论 -
mysql(多级分销)无限极数据库设计方法
相信有过开发经验的朋友都曾碰到过这样一个需求。假设你正在为一个新闻网站开发一个评论功能,读者可以评论原文甚至相互回复。 这个需求并不简单,相互回复会导致无限多的分支,无限多的祖先-后代关系。这是一种典型的递归关系数据。 对于这个问题,以下给出几个解决方案,各位客观可斟酌后选择。一、邻接表:依赖父节点 邻接表的方案如下(仅仅说明问题):123456CREATE TABLE Comments( ...转载 2018-06-28 16:04:48 · 27605 阅读 · 2 评论 -
ThinkPHP去重 distinct和group by总结
近期项目中,遇到数据表去重要求,对于ThinkPHP的去重有了更加准确的认识和体会。 两种去重方式:$test_data = M('hot'); //实例化数据表$data = $test_data->Distinct(true)->field('descriprion')->order('description desc')->select(); //利用disti...转载 2018-07-06 08:58:30 · 1741 阅读 · 0 评论 -
PHP备份MYSQL数据库类
<?phpclass DbManage { var $db; // 数据库连接 var $database; // 所用数据库 var $sqldir; // 数据库备份文件夹 // 换行符 private $ds = "\n"; // 存储SQL的变量 public $sqlContent = ""; // 每条sql语句...原创 2018-07-24 17:24:34 · 402 阅读 · 0 评论 -
Redis实战总结-配置、持久化
Redis的配置主要放置在redis.conf,可以通过修改配置文件实现Redis许多特性,比如复制,持久化,集群等。redis.conf部分配置详解# 启动redis,显示加载配置redis.conf# ./redis-server /path/to/redis.conf# 停止redis# redis-cli -h IP -p PORT shutdown# 可以包含一个或...转载 2018-09-05 10:25:28 · 253 阅读 · 0 评论 -
PHP简单实现MVC框架路由功能模式
说到使用PHP进行网站开发,自然离不开各种PHP的开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等等,让我们的开发更为快捷方便。但是很多人只是会使用框架,却从来不去了解框架的内部是如何实现的,这对于我们编程能力的提高是没有一点用处的。那么这一篇博文,我们就先来一个简单点的功能,也就是说说MVC框架的路由功能实现方法。 一般的单入口框架路由都是这样的结构:loc...转载 2018-07-03 09:42:04 · 418 阅读 · 0 评论 -
PHP Composer教程
Composer是PHP用来管理依赖(dependency)关系的工具。Composer通常情况下通过composer.json文件来配置和管理依赖的。Composer允许你申明项目所依赖的代码库,Composer会在你的项目中为你安装他们。下面PHP程序员雷雪松详细的讲解下Composer的安装和常用命令。Linux下安装Composer1、安装Composer123456[root@PHP ~...转载 2018-06-14 16:55:12 · 1787 阅读 · 0 评论 -
PHP缓存类完整实例
本文完整描述了一个简洁实用的PHP缓存类,可用来检查缓存文件是否在设置更新时间之内、清除缓存文件、根据当前动态文件生成缓存文件名、连续创建目录、缓存文件输出静态等功能。对于采用PHP开发CMS系统来说,离不开对缓存的处理,合理利用好缓存可有效的提高程序执行效率。php缓存类文件完整代码如下:<?php/** 缓存类 cache*/class cache {//缓存目录var $c...原创 2018-06-19 17:40:52 · 1761 阅读 · 0 评论 -
redis常见使用场景下PHP实现
基于redis字符串string类型的简单缓存实现<?php//简单字符串缓存$redis = new \Redis();$redis->connect('127.0.0.1',6379);//缓存数据$redis->set('cache_key',json_encode(['data'=>'这是缓存数据']));//获取缓存数据$data = $red...转载 2018-06-19 17:45:20 · 205 阅读 · 0 评论 -
php结合redis实现高并发下的抢购、秒杀功能
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数[php...转载 2018-06-19 17:48:56 · 319 阅读 · 0 评论 -
php必看技术干货
1、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。2、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。3、row[‘id′]的速度是row[‘id...原创 2018-07-02 09:53:04 · 1132 阅读 · 0 评论 -
php的sso单点登录实现方法
1.首页登录页面index.php(是你当前项目首页)<?php header('Content-Type:text/html; charset=utf-8'); $sso_address = 'http://www.mysso.com/sso/login.php'; //你SSO所在的域名,不是当前项目地址 $callback_address = 'http://'.$_SER...原创 2018-07-02 10:01:48 · 295 阅读 · 0 评论 -
Sphinx安装流程及配合PHP使用经验
1.什么是SphinxSphinx是俄罗斯人Andrew Aksyonoff开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。全文检索式指以文档的全部文本信息作为检索对象的一种信息检索技术。检索的对象有可能是文章的标题,也有可能是文章的作者,也有可能是文章的摘要或内容。常用于新闻,论坛评论等的模糊查询。2.Sphinx的特性高速索引(在新款CPU上,近10MB/S);高速搜索(2-4...转载 2018-07-02 10:17:54 · 400 阅读 · 0 评论 -
PHP开发api接口安全验证
php的api接口在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证。验证原理示意图原理从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。时间戳:当前时间随机数:随机生成的...转载 2018-07-02 10:27:02 · 661 阅读 · 0 评论 -
PHP使用第三方即时获取物流动态
前言最近做的项目有个要求,要使用物流单号即时查询物流信息,从网上得知,关于物流的第三方API还是很多的,而我选用的是快递鸟,快递鸟是一个免费的第三方接口,Api整合全球400余家物流快递接口,永久免费不限次,接口与快递公司多通道通信,可用性达到99.9%以上,推送速度定制配置,保证接入方系统的稳定。使用过程登录网站http://www.kdniao.com/首先要注册,注册完之后,在用户管理后台,...转载 2018-07-02 10:29:35 · 1159 阅读 · 0 评论 -
PHP数据传输神器CURL详解
前言我们在使用PHP开发网站的后台的时候,有时候需要在PHP代码中请求某一个网页,比如在微信开发中,我们在代码中请求微信服务器地址,得到开发凭证access_token,这时候使用CURL来处理请求是最合适的。如果你想使用PHP来开发微信,那么CURL是一个必备的知识点。CURL的使用CURL基础在PHP中我们想要使用CURL,必须在PHP的配置文件中开启CURL扩展。curl支持的协议还是有很多...转载 2018-07-02 10:33:42 · 204 阅读 · 0 评论 -
PHP基础教程十四之使用MySqli操作数据库
前言在实际的开发中,PHP都是会和数据库一起使用的,因为在后台需要有太多的数据进行保存,而数据库就是一种很好的保存数据的地方,我们PHP开发用到的数据库是关系型数据库mysql,而PHP和mysql数据库只有连接,我们才能通过php代码对数据库进行操作。MySqliPHP的开发离不开数据库,而在PHP中可以通过MySQLi连接数据库的。但是MySQLi只能连接mysql数据库。同时mysqli是一...转载 2018-07-02 10:34:46 · 376 阅读 · 0 评论 -
PHP验证登录状态和安全性
固定的私钥来做salt其实不好,一旦私钥泄漏之后就很麻烦,而且最痛苦的其实是你不知道你到底有没有泄漏用户的密码字符串作为salt是更好的办法签名字符串:$sign = md5('$user_id+$user+_password[+浏览器UA[+IP地址[...]]]');里面爱加什么你可以自己发挥存储到cookie里面的字符串为$token = $user_id.','.$sign;然后你需要...转载 2018-07-03 09:36:03 · 3857 阅读 · 0 评论 -
PHP源码加密
今天在客户服务器上,安装产品的时候发现,客户的php源码是用ioncube加密的, 而我们使用的是zend guard,安装了zend optimizer后发现有冲突。。下面是网上看到的关于这两种加密工具的对比。 一、概述 PHP代码属于开源WEB代码,不需要编译,属于解释型语言。(即在WebServer中追加相应扩展名的解释程序即可完成对代码的分析处理)。根据PHP...转载 2018-11-02 11:18:01 · 5741 阅读 · 0 评论