- 博客(51)
- 收藏
- 关注
原创 centos7 docker 安装kafka
1、kafka需要zookeeper管理,所以需要先安装zookeeper。下载zookeeper镜像docker pull wurstmeister/zookeeper2、启动镜像生成容器这里注意:没有-it,生产者生产消息会不成功,docker内部容器不能通信docker run -itd --name zookeeper -p 2181:2181 wurstme...
2020-04-29 17:38:52
1639
1
原创 苹果内购之PHP服务器端验证
针对苹果内购,看了 大量的 其他blog和阅读官方文档才发现,其实 苹果内购服务器做的工作很少,基本上所有的 操作都可以再前端完成操作,包括对支付凭证的验证,但是如果在客户端验证凭证可能存在被篡改的危险,服务器去重验证和加款,是建立在 用户已经在前端支付成功,然后由ios会得到一个字节流,然后 base64后转给 后台。后台通过这个字符串 去请求苹果的服务器,然后得到一个json字符串...
2020-02-25 21:23:25
959
原创 Nginx与PHP通信
nginx如何调用php采用nginx+php作为webserver的架构模式,在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如同调用一个静态文件那么直接简单,是需要动态执行php脚本。所以涉及到了对nginx.conf文件的配置。这一步对新手而言一般需要网上查资料,对于一般的熟手而言,也有不少同学并没有搞透彻为何要如此这般配...
2019-03-07 10:51:57
831
原创 memcache和Redis的区别
Memcache和Redis区别:* Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcache相比一个最大的区别。* Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcache只是简单的K/V缓存。* 他们的扩展都需要做集群;实现方式:master-slave、Hash。* 在100k以上的数据中,Memcache性能要高于Redis。...
2019-03-07 10:39:38
146
转载 Nginx负载均衡
nginx的负载均衡有4种模式:1)、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。2)、weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。2)、ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。3)、fair(第三方...
2019-03-07 10:32:27
129
转载 PHP 命名空间与自动加载
include 和 require 是PHP中引入文件的两个基本方法。在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 require 堆积。这样的代码既不优雅,执行效率也很低,而且维护起来也相当困难。为了解决这个问题,部分框架会给出一个引入文件的配置清单,在对象初始化的时候把需要的文件引入。但这只是让代码变得更简洁了一...
2019-03-07 10:24:53
201
原创 php 二维数组分组排序
<?php//二维数组排序,$arr是数据,$keys是排序的健值,$order是排序规则,1是降序,0是升序function array_sort($arr,$keys,$order=0){ if(!is_array($arr)){ return false; } $keysvalue=array(); foreach($arr as $...
2018-07-05 14:56:14
479
转载 PHP命名空间和自动加载理解
include 和 require 是PHP中引入文件的两个基本方法。在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 require 堆积。这样的代码既不优雅,执行效率也很低,而且维护起来也相当困难。为了解决这个问题,部分框架会给出一个引入文件的配置清单,在对象初始化的时候把需要的文件引入。但这只是让代码变得更简洁了一些,引...
2018-07-05 14:41:19
334
1
转载 MySQL 开启慢查询
一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录三、设置步骤1.查看慢查...
2018-07-05 11:12:17
140
转载 秒杀系统设计思路
12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存,读写冲突,锁非常严重;小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万;这是秒杀业务难的地方。那我们怎么优化秒杀系统呢?一、难点(1)高并发用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务器和数据库服务器造成负载压力...
2018-07-05 11:04:45
711
原创 js 跨域请求数据
function CallWebServiceByJsonp() { var params = $("#tt").val(); if(params== '') { alert('请输入有效参数'); return false; } $.ajax({ type: "GET", cache: fal...
2018-07-04 16:09:36
269
原创 PHP 预防CSRF、XSS、SQL注入攻击
1.服务端进行CSRF防御服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数。(1).Cookie Hashing(所有表单都包含同一个伪随机值):这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败了(2).验证码 这个方案的思路是:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串,厄....这个方...
2018-07-04 16:01:40
2557
原创 PHP 多进程写文件
$file = fopen("test.txt","w+"); // 排它性的锁定 先锁上,写完,打开。if (flock($file,LOCK_EX)) { fwrite($file,"Write something"); // release lock flock($file,LOCK_UN); }else { echo "Error locking fil...
2018-07-04 15:52:40
538
原创 PHP safe_mode参数关闭受影响的函数
函数名 限制dbmopen() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。dbase_open() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。filepro() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。filepro_rowcount() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。...
2018-07-04 15:49:38
979
原创 PHP数组以某个字段分组求和
<?php $list = array( 0 => array('name' => 'aa', 'score' => 88), 1 => array('name' => 'aa', 'score' => 99), 2 => array('name' => 'bb', 'score' => 33), 3 => a...
2018-07-04 15:45:38
3456
原创 2013年08月17日_程序猿的那些事_新浪博客
清华教授说如果把西游记倒过来看,其实更精彩。如来派师徒四人带上八部天书和小白龙去东土大唐传教,在一路上遇到了各种妖怪,打来打去发现他们都是有后台的,无论怎么作恶都不受惩罚,八戒和沙僧觉得太黑暗了,无奈一个躲进了高老庄,一个钻进了流沙河,只有悟空坚持正义一路斩妖除魔护送师傅东去传教。结果天庭对悟空实在忍无可忍就和如来达成协议——我们可以保证唐三藏平安到长安,不过你得把孙悟空这个刺儿头给办...
2013-08-17 14:25:47
108
原创 PHP文件处理_程序猿的那些事_新浪博客
R 只读。文件指针置于文件开头;r+ 读写。文件指针置于文件开头;W只写。在写入前,删除文件内容,将指针返回文件开头,如果文件不存在,则尝试创建;w+读写。在读取或写入前,删除文件内容,将指针返回到文件开头,如果文件不存在,则尝试创建;A只写。文件指针置于文件末尾。如果文件不存在,则尝试创建。称为:追加;a+ 读写。文件指针置于文件末尾。如果文件不存在,则...
2013-01-16 11:15:27
174
原创 PHP计算目录的大小
//计算目录大小 functiondirectorySize($directory){ $directorySize=0; //打开目录读取内容 if($dh = opendir($directory)){ //迭代处理每个目录项 while(($filename = ...
2013-01-09 10:51:33
202
原创 PHP计算目录的大小_程序猿的那些事_新浪博客
//计算目录大小 functiondirectorySize($directory){$directorySize=0;//打开目录读取内容if($dh = opendir($directory)){//迭代处理每个目录项while(($filename = readdir(...
2013-01-09 10:51:33
110
原创 JQ、PHP下拉菜单联动
前提是加载jqueryhtml页面:<select name="" id=""> <optionvalue="0">请选择</option> <optionvalue="1">****</option> <option
2013-01-08 18:03:56
181
原创 JQ、PHP下拉菜单联动_程序猿的那些事_新浪博客
前提是加载jqueryhtml页面:<select name="" id=""><optionvalue="0">请选择</option><optionvalue="1">****</option><optionvalue="2">****</option>...
2013-01-08 18:03:56
89
原创 网页状态码
常见HTML状态码列表HTTP状态码 摘要说明成功2XX 成功处理了请求的状态码。200 服务器已成功处理了请求并提供了请求的网页。204 服务器成功处理了请求,但没有返回任何内容。放重定向3XX 每次请求中使用重定向不要超过5次。301 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。302 请...
2012-07-05 16:41:30
175
原创 网页状态码_程序猿的那些事_新浪博客
常见HTML状态码列表HTTP状态码 摘要说明成功2XX 成功处理了请求的状态码。200 服务器已成功处理了请求并提供了请求的网页。204 服务器成功处理了请求,但没有返回任何内容。放重定向3XX 每次请求中使用重定向不要超过5次。301 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。302 请求的网页临时移动...
2012-07-05 16:41:30
113
原创 Linux常用命令大全
系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinf...
2012-07-05 16:09:18
152
原创 Linux常用命令大全_程序猿的那些事_新浪博客
系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU ...
2012-07-05 16:09:18
103
原创 PHP实现抓取页面与代码解析
在做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址,然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来。一、 PHP抓取页面的主要方法:1. file()函数2. file_get_contents(...
2012-07-05 09:26:06
128
原创 PHP实现抓取页面与代码解析_程序猿的那些事_新浪博客
在做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址,然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来。一、 PHP抓取页面的主要方法:1. file()函数2. file_get_contents()函数3. f...
2012-07-05 09:26:06
106
原创 HTTP协议状态码信息汇总
·400 - 错误的请求。·401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS 日志中显示: ·401.1 - 登录失败。·401.2 - 服务器配置导致登录失败。·401.3 - 由于 ACL 对资源的限制而未获得授权。·401.4 - 筛选器授权失败。·401.5 - I...
2012-07-04 16:52:33
549
原创 网页错误信息汇总_程序猿的那些事_新浪博客
·400 - 错误的请求。·401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS 日志中显示: ·401.1 - 登录失败。·401.2 - 服务器配置导致登录失败。·401.3 - 由于 ACL 对资源的限制而未获得授权。·401.4 - 筛选器授权失败。·401.5 - ISAPI/CGI...
2012-07-04 16:52:33
267
原创 网络协议大全_程序猿的那些事_新浪博客
ATM协议: 即异步传输模式,ATM协议是以高速分组传送模式为主,综合电路传输模式优 先的一种宽带传输模式。 BGP协议: BGP协议即边界网关协议,BGP协议是不同自治系统路由器之间进行通信的外部网关协议。 DHCP协议: 主要用在路由器中给局域网各主机分配IP。 DNS协议: 域名系统(服务)协议。 DSL协议: 高速数字用户线,已经是历...
2012-07-04 12:00:23
143
原创 PHP判断表达式中括号是否匹配
<?php function isValid($expstr) { $temp = array(); for ($i=0; $i<strlen($expstr); $i++) { $ch = $expstr[$i]; switch($ch) { ...
2012-06-30 22:24:48
122
原创 PHP判断表达式中括号是否匹配_程序猿的那些事_新浪博客
<?phpfunctionisValid($expstr){$temp=array();for($i=0;$i<strlen($expstr);$i++){$ch=$expstr[$i];switch($ch){cas...
2012-06-30 22:24:48
112
原创 php中$_request与$_post、$_get的区别
php中有$_request与$_post、$_get用于接受表单数据,当时他们有何种区别,什么时候用那种最好。一、$_request与$_post、$_get的区别和特点 $_REQUEST[]具用$_POST[]$_GET[]的功能,但是$_REQUEST[]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得 二、$_...
2012-06-26 15:42:56
207
原创 php中$_request与$_post、$_get的区别_程序猿的那些事_新浪博客
php中有$_request与$_post、$_get用于接受表单数据,当时他们有何种区别,什么时候用那种最好。一、$_request与$_post、$_get的区别和特点$_REQUEST[]具用$_POST[]$_GET[]的功能,但是$_REQUEST[]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得二、$_post、$_g...
2012-06-26 15:42:56
101
原创 php优化
原文地址:http://reinholdweber.com/?p=3英文版权归Reinhold Weber所有,中译文作者yangyang(akadavidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHPer指正。1. If a method can be static, declare it stati...
2012-06-26 15:23:30
93
原创 php优化_程序猿的那些事_新浪博客
原文地址:http://reinholdweber.com/?p=3英文版权归Reinhold Weber所有,中译文作者yangyang(akadavidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHPer指正。1. If a method can be static, declare it static. Speed...
2012-06-26 15:23:30
156
原创 PHP函数implode()具体用法
PHP函数implode()把数组元素组合为一个字符串。implode(separator,array)separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。array 必需。要结合为字符串的数组。虽然 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。PHP函数implode()的例子 <?ph...
2012-06-26 13:29:42
295
原创 PHP函数implode()具体用法_程序猿的那些事_新浪博客
PHP函数implode()把数组元素组合为一个字符串。implode(separator,array)separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。array 必需。要结合为字符串的数组。虽然 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。PHP函数implode()的例子<?php$arr...
2012-06-26 13:29:42
165
原创 explode()的具体使用方法
PHP函数explode()把字符串分割为数组explode(separator,string,limit)separator 必需。规定在哪里分割字符串。string 必需。要分割的字符串。limit 可选。规定所返回的数组元素的最大数目。PHP函数explode()例子 <?php $str = "Hello world. It's a beau...
2012-06-26 13:26:05
1498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人