php
文章平均质量分 76
期望之中
幽默风趣,谨慎好学,乐于运动
展开
-
redis缓存雪崩,击穿,穿透,到底是什么?
在今天的互联网里,高并发、大数据量、大流量已经成为了代言词,那么我们的系统也承受着巨大的压力,首当其冲的解决方案就是redis。那么redis使用不当就会产生雪崩、穿透、击穿等问题,这也是考验一个程序员技术能力的时刻。当然面试的时候,这也是高频面试题,几乎大厂都会问到。下面跟着贴心老哥一起来看看这些技术吧。缓存雪崩举例双十一期间,所有用户一打开淘宝就是进入首页,首页的压力非常大,为了提高并发,将网站首页数据都缓存到redis里,所有的redis key失效时间都是3小时。双十一当天大量用户剁转载 2021-07-05 15:47:20 · 191 阅读 · 0 评论 -
服务器微信支付接口笔记-(与app端对接)
最近几天在做app的微信支付和支付宝支付,主要负责服务器接口。记录一下服务器这边的工作。参考微信的官方文档链接:(有用的几个)1 - 首先,如果想让app可以使用微信支付,必须先申请一个开放平台的账号微信开放平台地址:微信开放平台地址 (点击打开)同时,在开放平台页面顶部,有一个 资源中心,里面有各种文档(登录,授权等api在这个文档里面,通转载 2017-03-10 11:33:27 · 293 阅读 · 0 评论 -
开发一个程序基本思路
开发一个程序基本思路整体流程: 1、确定需求和构思整个网站系统(初步设想需要实现什么) 2、根据需求和需求文档制作UI图 3、根据UI图制作前端静态页面 4、根据前端静态页面(主要)和需求文档(次要)架构整个 系统(设计网站大的框架和制表) 5、后台程序员根据框架、静态页、数据表、需求文档等实现功能后台程序员制作网站流程: 1、拿到分配的任务以后,先根据任务模块转载 2017-02-28 14:01:47 · 557 阅读 · 0 评论 -
app接口设计之token的php实现
app接口设计之token的php实现1、首先说一句什么是接口:接口简单来说就是服务器端用来返回给其他程序或者客户端数据的桥梁2、接口的作用:根据固定参数返回固定数据,比如客户端传a=1,那么服务器端返回a的姓名,客户端传a=2,服务器端返回a的性别,而不会返回其他数据。例如:app与服务器端的接口、java与php之间不同程序的接口,这些接口一般通过json格式传输数据所以为了保转载 2017-02-28 13:50:50 · 490 阅读 · 0 评论 -
Redis的持久化机制
Redis由于支持非常丰富的内存数据结构类型,如何把这些复杂的内存组织方式持久化到磁盘上是一个难题,所以Redis的持久化方式与传统数据库的方式有比较多的差别,Redis一共支持四种持久化方式,分别是:定时快照方式(snapshot)基于语句追加文件的方式(aof)虚拟内存(vm)Diskstore方式在设计思路上,前两种是基于全部数据都在内存中,即小数据量转载 2017-01-13 09:17:49 · 161 阅读 · 0 评论 -
PHP运行模式
1、运行模式关于PHP目前比较常见的五大运行模式:1)CGI(通用网关接口 / Common Gateway Interface)2)FastCGI(常驻型CGI / Long-Live CGI)3)CLI(命令行运行 / Command Line Interface)4)Web模块模式(Apache等Web服务器运行的模式)5)ISAPI(Inte转载 2017-01-14 09:49:31 · 181 阅读 · 0 评论 -
ucenter 整合同步登录的内部实现原理
1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用uc_api_post('user', 'synlogin',array('uid'=>$ui转载 2017-01-09 15:29:08 · 292 阅读 · 0 评论 -
linux 安装git
1,用git --version命令检查是否已经安装2 在CentOS5的版本,由于yum源中没有git,所以需要预先安装一系列的依赖包。在CentOS6的yum源中已经有git的版本了,可以直接使用yum源进行安装。3,yum -y install git但是yum源中安装的git版本是1.7.1,Github等需要的Git版本最低都不能低于1.7.2 。所以我们一般不用上面的方原创 2016-12-20 07:34:09 · 197 阅读 · 0 评论 -
apache和nginx
简单的说apache httpd和nginx都是web服务器,但两者适应的场景不同,也就是两者专注于解决不同的问题。apache httpd:稳定、对动态请求处理强,但同时高并发时性能较弱,耗费资源多。nginx:高并发处理能力强、擅长处理静态请求、反向代理、均衡负载。 1、nginx相对于apache的优点:轻量级,同样起web服务,比apache占用更少的内存及资源,并发能力转载 2016-12-28 12:01:49 · 425 阅读 · 1 评论 -
从关系型数据库到非关系型数据库
SNS,全称Social Networking Services,即社会性网络服务,专指旨在帮助人们建立社会性网络的互联网应用服务。也指社会现有已成熟普及的信息载体,如短信SMS服务。SNS的另一种常用解释:全称Social Network Site,即“社交网站”或“社交网”。1. 关系型数据库关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1转载 2016-12-27 11:51:50 · 313 阅读 · 0 评论 -
FastCgi 与 PHP-FPM 之间的区别
CGI 的作用CGI 是为了保证 web server 传递过来的数据是标准格式的,方便 CGI 程序的编写者。web server(比如说 nginx)只是内容的分发者。如果请求 /index.html,那么 web server 会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。如果现在请求的是 /index.php,根据配置文件,nginx 知道转载 2016-12-28 08:44:10 · 193 阅读 · 0 评论 -
mysql分表和表分区详解
为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。什么是分表?分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,我们可以称为子表,转载 2016-12-19 11:06:44 · 228 阅读 · 0 评论 -
excel的导入导出
导入[php] view plain copy public function excel_put(){ //先做一个文件上传,保存文件 $path=$_FILES['file']; $filePath = "uploads/".$path["name"]; move_uploaded_file($path["tmp_name转载 2016-12-19 10:32:24 · 171 阅读 · 0 评论 -
单项散列加密
1.加密文件[php] view plain copy //sha1_en.php header("content-type:text/html;charset=utf-8"); $str = "我是张三,能给我个人数据吗"; $salt="123456";//我是唯一不变的salt $sha1=sha1($str.$salt);//或者$sha1=md5(转载 2016-12-19 10:30:50 · 234 阅读 · 0 评论 -
app接口设计之signature签名的php实现
app接口设计之signature签名的php实现1、首先说一句什么是接口:接口简单来说就是服务器端用来返回给其他程序或者客户端数据的桥梁2、接口的作用:根据固定参数返回固定数据,比如客户端传a=1,那么服务器端返回a的姓名,客户端传a=2,服务器端返回a的性别,而不会返回其他数据。例如:app与服务器端的接口、java与php之间不同程序的接口,这些接口一般通过json格式传输数据转载 2017-02-28 14:06:33 · 1926 阅读 · 0 评论 -
php微信支付
下面以PHP语言为例,对微信支付的开发流程进行一下说明。1.获取订单信息2.根据订单信息和支付相关的账号生成sign,并且生成支付参数3.将支付参数信息POST到微信服务器,获取返回信息4.根据返回信息生成相应的支付代码(微信内部)或是支付二维码(非微信内),完成支付。下面分步骤的讲一下:1.微信支付中相关的必须的订单参数有三个,分别是:body(商品名或订单描述),out转载 2017-03-09 18:18:28 · 258 阅读 · 0 评论 -
php中常用redis函数
Redis是一个C/S结构类型的服务,C是指客户端,S是指服务端,客户端与服务端可以通过网络进行通信。对于redis而言,服务端上需要安装redis服务,那客户端呢?其实redis为很多语言提供了API,都可以通过语言来进行客户端和服务端的通信,对于php语言而言,我们可以通过安装redis扩展实现客户端与服务端的通信。对于PHP而言,我们可以通过redis扩展除了通信之外又可以进行哪些操作呢?下...转载 2018-11-07 14:50:06 · 470 阅读 · 0 评论 -
php面试题2018
一 、PHP基础部分 1、PHP语言的一大优势是跨平台,什么是跨平台?PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所以叫跨平台 2、WEB开发中数据提交方式有几种?有什么区别?百度使用哪种方式?Get与post两种方式区别:(1)url可见性:get 方式url参...转载 2018-10-31 17:48:10 · 744 阅读 · 0 评论 -
防止sql注入的小函数 以及一些小验证
function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data;}$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA...转载 2018-09-18 11:36:03 · 908 阅读 · 0 评论 -
服务器上下载图片压缩
//Yaf框架中public function exportPicAction(){ $idStr = addslashes($_GET['diaryid']); //获取有关联图片的贴子Id //$idStr = '2022721,2022669'; if(!$idStr){return false;} $type = addslashes($_GET['ty...原创 2018-09-18 11:03:23 · 429 阅读 · 0 评论 -
伪静态规则写法RewriteRule-htaccess详细语法使用
一、正则表达式教程伪静态规则写法RewriteRule-htaccess详细语法使用教程分享简单说下:伪静态实际上是利用PHP把当前地址解析成另外一种方法进行访问网站!要学伪静态规则的写法,你必须得懂一点正则,不会没关系,照着下面的套就行一、正则表达式教程有一个经典的教程: 正则表达式30分钟入门教程这个教程的确很简单,看完基本上写一些简单的正则就没有问转载 2017-12-28 15:35:21 · 2324 阅读 · 0 评论 -
利用PHPExcel实现Excel文件的写入和读取
利用PHP实现对于Excel的读取,主要借助于PHPExcel插件来完成。 PHPExcel下载地址:PHPExcel下载一、PHPExcel实现写入excel操作步骤 首先需要引入类文件,引入PHPExcel.php文件。 1、新建一个Excel表格(实例化PHPExcel类) 2、创建sheet(内置表) (createSheet()方法、setActiveSheet(转载 2017-12-28 10:10:34 · 1623 阅读 · 0 评论 -
php 加密解密算法-mcrypt
class enstr { public function enstrhex($str,$key) { /* 开启加密算法/ */ $td = mcrypt_module_open('twofish', '', 'ecb', ''); /* 建立IV,并检测key 的长度*/ $iv = mcrypt_create_iv(mcr转载 2017-12-26 11:10:22 · 253 阅读 · 0 评论 -
Elastic Search快速上手(1):简介及安装配置
前言最近开始尝试学习Elastic Search,因此决定做一些简单的整理,以供后续参考,快速上手使用ES。简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于转载 2017-10-11 14:17:59 · 280 阅读 · 0 评论 -
PHP开发网站之微信登录、绑定
PHP开发网站引入第三方登录之微信登录、绑定案例(www.spaceyun.com)写在前面的话: 如果在做此项功能之前有去了解OAuth2.0协议,那么接下来一切都很容易理解,如果没有了解OAuth2.0协议, 也不影响完成此项功能,不过应该是很难领会其原理。准备工作: 微信登录时在微信开放平台(open.weixin.qq.com)上面, 注册登录之后转载 2017-08-30 16:03:37 · 2672 阅读 · 1 评论 -
mysql分库分表实战及php代码操作完整实例
当单表达到几千万时,查询一次要很久,如果有联合查询,有可能会死在那分库分表主要就是解决这个问题,减小数据库的负担,缩短查询时间分库:1)按功能分用户类库、商品类库、订单类库、日志类、统计类库...1)按地区分每个城市或省市一个同样的库,加上后缀或前缀如:db_click_bj、db_click_sh...分表:1、横向分表 解决表记录太大问题1)按某个字转载 2017-08-11 15:23:00 · 463 阅读 · 0 评论 -
app接口设计之token的php实现
app接口设计之token的php实现1、首先说一句什么是接口:接口简单来说就是服务器端用来返回给其他程序或者客户端数据的桥梁2、接口的作用:根据固定参数返回固定数据,比如客户端传a=1,那么服务器端返回a的姓名,客户端传a=2,服务器端返回a的性别,而不会返回其他数据。例如:app与服务器端的接口、java与php之间不同程序的接口,这些接口一般通过json格式传输数据所以为了保转载 2017-03-10 16:09:21 · 315 阅读 · 0 评论 -
PHP开发APP微信支付接口
【准备工作】在准备着手开发之前呢,我建议大家先去查阅一下微信的 APP支付开发者文档 ,对微信支付开发的流程有一个系统的了解。我这里为大家准备了一张交互时序图,以便大家随时查看:APP支付时序图商户系统和微信支付系统主要交互说明:用户在商户APP中选择商品,提交订单,选择微信支付。商户后台收到用户支付单,调用微信支付统一下单接口。参见 【统一下单API】统一转载 2017-03-10 09:35:12 · 1217 阅读 · 0 评论 -
一般现在常见的网站攻击方式
ql注入,xss攻击,csrf攻击,文件上传漏洞,访问控制。这些是一般网站容易发生的攻击方式,接下来我们一一分析它们是如何攻击以及防范的。一、sql注入什么是sql注入? sql注入说的通俗一些就是用户在http请求中注入而已的代码,导致服务器使用数据库sql命令时,导致恶意sql一起被执行。用户登录转载 2016-12-19 10:25:21 · 417 阅读 · 0 评论 -
https协议
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议https协议详解 HTTPS以保密为目标研发,简单讲是HTTP的安全版。其安全基础是SSL协议,因此加密的详细内容请看SSL。全称Hypertext Transfer Protocol over Secure Socket Layer。 它是一个U转载 2016-10-18 16:35:03 · 229 阅读 · 0 评论 -
window下cmd中一些操作
可以在命令提示符中使用../ 上一层目录md 文件夹名 新建文件夹cd 文件夹名 进入到该目录cd.. 返回上一层目录cd\ 返回根目录cd.>文件名 新建文件rd 文件夹名 删除文件夹(只能删除空文件夹)copy 文件(夹)名1 文件(夹)名2 1复制到2中move 文件(夹)名1 文件(夹)名2 1剪切到2中del 文件名 删除文件del 文件夹原创 2016-09-28 18:30:11 · 211 阅读 · 0 评论 -
yii中的文件上传以及验证码
这次我把文件上传以及验证码写在一起,大家可以参考一下说明:(这里是在Advanced前台中)首先在控制器(controller)层:namespace frontend\controllers;use Yii;use yii\web\Controller;use frontend\models\UploadForm;use yii\web\Uploade原创 2016-10-12 21:31:09 · 312 阅读 · 0 评论 -
linux 下安装memcached
按照一些按步骤进行安装即可1. 通过yum安装yum -y install memcached#安装完成后执行:memcached -h#出现memcached帮助信息说明安装成功2. 加入启动服务chkconfig --level 2345 memcached on3. 配置Memcachedvim /etc/sysconfig/memcached转载 2016-09-22 21:04:07 · 159 阅读 · 0 评论 -
XML
XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分。您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。 您创建的文件,或文档实例 由元素(标记)和内容构成。当从打印输出读取或以电子形式处理文档时,元素能够帮助更好地理解文档。元素的描述性越强,文档各部分越容易识别。自从出现标记至今原创 2016-09-08 08:44:28 · 262 阅读 · 0 评论 -
php中 pdo的预处理
以下是一些pdo预处理 的一些小知识PDOStatement类:准备语句,处理结果集 也就是预处理,安全,高效,推荐使用两种占位符号: 关联数组,按名称使用,和顺序无关,以冒号开头,自己定义? 参数 索引数组,按索引顺序使用$stmt=$pdo->prepare($sql); $sql可是是任意sql语句,这与mysqli不同如:try{$pdo=原创 2016-09-07 11:47:55 · 424 阅读 · 0 评论 -
php事务处理
一,php事务处理的概述事务:若干个事件的集合事务处理具有四个特性:原子性、一致性、独立性、持久性。事务处理:当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执行。 只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力。这里面,又以InnoDB表类型用的最多,虽然后来发生了诸如Oracle收购InnoDB原创 2016-09-07 11:17:08 · 517 阅读 · 0 评论 -
简单的PDO入门操作
1,介绍一下什么是pdoPDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我们必须借助 ADOdb、P原创 2016-09-05 21:27:47 · 340 阅读 · 0 评论 -
采集2--curl
CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。首先我们先了解一下在php中建立Curl请求的一些基本步骤:一,首先是get方式的实现(默认的)1,先初始化 $ch = curl_init ( )2,设置变量curl_setopt ( ).其中这里设置变量是最为重要的,一切原创 2016-09-05 21:11:17 · 210 阅读 · 0 评论 -
采集
一,采集中如果是img标签和文字结合在一起如 那么如果你在采集过程中只需要标题或者是文字不含有图片那么需要过滤一下图片用[ ^ ]* ; 1,^ 是非2, 含有 括号的标签3, * 很多因此可以完美解决这样的问题!注意:采集网页的文字编码!!!如果不是utf-8形式的,应该用 iconv(in_charset, out_charset, str)In原创 2016-09-04 19:29:02 · 194 阅读 · 0 评论 -
PHP常用文件函数和目录函数整理
一、常用文件函数库1、basename; — 返回路径中的文件名部分。string basename ( string $path [, string $suffix ] )\\给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。suffix 如果文件名是以suffix结束的,那这一部分也会被去掉。返回值:返回 path的基本的文件名。$path = 'd:/转载 2016-09-02 14:27:10 · 226 阅读 · 0 评论