PHP
文章平均质量分 76
php
Able张
高大上
展开
-
PHP八大设计模式
设计模式单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。单例模式$_instance必须声明为静态的私有变量 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义 getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用 ::操作符只能访问静态变量和静态函数 new对象都会消耗内存 使用场景:最常用的地方是数据库连接。 使用单例模式生成一个对象后, 该对象可以被其它众多对原创 2021-04-18 21:59:31 · 87 阅读 · 0 评论 -
查看php-fpm的内存占用
1、查看php-fpm的进程个数ps -ef |grep "php-fpm"|grep "pool"|wc -l2、查看每个php-fpm占用的内存大小ps -ylC php-fpm --sort:rss3.查看PHP-FPM在你的机器上的平均内存占用ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'4.查看单个php-fpm原创 2021-03-11 10:00:01 · 355 阅读 · 0 评论 -
深度解剖session运行原理
什么是sessionsession的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。说白了session就是一种可以维持服务器端的数据存储技术。session主要有以下的这些特点:1. session保存的位置是在服务器端2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能3. 单纯的使用ses...原创 2021-03-09 09:41:41 · 466 阅读 · 0 评论 -
安装PHP7.4找不到包 No package ‘oniguruma‘ found错误
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gztar -xvf oniguruma-6.9.4.tar.gzcd oniguruma-6.9.4/./autogen.sh./configure --prefix=/usr --libdir=/lib64 //64位的系统一定要标识--libdir=/lib64 否则还是不行make && m...转载 2020-12-25 16:06:17 · 1780 阅读 · 1 评论 -
php-fpm 高并发 参数调整
工作中经常会遇到会给客户配置服务器,其中有的客户还会有并发量要求,其中也会必须要用负载均衡承载压力的。增加服务器数量肯定能有效的提升服务器承载能力,但只有根据目前已有配置设置好单台服务器才能更好的发挥出服务器的性能。调整好一台服务器后剩下的就更简单了 拿着快照复制n多台。 今天就说一下php服务器的配置,之前说过opcache 今天说一下lnmp下基本配置(个人经验总结,如有不妥之处望大神提示一下)。 服务器中找到php-fpm.conf配置(有的会在引入的www.con...原创 2020-12-08 16:57:53 · 1789 阅读 · 0 评论 -
linux下安装php的lua扩展
wgethttps://pecl.php.net/get/lua-2.0.7.tgz解压后 tar -zxvf lua-1.1.0.tgz 打开目录后phpize再执行 ./configure (可以指定路径和使用的php配置,例如:./configure --with-php-config=/usr/local/php/bin/php-config然后makesudo make installInstalling shared extensions: /op...原创 2020-10-30 09:43:13 · 147 阅读 · 0 评论 -
php 手写MVC
1什么是MVCMVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。PHP中MVC模式也称Web MVC,从上世纪70年代进化而来。MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。MVC各部分的职能:模型Model– 管理大部分的业务逻辑和所有..原创 2020-08-30 09:37:19 · 219 阅读 · 0 评论 -
php通过谷歌身份验证实现动态口令
Google Authenticator,是谷歌推出的一款动态口令工具,解决大家的google账户遭到恶意攻击的问题;许多安全性比较高的网站都会采用这种工具来验证登录或者交易;这个动态口令就是Google身份验证器每隔30s会动态生成一个6位数的数字。它的作用是:对你的账号进行“二步验证”保护,或者说做一个双重身份验证,来达到提升安全级别的目的。通过 一致算法保持手机端和服务端相同,并每30秒改变认证码。一致算法:totp是基于时间的,htop是基于次数的。秘钥生成原理(基于时间)1、时原创 2020-06-23 17:24:36 · 1704 阅读 · 0 评论 -
php微信授权登录
简介:本文讲述php实现第三方登录获取用户信息的方法,适用于app/公众号网页。分享的内容仅供参考。要使用微信授权登录功能需要先在微信开发平台创建应用。然后会获取微信提供给你的appId和AppSecret,然后就可以进行开发了。当然现有很多大佬封装的微信类库非常齐全,而且还很好用,可以去试试,下面讲解一下基本实现方法。流程用户同意授权后获取code,code有效期10分钟 使用...原创 2020-04-27 09:46:34 · 344 阅读 · 0 评论 -
PHP常用配置
Php配置文件:php.ini(使用‘;’表示注释)Php的配置项可以在配置文件中配置,也可以在脚本中使用ini_set()函数临时配置。语言相关配置:1. engine:设置PHP引擎是否可用,默认值为On,若设置为Off则无法使用PHP。配置示例:engine = On2. short_open_tag:是否允许PHP脚本使用短开放标记,将“<?php ?>...原创 2020-04-07 21:38:24 · 1192 阅读 · 0 评论 -
有些需要禁用的PHP危险函数(disable_functions)
phpinfo()功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。危险等级:中passthru()功能描述:允许执行一个外部程序并回显输出,类似于 exec()。危险等级:高exec()功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。危险等级:高system()功能描述:允许执行一个外部程序并回显输出,类似...原创 2020-04-07 21:21:43 · 311 阅读 · 0 评论 -
php.ini中的cgi.fix_pathinfo选项
PHP里经常要获取当前请求的URL路径信息。一般可以通过环境变量$_SERVER[‘PATH_INFO’]获取,而配置文件中的cgi.fix_pathinifo选项则与这个值的获取相关。而$_SERVER[‘PATH_INFO’]中的key PATH_INFO是一个CGI 1.1的标准,经常用来做为传递参数给后端的CGI服务器。被很多系统用来优化url路径格式,比如对于很多框架,下面这个网址:...原创 2020-04-06 15:32:23 · 4039 阅读 · 0 评论 -
php7 如何openssl_encrypt加密解密
https://blog.csdn.net/zhemejinnameyuanxc/article/details/83383434转载 2020-03-31 17:30:47 · 1290 阅读 · 0 评论 -
php 接入google 验证用户登录
使用 composer require google/apiclient 引入google扩展require_once 'vendor/autoload.php';// Get $id_token via HTTPS POST.$client = new Google_Client(['client_id' => $CLIENT_ID]); // Specify the ...原创 2020-03-31 16:33:35 · 2639 阅读 · 1 评论 -
php的amqp扩展 安装(windows) rabbitmq学习篇
因为RabbitMQ是由erlang语言实现的,所以先要安装erlang环境erlang 下载安装 http://www.erlang.org/download.htmlrabbitmq 下载安装 https://www.rabbitmq.com/install-windows.htmlphp的amqp扩展下载地址:http://pecl.php.net/package/amqp转载 2017-12-25 14:35:37 · 732 阅读 · 0 评论 -
php MVC框架实例教程
1什么是MVCMVC模式(Model-View-Controller)是软件工程中的一种软件架构模式。MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。PHP中MVC模式也称Web MVC,从上世纪70年代进化而来。MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。...原创 2020-01-03 20:51:05 · 1099 阅读 · 0 评论 -
[php]mail函数发送邮件
<?php $from = "[email protected]"; $to = "[email protected], [email protected]"; $subject = "邮件主题"; $subject = "=?UTF-8?B?".base64_encode($subject)."?="; $attach_filename = date("Y-m-d") . ".html"; $emailB转载 2015-10-23 16:02:32 · 737 阅读 · 0 评论 -
PHP 加密的几种方式
在使用PHP开发Web应用的中,很多的应用都会要求用户注册,而注册的时候就需要我们对用户的信息进行处理了,最常见的莫过于就是邮箱和密码了,本文意在讨论对密码的处理:也就是对密码的加密处理。MD5相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的:?1$pas转载 2015-12-14 14:28:22 · 3025 阅读 · 0 评论 -
PHP 第三方登陆库:socialLogin
SocialLogin 是一个简单易用的跨框架第三方登陆库,专注和致力于解决第三方登陆的问题,无需再看官方手册,一个一个服务商去接入登陆服务,现在只需要使用 SocialLogin库,把接入的服务商appkey 和 appsecret填好,立即就可以使用,让你无需关心细节实现,专注实现业务逻辑。如何安装 | Installationcomposer require barber转载 2015-12-14 14:01:58 · 1834 阅读 · 0 评论 -
PHP语言开发Paypal支付demo的具体实现
一、开发前准备https://developer.paypal.com/ 到paypal的开发者官网注册开发者账号。用账号登录之后、点击导航上面的 dashboard、进入dashboard面版。如下截图、后续的操作都是在这个面板中操作。上面截图中菜单 Sandbox下面的Accounts里面能看到你的 sandbox测试的买家账号和卖家账号。2个测试账号里面都有profile选项里面有转载 2015-12-13 21:31:13 · 594 阅读 · 0 评论 -
PHP微信授权登录信息
文件1:index.php//换成自己的接口信息$appid = 'XXXXX';header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri=127.0.0.1/oauth.php&response_type=code&scope=sns转载 2015-12-13 21:25:15 · 1173 阅读 · 0 评论 -
PHP开发提高效率技巧
0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是转载 2015-10-31 09:56:17 · 640 阅读 · 0 评论 -
[php]通过http post发送json数据
function http_post_data($url, $data_string) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CUR转载 2015-10-23 15:58:36 · 864 阅读 · 0 评论 -
php里简单的对称加密算法
$content = "大家好,我是中国人,你是谁"; /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY * @return String */ function encode($string = '', $skey = 'w...转载 2019-01-15 15:48:31 · 1017 阅读 · 0 评论 -
TP 数据库还原
//数据库还原 public function restore() { $session = $_SESSION['userName']; if(empty($session)) $this->ajaxReturn('','未登录!',-1); $filename = $this->_post('checked');原创 2014-02-24 10:05:00 · 934 阅读 · 0 评论 -
PHP7 新鲜分享,Xampps 2.1.0 正式发布
标准版本组件如下: + Apache 2.4.17 + MySQL 5.7.9 User: root, Pass: root + PHP 7.0.0 (thread safe) + phpMyAdmin 4.5.2 + OpenSSL 1.0.2d + Perl 5.22.0.1 (PortableZIP edition) + FileZilla转载 2015-12-07 11:03:42 · 508 阅读 · 0 评论 -
如何解决PHP里大量数据循环时内存耗尽的问题
最近在开发一个PHP程序时遇到了下面的错误:PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted错误信息显示允许的最大内存已经耗尽。遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在开发的这个程序是要用一个 foreach 循环语句在一个有4万条记录的表里全表搜索具有特定特征的数据,也转载 2016-06-14 14:22:27 · 992 阅读 · 0 评论 -
上传限制类型
function file_type($filename) { $file = fopen($filename, "rb"); $bin = fread($file, 2); //只读2字节 fclose($file); print_r($bin); $strInfo = @unpack("C2chars", $bin);转载 2014-09-11 11:43:52 · 624 阅读 · 0 评论 -
php rabbitmq操作类及生产者和消费者实例代码
注意事项:1、accept.php消费者代码需要在命令行执行2、'username'=>'asdf','password'=>'123456' 改成自己的帐号和密码RabbitMQCommand.php操作类代码[php] view plain copy/* * amqp协议操作类,可以访问r转载 2017-12-25 14:39:28 · 1112 阅读 · 0 评论 -
PHP设计模式系列 - 策略模式
策略模式:策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。 使用场景:例如有一个CD类,我们类存储了CD的信息。原先的时候,我们在CD类中直接调用getCD方法给出XML的结果随着业务扩展,需求方提出需要JSON数据格式输出这个时候我们引进了策略模式,可以让使用方根据需求自由选择是输出XML还是JSON代码实转载 2016-09-01 15:13:01 · 273 阅读 · 0 评论 -
PHP设计模式系列 - 工厂模式
工厂模式提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤。工厂模式 实际上就是建立一个统一的类实例化的函数接口。统一调用,统一控制。工厂模式是php项目开发中,最常用的设计模式,一般会配合单例模式一起使用,来加载php类库中的类。应用场景我们拥有一个Json类,String类,Xml类。如果我们不使用工厂方式实例化这些类转载 2016-09-01 15:12:18 · 240 阅读 · 0 评论 -
PHP设计模式系列 - 装饰器
什么是装饰器装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设应用场景设计一个UserInfo类,里面有UserInfo数组,用于存储用户名信息通过addUser来添加用户名getUserList方法将打印出用户名信息现在需要将添加的用户信息变成大写的,我们需要不改变原先的类,并且不改变原先的数据结构我们设计了一个User转载 2016-09-01 15:10:24 · 313 阅读 · 0 评论 -
微信公众平台开发 无高级接口账号获取用户基本信息
本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称、头像、性别、国家、省份、城市、语言。本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录。 在本文中,特别要注意的是有两个不同的Access Token,他们产生的方式不一样,一种是使用AppID和AppSecret获取的access_token,一种是OAut转载 2016-08-05 10:28:25 · 2652 阅读 · 0 评论 -
PHP 5.2、5.3、5.4、5.5、5.6 对比以及功能详解
PHP 5.2、5.3、5.4、5.5、5.6 对比以及功能详解截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注].因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣。本文将会介绍自 PHP5.2 起,直至 PH转载 2016-08-05 10:26:56 · 3522 阅读 · 0 评论 -
为PHP设置服务器(Apache/Nginx)环境变量
为PHP设置服务器(Apache/Nginx)环境变量设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码设置Apache环境变量指令设置当前环境变量为DEVSetEnv RUNTIME_ENVIROMENT DEV数据库帐号密码SetEnv MYSQL_USERNAME rootSetEnv MYSQL_PASSWORD ro转载 2016-08-05 10:23:50 · 426 阅读 · 0 评论 -
PHP 下载txt文件 功能
$filename = $file; //文件路径 $mime = 'application/force-download'; header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pr转载 2015-08-04 15:28:42 · 1488 阅读 · 0 评论 -
ecshop 在高版本PHP下报错的解决方法
1 .ecshop提示Strict Standards: Non-static method cls_image查看cls_image中的全部文章::gd_version() should not be called statically inE:\wwwroot\weirenchou\includes\lib_base.php on line 346转载 2015-08-31 10:45:47 · 4716 阅读 · 0 评论 -
文章内容分页
public function airPage($content,$pager){ $c_page=""; if(isset($pager)) $c_page=$pager; $limitlen=3000; //分页显示字符数 $conlen=strlen($content原创 2014-06-18 11:42:39 · 506 阅读 · 0 评论 -
php添加pcntl扩展(Linux)
php添加pcntl扩展(Linux)发表于1年前(2013-09-02 15:07) 阅读(936) | 评论(0)1人收藏此文章,我要收藏赞01月10日 #长沙# OSC 源创会第32期开始报名php添加 pcntl 扩展 pcntl扩展可以支持php的多线程操作(仅限linux)原本需要重新编译PHP的后面configr转载 2015-01-08 11:57:06 · 3088 阅读 · 0 评论 -
PHP 单例模式
/* config.class.php */class conf{ protected static $inc = null; protected $data = array(); public function __construct(){ include('./config.inc.php'); $this->原创 2014-03-07 10:16:40 · 728 阅读 · 0 评论