![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
社会刘
聪明好学
展开
-
php魔术方法
这些函数会在特殊场合被自动调用,叫做魔术方法在PHP中以两个下划线开头的方法,__construct(), __destruct (), __call(), __callStatic(),__get(), __set(), __isset(), __unset (), __sleep(), __wakeup(), __toString(), __set_state,() __c原创 2017-10-11 11:26:02 · 192 阅读 · 0 评论 -
AES加密
本文实例讲述了php基于mcrypt实现加密解密的方法。分享给大家供大家参考。具体实现方法如下:PHP中自带了相当多的加密的方法,这里我们来看一下mcrypt扩展的使用方式。也是在工作中需要用这个东西加密访问用户的Cookie的值,认真的学习了这个方面的内容。1.简介Mcrypt是PHP的一个扩展,完成了常用加密算法的封装。其实该扩展是对mcrypt标准类库的封装,mcrypt完成了相当多的常用加...转载 2018-05-30 23:10:17 · 204 阅读 · 0 评论 -
登录密码加密盐和API请求授权码sign
登录密码加密盐:md5($data['password'].'_#sing_ty') 红色字符就是组装密码用的,防止人家暴力破解之后直接看到密码原创 2018-06-26 11:53:13 · 1819 阅读 · 0 评论 -
redis的讀寫分離代碼層
最近公司的项目越做越大,数据量越来越大,逐渐地要开始支持分布式的数据库,当然包括要缓存。经过了各种的讨论和认证,决定用redis服务器作为数据缓存的服务器,除了支持丰富的数据类型,string,list,hash,set ,sort set ,还有持久化的数据的功能。这一方面确实比memcache好很多。下面是我的整个测试过程(tp3.2以上)。注意:首先要安装phpredis和配置好redis的...转载 2018-07-05 16:57:25 · 110 阅读 · 0 评论 -
ThinkPHP配置简单的mysql读写分离
ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型。配置DB_DEPLOY_TYPE 为1 可以采用分布式数据库支持。如果采用分布式数据库,定义数据库配置信息的方式如下:12345678910111213<?phpreturn array( 'DB_DEPLOY_TYPE' => 1, // 设置分布式数据库支持 '...转载 2018-07-05 17:04:09 · 495 阅读 · 0 评论 -
static使用
function test(){ static $a=0; $a++; echo $a;}test();test();结果是1,2因为同名函数调用的是同一个静态变量,所以第二次调用test(),就不走static $a原创 2018-07-05 17:05:55 · 106 阅读 · 0 评论 -
为什么静态成员、静态方法中不能用this和super关键字
1. 在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在 2. 在问题之前先讲super的用法:1.super的用法跟this类似,this代表对本类对象的引用,指向本类已经创建的对象;而super代表对父类对象的引用,指向父类对象...转载 2018-07-05 22:59:29 · 251 阅读 · 0 评论 -
正则表达式之零宽断言实例详解【基于PHP】
前言之前我曾写了一篇关于正则表达式的文章(//www.jb51.net/article/111359.htm) 在该文章中详细介绍了正则,但是关于零宽断言介绍却是很少提及到。现在将该内容补充一下。在本文中,主要解决如下问题:① 什么是零宽断言,为什么要使用零宽断言② 怎样使用零宽断言概念零宽断言,大多地方这样定义它,用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是...转载 2018-08-07 10:00:38 · 266 阅读 · 0 评论 -
Apache进行静态文件访问配置
在日常的web开发中,我们可能需访问一些文件,这时可以使用Apache进行静态文件访问配置,通过url在网页中访问到资源。这里我们以一个书封服务器为例。 首先将书封文件存放在服务器的某一目录下,如图然后在Apache的配置文件httpd.conf中添加以下内容用/Image目录做文件在服务器上绝对路径的别名,通过设定的监听端口即可访问静态文件。访问方式如下,前面...转载 2018-09-26 11:13:41 · 10116 阅读 · 0 评论 -
php 工厂模式
在开发大型系统过程中,往往会出现这样一种情况:我有一部分基础数据,是类classA是从数据库A读取出来的,其他很多的功能都是基于这个基础数据来操作的。现在呢,我想把数据从数据库A变成从另外的数据源去获取,这时候,要修改起来就比较麻烦,要修改其他很多类的代码。这种设计显然是不够灵活的,换句话说,就是紧耦合的,系统中某个部分的函数或类严重依赖于系统的其他部分中的函数或类的行为和结构。工厂模式,...转载 2018-10-08 17:13:48 · 107 阅读 · 0 评论 -
php的header函数之设置content-type
//定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/atom+xml'); //CSS header('Content-type: text/css'); //Javascript header('Conte...转载 2018-11-15 11:56:24 · 570 阅读 · 0 评论 -
浅谈php中使用websocket
在PHP中,开发者需要考虑的东西比较多,从socket的连接、建立、绑定、监听等都需要开发者自己去操作完成,对于初学者来说,难度方面也挺大的,所以本文的思路如下:1、socket协议的简介2、介绍client与server之间的连接原理3、PHP中建立socket的过程讲解4、用一个聊天室作为实例详细讲解在PHP中如何使用socket一、socket协议的简介 We...转载 2018-12-26 16:36:31 · 154 阅读 · 0 评论 -
apache 配置跨域
在需要允许跨域访问的服务器的配置文件:httpd.conf添加如下内容LoadModule headers_module modules/mod_headers.so vhost.conf添加如下内容<Directory "/var/www/html"> AllowOverride None Require all granted Header...转载 2019-01-22 11:16:54 · 366 阅读 · 0 评论 -
header头
header('Location:https://www.baidu.com');header('Content-Type: text/html; charset=utf-8');header("content-type:application/octet-stream");header("content-disposition:attachment;filename=qiufeng.jpg");...原创 2018-05-18 16:21:40 · 127 阅读 · 0 评论 -
TP5验证规则
常青园TP5验证规则系统内置的验证规则如下:格式验证类require 验证某个字段必须,例如:'name'=>'require'number 或者 integer 验证某个字段的值是否为数字(采用filter_var验证),例如:'num'=>'number'float 验证某个字段的值是否为浮点数字(采用filter_var验证),例如:'num'=>'float'boo...转载 2018-05-17 22:26:52 · 1225 阅读 · 0 评论 -
基于 Token 的身份验证
最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,也更安全点,非常适合用在 Web 应用或者移动应用上。Token 的中文有人翻译成 “令牌”,我觉得挺好,意思就是,你拿着这个令牌,才能过一些关卡。传统身份验证的方法HTTP 是一种没有状态的协议,也...转载 2018-04-19 17:00:11 · 110 阅读 · 0 评论 -
封装pdo类
//使用pdo连接数据库 封装增删改查class DB{//定义私有属性private $host;private $port;private $username;private $password;private $dbname;private $charset;private $dbtype;private $pdo;//定义构造函数自动加载配置文件function __construct()转载 2017-10-13 15:00:15 · 164 阅读 · 0 评论 -
登录代码逻辑
form表单传来的,用户名,密码先用用户名去数据库找数据,找到了再比对密码,比对成功了,(先要开启session:session_start())再session持久化,user_id,user_name登出,销毁session, session_destory(),该函数销毁session文件和session_idsession_unset($_SESSION['user原创 2017-10-20 16:57:08 · 661 阅读 · 0 评论 -
文件引入问题
服务器的文件引入,可以是相对地址,或绝对地址,跟服务器类型,不同也有区别,window用‘\’,linux用‘/’PHP中有个常量,define('DS',DIRECTORY_SEPARATOR),在对象编程中,代表/浏览器引用静态文件,‘/’直接代表域名下了,而且浏览器引用静态文件,间隔符都是正斜杠,smarty中{include file="../Pub/_head.html"}h原创 2017-11-02 15:53:28 · 222 阅读 · 0 评论 -
php对字符串的操作
substr(string,start,length):字符串截取,start(必需)正数,代表从第几个开始截取,负数代表从最后的负数位开始接,length(可选),截取长度strrpos(string,str):小字符串在大字符串最右边出现的位子stripos(string,str):小字符串在大字符串最左边出现的位子原创 2017-10-30 12:38:13 · 309 阅读 · 0 评论 -
get和post模拟发送和数据处理
$GLOBALS['HTTP_RAW_POST_DATA']基本上和$_POST是一样的,但是如果post过来的数据不是PHP能够识别的,你可以用$GLOBALS['HTTP_RAW_POST_DATA ']来接受,比如text/xml,soap等等$xmlObj = simplexml_load_string($xmlstr,'SimpleXMLElement',LIBXML_NOCDATA原创 2017-11-17 16:01:38 · 211 阅读 · 0 评论 -
phpstorm 2017.1 激活
打开网址 http://idea.lanyus.com/ 选择获取注册码,复制生成的验证码 安装完成后,打开软件,依次选择菜单栏 Help -> Register-> Activation code ->输入复制验证码->确定完成。...转载 2018-03-07 11:10:25 · 119 阅读 · 0 评论 -
memcache
memcache和memcached的区别(切记:版本号要和自己的环境对应)在自己的新程序中打算全面应用memcached技术,这个很容易理解这是memcached是内存缓存,但是怎么还有memcache呢?其实很简单,memcache是php的一个扩展,用于php管理memcached,php-memcache.dll。如果安装了memcached不安装扩展,那么php无法操控memcached...转载 2018-03-07 17:15:37 · 172 阅读 · 0 评论 -
完全PHP5之session篇
1、什么是session? Session的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。目前社会上对session的理解非常混乱:有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话是指从一个浏览器窗口打开到关闭这个期间;也可以看到“用户(客户端)在一次会话期间”...转载 2018-02-24 09:30:22 · 366 阅读 · 0 评论 -
redis实现高并发下的抢购/秒杀功能
之前写过一篇文章,高并发的解决思路(点此进入查看),今天再次抽空整理下实际场景中的具体代码逻辑实现吧:抢购/秒杀是如今很常见的一个应用场景,那么高并发竞争下如何解决超抢(或超卖库存不足为负数的问题)呢?常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数这里我就只谈redis的解决方案吧...我们先来看以下代...转载 2018-03-04 22:17:50 · 434 阅读 · 0 评论 -
php结合redis实现高并发下的抢购、秒杀功能的实例
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数?123...原创 2018-03-05 15:33:43 · 525 阅读 · 0 评论 -
php 与正则的使用
正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可! 现在开始来学习正则表达式的基本语法:1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。(1)“+”元字符规定其前...转载 2018-04-08 17:53:52 · 3435 阅读 · 0 评论 -
正则实例
正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。1.正则表达式基本语法两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair.转载 2018-04-09 13:18:05 · 265 阅读 · 0 评论 -
PHPMailer在linux服务器下的错误解决
需求更换服务器之后,我发现我的发送邮件功能失效了!原来的服务器是可以的,一定是哪里出问题了,决定来排查一下。我是用的PHPMailer,SMTP方式发送邮件的。排查过程这种方式首先PHP要开启sockets拓展,查了一下phpinfo页面,是开启的:看了一下openssl也是开启(因为拿了qq邮箱来测),所以没问题:那就再看一下allow_url_fopen,开启的,没问题:是不是禁用了函数?没有...转载 2018-04-02 12:11:42 · 1456 阅读 · 0 评论 -
PHP生成excel,方法一:header生成
public function export_order() { //搜索条件$where = 'where 1=1 ';$consignee = I('consignee');if($consignee){$where .= " AND consignee like '%$consignee%' ";}$order_sn = I('order_sn');if($o...转载 2019-01-28 10:21:48 · 656 阅读 · 0 评论