PHP
躬匠
这个作者很懒,什么都没留下…
展开
-
An another FPM instance seems to already listen on /home/vbird/develop/var/php-cgi.sock
背景:今天在更新配置重启php-fpm服务的时候遇到了这样的一个问题:An another FPM instance seems to already listen on /home/vbird/develop/var/php-cgi.sock通过ps -ef 查看进程信息发现没有多余的进程占用,谷歌、百度未找到解决方案。解决:删除 /home/vbird/develop/...原创 2018-08-24 17:13:28 · 9237 阅读 · 0 评论 -
深入了解Protocol Buffer 序列化原理大揭秘
转载于:https://blog.csdn.net/carson_ho/article/details/70568606前言习惯用 Json、XML 数据存储格式的你们,相信大多都没听过Protocol BufferProtocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json、XML 真的强!太!多!由于 Google出品,我相信Pr...转载 2018-06-23 14:22:55 · 795 阅读 · 0 评论 -
PHP错误级别以及FPM错误日志设置
日志是程序在某个时间点的快照,日志可以分为访问日志、业务日志、调试日志、错误日志等等。日志可以用来程序性能分析、业务分析、数据挖掘、机器学习。。。。。。日志很重要!日志很重要!日志很重要!重要的事情要说三遍!本文不会进行日志的详细展开,只对错误日志部分进行共同学习,其他日志类型后期会逐步完善。错误日志无论在开发环境还是生产环境中都是非常重要的。开发环境下我们需要借助错误日志进行功能调试...原创 2018-06-09 09:57:15 · 7919 阅读 · 1 评论 -
PHP学习系列 -- CLI、CGI、FastCGI、php-fpm学习
在上一篇文章中我们了解到,Web Server与PHP之间通过sapi来实现解耦,那这个过程到底是什么呢?cli、cgi、fastcgi、php-fpm又都是什么呢?别急,在这篇文章中,我们会对其有一个清晰的了解。首先,cli、cgi、fastcgi都是sapi的一种实现形式,是不是有点模糊?没问题,下面先对其概念有一个简单的了解。CLI模式CLI : Command Line Interface...原创 2018-03-11 19:05:52 · 1614 阅读 · 0 评论 -
PHP学习系列 -- 源码目录结构学习
通过上一篇文章的学习,我们已经对PHP的知识有了一个大概的了解,比如PHP是开源、免费、适合Web开发的服务端脚本语言,适合进行Web网站的开发,PHP是解释型语言,由Zend 引擎进行PHP语言的解析。本篇文章我们就接着上一篇文章的内容接着向下学习,通过查看PHP语言的源码结构了解Zend,isapi、PHP扩展的相关知识。PHP源码下载地址:下载 选择一个版本下载即可。PHP源码结构如下所示...原创 2018-03-10 17:22:30 · 6405 阅读 · 0 评论 -
PHP学习系列 -- 基础知识学习
首先说明一下本人为何要写这样一个学习系列:本人接触PHP开发已一年有余,期间多为自学(大学未开设PHP课程也未参加什么培训班)。在整个的学习过程中知识体系很零碎,不成章程。虽然期间也看了一些书籍,但在目前的工作中,仍感觉对于PHP的知识了解不够深入,为了形成完整的知识体系,特决定从今天开始进行一个全新的PHP学习,为期二十天,期间会将遇到、所感所悟一一记录下来。首先声明一点:PHP是世界上最好的语...原创 2018-03-10 14:35:10 · 312 阅读 · 0 评论 -
PHP学习系列 -- 解释型语言与编译型语言的区别
从大学开始,大概接触到了C/C++、Java、ASP、C#、PHP、Python、Javascript、HTML等语言,在随着对语言学习的深入,发现这些语言也是有很大差别的。简单来说语言有高级、低级之分,而高级语言又大致分为解释型和编译型两种。今天我们就来学习一下高级语言下编译、解释型语言的区别与联系,看他们是如何平分天下的。OK,先来了解一下两者的概念。编译型语言使用专门的编译器(类...原创 2018-03-10 22:04:28 · 2672 阅读 · 3 评论 -
PHP 防sql注入
产生原因一方面自己没这方面的意识,有些数据没有经过严格的验证,然后直接拼接 SQL 去查询。导致漏洞产生,比如:$id = $_GET['id'];$sql = "SELECT name FROM users WHERE id = $id";因为没有对 $_GET['id'] 做数据类型验证,注入者可提交任何类型的数据,比如 " and 1= 1 or " 等不安全转载 2018-02-05 14:56:37 · 2992 阅读 · 0 评论 -
Windows/Linux 下查看Apache、Mysql、PHP版本
做程序开发,我们免不了要知道开发环境下的Apache、Mysql、PHP版本,下面就三项在Windows和Linux下如何进行版本查看进行展开。1、Apache(1) Windows查看Apache版本:使用命令:httpd -v (2) Linux查看Apache版本:使用命令:apachectl -v 2、Mysql原创 2017-07-08 14:13:36 · 28604 阅读 · 0 评论 -
PHP 设置多域名允许跨域访问
跨域是Web开发中常见的问题,解决跨域的方法也有很多。本文以CORS(跨域资源访问)方式和大家一起来了解一下针对PHP语言,如何设置允许多域名访问。首先,我们还需要对一些基础知识有了解。(1)服务器变量 针对PHP语言而言,服务器变量存储在$_SERVER数组中,在这个数组中有一个特殊的键值:HTTP_ORIGIN。这个键只在跨域的时候才会存在值,同源时为空字符串。(2)响应...原创 2018-10-24 17:21:02 · 6383 阅读 · 0 评论 -
php页面静态化----伪静态化ob缓存使用
什么是PHP静态化PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。真静态化,也称为磁盘缓存:将数据持久化存储到磁盘中,服务器重启、关机等操作不会造成数据的丢失伪静态化,也称为内存缓存:将数据存储到内存中,相对于磁盘缓存而言,读取速度要更快。为什么要让网页静态化一、加快页面...原创 2016-10-31 23:54:16 · 940 阅读 · 0 评论 -
PHP学习系列 -- 新增$_SERVER环境变量
背景原有项目要进行IPV6的升级,在原有日志基础上新增IPV6字段信息; 服务端预期通过$_SERVER['IPV6']获取IPV6信息; Web Server为Nginx;需求 上游透传IPV6信息并在$_SERVER中新增IPV6字段。解决方案关于上游透传IPV6的详情不是我们关注的终点,忽略介绍。针对$_SERVER中新增IPV6字段,有修改Nginx配置以及ph...原创 2018-11-20 18:08:26 · 779 阅读 · 0 评论 -
【PHP 编程能力提升系列】 日常工作常见问题总结
1、5.3.0 + 以上的版本才支持命名空间;5.3.0 + 版本去除了safe_mode的选项,默认是关闭状态2、类是其基类(包括抽象类)和接口的实例,也就是instanceof 为true;3、stdClass是所有类的基类4、echo print 都可以用来输出字符串;printf可以按照一定格式输出数据;sprintf可以按照一定格式返回字符串(%s %d);print_r可以...原创 2020-05-17 15:10:16 · 4548 阅读 · 0 评论 -
秒杀系统架构优化思路
转载于:https://www.cnblogs.com/xuwc/p/9139164.html一、秒杀业务为什么难做1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可...转载 2019-03-03 10:35:07 · 1783 阅读 · 0 评论 -
如何设计出高可用、高性能的接口
转载于:https://blog.csdn.net/gitchat/article/details/78705978发起这个 Chat 只是一时兴起,想了一些点就写出来了,但自己一读,感觉一点干货都没有,真是汗颜。但还是也希望此拙文能带来一些你的思考,欢迎交流。接口设计需要考虑哪些方面 接口的命名。 请求参数。 支持的协议。 TPS、并发数、响应时长。...转载 2019-03-02 14:24:46 · 3321 阅读 · 0 评论 -
PHP学习系列 -- 常见的系统预定义常量
一、背景最近在看公司内部一PHP框架源码时发现了一个PHP_SAPI常量,看名字应该是sapi相关的常量,具体是什么不太确定,加上PHP还有一些其他的系统预定义常量,自己也老是记不住,特写篇博文记录一下。二、常见系统预定义常量__FILE__ 当前PHP文件的绝对路径 __LINE__ 在当前PHP文件中所处的行号 __FUNCTION__ 当前函数名,只对函数内调用起作用 __...原创 2018-11-30 08:36:06 · 586 阅读 · 2 评论 -
PHP学习系列 -- include(require)注意事项
一、背景好的框架、设计会遵循高内聚低耦合的设计原则,解耦模块、组件、类之间的依赖关系,做到代码的可复用。PHP里的代码复用有多种形式,今天我们先以常见的include/require文件包含为例一起学习一下文件包含复用的相关知识,希望对大家有所帮助。二、学习1. 基础知识学习include/require都是用于文件的包含操作,与之对应的还有include_once/requi...原创 2018-11-23 14:11:21 · 794 阅读 · 0 评论 -
跨域请求jsonp详解
jsonp详解json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是“用来跨域的”,一直不知道具体是个什么东西。今天总算搞明白了。下面一步步来搞清楚jsonp是个什么玩意。同源策略首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性。看起来不知道什么意思,实践一下就知道了转载 2017-06-10 19:25:21 · 359 阅读 · 0 评论 -
$.ajax()方法各参数详细了解
一直在用ajax,可从未认真查看过该方法里面的每一个参数具体用途,碰巧看到$.ajax()方法详解这篇文章讲解的比较详细,特转载!1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支转载 2017-06-10 16:26:04 · 413 阅读 · 0 评论 -
php 中return、exit()、die()用法比较
php中终止程序的运行有三种方式:主脚本程序中使用return、脚本中使用exit()、die(),三者所在的脚本文件他们之后的代码都不会执行了。php开发模式下想直接看到变量的值使用exit()、die()。这是对三者使用总的概括,下面具体来学习三者的使用以及相互之间的区别于联系。1、return首先,return是语言结构而不是函数。如果一个函数中包含return 语句,当调用此函原创 2017-05-20 09:43:17 · 18510 阅读 · 0 评论 -
PHP的ISAPI和FastCGI比较
在Windows IIS 6.0下配置PHP,通常有CGI、ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异。1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。转载 2016-11-19 21:53:16 · 939 阅读 · 0 评论 -
PHP 不要相信用户的任何输入
做Web开发,有一个很重要却又很容易被一些开发人员忽略的东西:网站安全。关于网站安全的解释,百度百科上是这样解释的:网站安全是指出于防止网站受到外来电脑入侵者对其网站进行挂马,篡改网页等行为而做出一系列的防御工作。由于一个网站设计者更多地考虑满足用户应用,如何实现业务。很少考虑网站应用开发过程中所存在的漏洞,这些漏洞在不关注安全代码设计的人员眼里几乎不可见,大多数网站设计开发者、网站维护人员对...原创 2016-11-19 17:47:45 · 1649 阅读 · 2 评论 -
Zend Studio 快捷方法注释
http://blog.csdn.net/e421083458/article/details/48712691原创 2016-09-04 22:35:13 · 4156 阅读 · 0 评论 -
微信开发之----封装微信红包类
在进行微信红包发放时,我们需要使用到微信红包功能。在这里,封装微信红包接口,原创 2016-09-04 22:11:28 · 1564 阅读 · 0 评论 -
微信企业转账之入口类分装
OK,经过前面的操作,我们已经把底层方法封装完毕,接下来就是实现转账工具类的调用。在这里,封装了一个入口文件类 WxTransfers该类的定义如下所示:<?phpinclude_once 'WxTransfers.Api.php';class WxTransfers{ public function index(){ $path = WxTransfersConfig原创 2016-08-24 13:35:46 · 730 阅读 · 1 评论 -
微信企业转账之转账工具类封装
前面一片文章通过配置类的创建,我们已经打好了基础工作,接下来,我们就来封装转账工具类:WxTransfersAPI该类的定义如下所示:class WxTransfersAPI{ // 企业转账请求地址 const TRANSFERS_URL = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';原创 2016-08-24 13:29:49 · 1425 阅读 · 1 评论 -
微信转账系列之配置类封装
通过前一篇文章的学习,我们知道,要想实现微信转账,我们需要传递一些参数,如appid、商户号、key等内容,为了修改方便,在这里,我新建了一个配置类WxTransferConfig,在这里定义各种参数,全局公用。WxTransferConfig类定义如下。<?php/*** 配置账号信息* 配置要和证书在一起!!!!*/class WxTransfersConfig{原创 2016-08-24 13:21:25 · 689 阅读 · 0 评论 -
微信企业转账实例之理论介绍
最近在搞公司的电商项目时,客户要求加上一个微信转账的功能。由于项目中并没有对应的插件,没法,只有现学现用。我先去微信商户平台官网上读取各种文档,最终做了一个demo。最后集成到了公司的项目中,大功告成。下面,我就一步一步的带大家来了解这个微信转账功能并公布自己的demo源码。企业转账:提供企业向用户付款的功能,支持企业通过API接口付款至目标用户(企业可根据APPID+OpenID锁定目标用户原创 2016-08-24 13:11:16 · 5800 阅读 · 2 评论 -
mysql的定时任务学习
最近弄公司的一个电商项目时遇到客户的一个需求:每天定时返还会员红包。这个电商项目,用的是ecshop的框架。由于ecshop是项目单一入口的mvc框架,我就想着在项目的入口文件index.php处触发定时任务。大致思路是这样的:每天定时去访问入口文件,在入口文件中判断访问的时间,如果满足条件,则发放红包,并把红包发放状态修改为已发放。再建立一个文件,用于每天红包发放状态的重置操作。思路有了原创 2016-09-02 10:11:01 · 533 阅读 · 0 评论 -
js版本问题
首先引入今天的问题:本人在做一个CheckBox的全选和反选的时候,只能在页面加载之后操作一次,第二次再点的时候就没有反应了。下面贴出具体的代码。js代码: $('#selectAll').click(function(){ $("#revSelectAll").attr('checked',false);//关闭反选 $('#table1').find('原创 2016-06-16 12:58:08 · 645 阅读 · 0 评论 -
PHP错误日志记录:display_errors与log_errors的区别
我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题。开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们。生产环境下,为了良好的用户体验以及网站安全,我们会尽可能少的出现错误提示。那具体到php语言中,我们又要怎么做呢?首先了解一下php中的两个配置项:(1)display_error原创 2016-11-20 19:57:15 · 5796 阅读 · 0 评论 -
PHP 十六大魔术方法学习
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时调用原创 2016-11-22 14:23:22 · 580 阅读 · 0 评论 -
PHP 静态变量学习
转载于:http://www.cnblogs.com/52php/p/5658171.html什么是static静态变量?(以下为在C语言中的理解)静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该 区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内转载 2017-05-30 10:40:40 · 366 阅读 · 0 评论 -
mysql_fetch_assoc、mysql_fetch_object、mysql_fetch_row、mysql_fetch_array用法学习
mysql_fetch_assoc、mysql_fetch_object、mysql_fetch_row、mysql_fetch_array四个函数都是用来进行获取结果集中的一条记录的。上面的话是一个概述,具体如下:1、mysql_fetch_assoc从结果集中取得一行作为关联数组。返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。一定要注意:字段名原创 2017-05-29 23:13:26 · 941 阅读 · 0 评论 -
PHP Mysql两组时间戳、日期转换函数
写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式。 一、在MySQL中完成 这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能原创 2017-05-24 20:52:15 · 1121 阅读 · 0 评论 -
php 快速定位代码错误、异常之register_shutdown_function()函数学习
对于每一个编程人员来说,如果自己的程序报错,那么简单的浏览一下错误信息就能大致明白错误原因及错误位置,即使一时间无法确定,但是经过简单的分析也能很快得出结论,这对于个人来说是非常方便的,但是,在某些时候我们要修改的并不是自己的代码,这个时候如果要是从都到尾的去理解一遍他人的代码,这样的话就是有点浪费时间了,所以如何快速定位就是非常重要了。 首先来说,对于PHP编程有一个非常好用的函数可以原创 2017-04-16 11:02:49 · 2509 阅读 · 0 评论 -
PHP magic_quotes_gpc的使用方法详解
我们今天要向大家介绍的是PHP magic_quotes_gpc的具体使用方法。大家都知道在PHP中一个特殊的函数魔术函数,它在引用的过程中只有在传递$_GET,$_POST,$_COOKIE时才会发生作用。1.条件:PHP magic_quotes_gpc=off写入数据库的字符串未经过任何过滤处理。从数据库读出的字符串也未作任何处理。 数据:$data=”snow”''转载 2017-04-15 10:31:15 · 2217 阅读 · 0 评论 -
PHP各种环境下的代码调试
任何的程序开发都不能保证没有问题,无论是在开发环境还是在生产环境中。那如何在各种环境中调试我们的程序呢?总结如下1、任意环境下调试ini_set('display_errors',1); //错误信息ini_set('display_startup_errors',1); //php启动错误信息error_reporting(-1);原创 2017-04-15 10:11:14 · 597 阅读 · 0 评论 -
PHP 中的$_SERVER变量学习
一直认为自己的脑子很好使,可扛不住事情多。所谓的好记性不如烂笔头说的是一点没错,今天总结一下$_SERVER变量的使用,加深一下印象也便于以后自己查阅。一个完整的url组成如下:"http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; $_SERVER变量:SERV原创 2017-04-15 09:32:23 · 518 阅读 · 0 评论 -
php 配置文件php.ini文件的动态设置与获取
php中的ini_set函数是php自带的用来修改设置php.ini配置文件的函数,用这个函数很方便,不用去手动修改php.ini文件,有时候我们也没有权限去修改php.ini文件,这时就用这个函数。语法:ini_set("选项","值");该函数用时最好放到php脚本最头部比如:ini_set("max_execution_time", "180");//设置php的脚本超时时间原创 2017-04-15 09:19:48 · 7420 阅读 · 0 评论