09 2015 档案
摘要:percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等percona-toolkit 源自 Maatkit 和 Aspersa 工具,这两个工具是管理 mysql 的最有名的 工具,现在 Maatkit 工具已经不...
阅读全文
摘要:层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃一般的解决方案1、将明文密码做单向hash$password = md5($_POST["password"]);2、密码+salt后做单向hash,PHP内置了hash()函数,你只需要将加密...
阅读全文
摘要:server { listen 80; server_name sub.domain.com; set $root_path '/var/www/html/application_name/public'; root $root_path; ...
阅读全文
摘要:PHP 5.61、可以使用表达式定义常量https://php.net/manual/zh/migration56.new-features.php 在之前的 PHP 版本中,必须使用静态值来定义常量,声明属性以及指定函数参数默认值。 现在你可以使用包括数值、字符串字面量以及其他常量在内的数值表达式...
阅读全文
摘要:闭包的特性1.函数嵌套函数2.函数内部可以引用外部的参数和变量3.参数和变量不会被垃圾回收机制回收闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露,主要用于私有的方法和变量Javascript的垃圾回收原理基本上所有语言自动内存管理,用的都是引用计数了1、在javascript中...
阅读全文
摘要:先看一个例子function User(){}var u1 = new User();console.log(u1.prototype);// undefined 使用对象实例无法访问到prototypeconsole.log(User.prototype);//{},使用构造函数名访问protot...
阅读全文
摘要:By C extensions we can directly manipulate the large PHP variables, such as:GET,POST,SERVERYou can fetch $_SERVER['PHP_SELF'] (or any other $_SERVER v...
阅读全文
摘要:1、看一下一个扩展中的简单代码 ZEND_BEGIN_ARG_INFO(params_add_arginfo, 0) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, b)ZEND_END_ARG_INFO()PHP_FUNCTION(params_add) { ...
阅读全文
摘要:缘起javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对 javascript语言特性更进一步的深入理解,那么他有几种写法呢? ( function(){…} )()或者 ( function (){…} (...
阅读全文
摘要:在阅读PHP源码的时候,会遇到很多诸如:CG(),EG() ,PG(),FG()这样的宏,如果不了解这些宏的意义,会给理解源码造成很大困难EG()、这个宏可以用来访问符号表,函数,资源信息和常量CG() 用来访问核心全局变量PG() PHP全局变量。我们知道php.ini会映射一个或者多个PHP全局...
阅读全文
摘要:简介1、当Zend engine解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode),opcode是一个四元组,(opcode, op1, op2, result),它们分别代表操作码,第一操作数,第二操作数,结果2、因为PHP是构...
阅读全文
摘要:1、opcode结构在Zend/zend_compile.h文件下struct _zend_op { opcode_handler_t handler; znode_op op1; znode_op op2; znode_op result; ...
阅读全文
摘要:问题描述:购买的Linux服务器,Linux服务器的内存为512MB。在编译PHP的时候会提示:virtual memory exhausted: Cannot allocate memory,编译失败。解决方法:发生该问题的原因是服务器的内存不够,从而导致编译失败。而购买的Linux服务器,未给你...
阅读全文
摘要:问题由来昨天一网友在segmentfault.com上提问,无法做404重定向打开对方的网站随便输入一个错误的地址发现给出了404代码,但是页面完全空白,并没有显示404页面的设定内容当时就明白啥情况了,只要在nginx.conf配置文件上加上一句fastcgi_intercept_errors o...
阅读全文
摘要:没有一行式解决方案。小心、注意细节,以及一致性。PHP 中的 UTF-8 糟透了。原谅我的用词。目前 PHP 在低层次上还不支持 Unicode。有几种方式可以确保 UTF-8 字符串能够被正确处理, 但并不容易,需要深入到 web 应用的所有层面,从 HTML,到 SQL,到 PHP。我们旨在提供...
阅读全文
摘要:使用 define(),除非考虑到可读性、类常量、或关注微优化1、在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量了,一个常量一旦被定义,就不能再改变或者取消定义2、常量只能包含标量数据(boolean,intege...
阅读全文
摘要:"; } } }}function curPageURL(){ $pageURL = 'http'; if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";} $pageURL .= "://"; ...
阅读全文
摘要:安全是编程非常重要的一个方面。在任何一种编程语言中,都提供了许多的函数或者模块来确保程序的安全性。在现代网站应用中,经常要获取来自世界各地用户的输入,但是,我们都知道“永远不能相信那些用户输入的数据”。所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数。今天,我们就来看看,在著名的开源...
阅读全文
摘要:介绍Samba可以让我们在windows中访问linux系统中的文件,如果用来调试linux虚拟机中的代码会非常的方便1、安装yum -y updateyum install samba samba-client samba-swat -y2、查看安装情况[root@localhost samba]...
阅读全文
摘要:按下"g"键接下来的内容介绍了物理键盘和系统中断的工作原理,但是有一部分内容却没有涉及。当你按下“g”键,浏览器接收到这个消息之后,会触发自动完成机 制。浏览器根据自己的算法,以及你是否处于隐私浏览模式,会在浏览器的地址框下方给出输入建议。大部分算法会优先考虑根据你的搜索历史和书签等内容给出建 议。...
阅读全文
摘要:cURL 函数curl_close — 关闭一个cURL会话curl_copy_handle — 复制一个cURL句柄和它的所有选项curl_errno — 返回最后一次的错误号curl_error — 返回一个保护当前会话最近一次错误的字符串curl_escape — 使用 URL 编码给定的字符...
阅读全文
摘要:背景1、对于PV不高或者说并发数不是很大的应用,不用考虑这些,一般的文件操作方法完全没有问题2、如果并发高,在我们对文件进行读写操作时,很有可能多个进程对进一文件进行操作,如果这时不对文件的访问进行相应的独占,就容易造成数据丢失例如:一个在线聊天室(这里假定把聊天内容写入文件),在同一时刻,用户A和...
阅读全文
摘要:1、最简单的做法通常:启动Memcache的服务器端的命令为:/usr/local/bin/memcached -d -m 256 -u root -l 127.0.0.1 -p 12000 -c 2048 -P /tmp/memcached.pid在/etc/rc.d/rc.local中加入一行,...
阅读全文
摘要:简介Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。cpu是任务处理,计算最关键的资源,cpu核越多,性能就越好。规则设定(1)cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭 (2)worker_proce...
阅读全文
摘要:简介Gearman提供了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。它提供了你进行并行工作的能力、负载均衡处理的能力,以及在不同程序语言之间沟通的能力。Gearman能够应用的领域非常广泛,从高可用的网站到数据库的复制任务。总之,Gearman就是负责分发处理的中枢系统,它的优...
阅读全文
摘要:1、介绍GoAccess 是一个用来统计 Apache Web 服务器的访问日志的工具,可即时生成统计报表,速度非常快查看的统计信息有:统计概况,流量消耗等访客排名动态Web请求静态web请求,如图片、样式表、脚本等。来路域名404 错误操作系统浏览器和搜索引擎主机、DNS和IP地址HTTP 响应代...
阅读全文
摘要:概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作判断标准使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询注意1、覆...
阅读全文
摘要:在Linux/UNIX系统引导的时候会开启很多服务,这些服务称为守护进程(也叫Daemon进程)。守护进程是脱离于控制终端并且在后台周期性地执行某种任务或等待处理某些事件的进程,脱离终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的中断信息所终止。创建守护进程的一般...
阅读全文
摘要:1、作用域(function() { var a = b = 5;})();console.log(b);输出:5陷阱是,在函数表达式中有两个赋值,但a是用关键字var 来声明的,这意味着a是局部变量,而b则被赋予为全局变量。另一个陷阱是,它并没有使用严格模式(use strict)。在函数里面,如...
阅读全文