随笔分类 - PHP
摘要:背景 也许最常见的PHP扩展是那些包裹第三方C库的扩展。这些扩展包括MySQL或Oracle的数据库服务库,libxml2的 XML技术库,ImageMagick 或GD的图形操纵库。 在本节中,我们编写一个扩展,同样使用脚本来生成骨架扩展,因为这能节省许多工作量。这个扩展包裹了标准C函数fopen(), fclose(), fread(), fwrite()和 feof(). 环境搭建 ...
阅读全文
摘要:为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。 另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C扩展可操作的范围更广。 创建扩展骨架 ##本例用的php版本的是5.3.3 cd php-5.3.3/ext/ ./ext_skel --extname=myfun --proto=myf...
阅读全文
摘要:简介 Taint 可以用来检测隐藏的XSS code, SQL注入, Shell注入等漏洞, 并且这些漏洞如果要用静态分析工具去排查, 将会非常困难, 比如对于如下的例子: 对于请求: http://localhost/?name=222 静态分析工具, 往往无能为力, 而Taint却可以准确无误的爆出这类型问题. Warning: Main::test() [function....
阅读全文
摘要:简介 Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具。现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache。 Zend OPcache 通过 opcode
阅读全文
摘要:简介 XHProf 是一个轻量级的分层性能测量分析器。 在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图。 它在报告、后期处理阶段计算了独占的性能度量,例如运行经过的时间、CPU 计算时间和内存开销。 函数性能报告可以由调用者和被调用者终止。 在数据搜集阶段 XHProf 通过调用图的循环来检测递归函数,通过赋予唯一的深度名称来避免递归调用的循环。 XHProf 包含了一个基...
阅读全文
摘要:vld安装 配置php.ini 运行结果 来自为知笔记(Wiz)
阅读全文
摘要:下载Oracle客户端 官方下载地址: Linux X86-64 同意协议,下载以下文件: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 安装 rpm -ivh oracle-instantclient11.2-...
阅读全文
摘要:什么是Suhosin? Suhosin是一个PHP程序的保护系统。它的设计初衷是为了保护服务器和用户抵御PHP程序和PHP核心中,已知或者未知的缺陷。 Suhosin有两个独立的部分,使用时可以分开使用或者联合使用。 第一部分是一个用于PHP核心的补丁,它能抵御缓冲区溢出或者格式化串的弱点; 第二部分是一个强大的PHP扩展,包含其他所有的保护措施。 下载安装补丁 ##高版本不需要,折中...
阅读全文
摘要:安装/配置 编译安装 wge thttp://pecl.php.net/get/yaf-2.3.5.tgz tar -zxvfyaf-2.3.5.tgz cd yaf-2.3.5/ cd extension/ /usr/local/php-5.3.3/bin/phpize ./configure --with-php-config=/usr/local/php-5.3.3/bin/php-co...
阅读全文
摘要:apc安装 wget http://pecl.php.net/get/APC-3.1.13.tgz tar zxvf APC-3.1.13.tgz cd APC-3.1.13 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 来自为知...
阅读全文
摘要:安装/配置 编译安装 wge thttp://pecl.php.net/get/protocolbuffers-0.2.6.tgz tar -zxvfprotocolbuffers-0.2.6.tgz cd protocolbuffers-0.2.6/ /usr/local/php-5.3.3/bin/phpize ./configure --with-php-config=/usr/loca...
阅读全文
摘要:安装/配置 编译安装 wge thttp://pecl.php.net/get/SeasLog-1.4.4.tgz tar -zxvfSeasLog-1.4.4.tgz cd SeasLog-1.4.4/ cd extension/ /usr/local/php-5.3.3/bin/phpize ./configure --with-php-config=/usr/local/php-5.3....
阅读全文
摘要:PHP的pcntl扩展提供了信号处理的功能,利用它可以让PHP来接管信号的处理,在开发服务器端守护进程方面,信号处理至关重要。 函数原型 bool pcntl_signal(int $signo ,callback $handler [,bool $restart_syscalls=true]) 第一个参数是信号ID 第二个参数是信号发生时回调的PHP函数。 第三个参数是是否restar...
阅读全文
摘要:PHP中提供了一个扩展pcntl,可以利用操作系统的fork调用来实现多进程。fork调用后执行的代码将是并行的。 PHP官方没有提供多线程的扩展,pecl中有一个pthreads扩展提供了多线程的特性,地址是http://pecl.php.net/package/pthreads,此扩展仅在线程安全版本中可用。 多进程 使用多进程, 子进程结束以后, 内核会负责回收资源 使用多进程, 子...
阅读全文
摘要:什么是守护进程? 一个守护进程通常补认为是一个不对终端进行控制的后台任务。它有三个很显著的特征:在后台运行,与启动他的进程脱离,无须控制终端。常用的实现方式是fork() -> setsid() -> fork() 在glibc里有一个函数daemon。调用此函数,就可使当前进程脱离终端变成一个守护
阅读全文
摘要:1、不用新变量直接交换现有两个变量的值(1)list($a,$b)=array($b,$a);(2)a=a+b,b=a-b,a=a-b2、PHP数字金额转大小格式,同时说明思路 function daxie($num){ $da_num = array('零','一','二','三','四','五','六','七','八','九'); $return = ''; $len_num = strlen($num); if(!
阅读全文
摘要:面向对象设计的五大原则分别是单一职责原则、接口隔离原则、开放-封闭原则、替换原则、依赖倒置原则。
阅读全文
摘要:面向对象的程序设计(Object-oriented Programming,OPP)是一种程序设计范型,同时也是一种程序开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和可扩展性。面向过程、面向对象以及函数式编程被人们称为编程语言中的三大范式(实际上面向过程与面向对象都同属于命令式编程),其中面向对象的核心思想是对象、封装、可重用性和可扩展性。
阅读全文
摘要:一、SQL语句View Code ---- 数据库: `booklist`---- ------------------------------------------------------------ 表的结构 `authors`--CREATE TABLE IF NOT EXISTS `authors` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCRE...
阅读全文
摘要:一、gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。 利用Apache中的Gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。 网页加载速度加快的好处不言而喻,除了节省流量,改善用户的浏览体验外,另一个潜在的好处是Gzip与搜索引擎的抓取工具有着更好的关系。例如 Google就可以通过直接读取gzip
阅读全文