随笔分类 -  php

摘要:tencent2012 笔试题附加题问题描述: 例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。已有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器... 阅读全文
posted @ 2014-10-14 15:24 暗痛 阅读(1701) 评论(0) 推荐(0)
摘要:关键词:SSL,PKI,MAC摘 要:SSL利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证。本文介绍了SSL的产生背景、安全机制、工作过程及典型组网应用。缩略语:缩略语英文全名中文解释AESAdvanced Encryption Standard高级加密... 阅读全文
posted @ 2014-07-25 09:50 暗痛 阅读(319) 评论(0) 推荐(0)
摘要:PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩... 阅读全文
posted @ 2014-07-17 11:04 暗痛 阅读(1214) 评论(0) 推荐(0)
摘要:我们先假设业务场景,是需要有这么一个扩展,提供一个叫ccvita_string的函数,他的主要作用是返回一段字符。(这个业务场景实在太假,大家就这么看看吧)对应的PHP代码可能是这样:function ccvita_string($str){ $result = 'Link'; return $... 阅读全文
posted @ 2014-07-10 14:53 暗痛 阅读(225) 评论(0) 推荐(0)
摘要:一、安装前准备下载php-5.4.13.tar.gz最新版本放到/user/src目录下二、安装 因为在安装php过程中,会依赖安装很多库,为了不让你反复安装,建议按步骤操作 安装autoconf工具sudo apt-get install autoconf 安装libxml2库sudo apt-g... 阅读全文
posted @ 2014-07-09 13:41 暗痛 阅读(1931) 评论(0) 推荐(0)
摘要:.so写好了是给php脚本调用的,如果php脚本执行崩掉了,.so也只能在进程中饮恨而终,这时候php脚本调试经常用的echo, print_r, var_dump都派不上用场了。即使能打印一点儿错误log出来,但也是只见表象,不知内情,根本解决不了一些诡异的bug。还好我们有gdb,下面就 通过4... 阅读全文
posted @ 2014-07-08 17:09 暗痛 阅读(683) 评论(0) 推荐(0)
摘要:最近在帮同事解决Swoole Server问题时,发现有1个worker进程一直处于R的状态,而且CPU耗时非常高。初步断定是PHP代码中发生死循环。下面通过一段代码展示如何解决PHP死循环问题。#dead_loop.php$array = array();for($i = 0; $i handle... 阅读全文
posted @ 2014-07-07 17:38 暗痛 阅读(927) 评论(0) 推荐(0)
摘要:当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段。然后,再仔细分析有问题的代码段,从而找出原因。如果你的程序使用的是c、c++编写,那么你可以很容易的找到正在执行的代码行。但是,... 阅读全文
posted @ 2014-07-07 17:36 暗痛 阅读(747) 评论(0) 推荐(0)
摘要:扩展编译好用,通过php编码测试报“段错误",如果是c语言都是用gdb进行设置,那php扩展要如何进行调试呢?搜索了下,虽然是php扩展但是core是php 的core不是单个so扩展的coredump这里使用ulimit -c unlimited来开启core文件,使用gdb来对core文件进行调... 阅读全文
posted @ 2014-07-07 17:35 暗痛 阅读(3189) 评论(0) 推荐(0)
摘要:第一步:安装jodconverter,安装之后可以实现doc文档转成pdf。文件下载地址为http://www.artofsolving.com/opensource/jodconverter下载了之后直接解压,解压到/opt目录下/opt/jodconverter-2.2.2/,使用到的文件是安装... 阅读全文
posted @ 2014-07-05 18:34 暗痛 阅读(978) 评论(0) 推荐(0)
摘要:首先要安装编译php时要的几个扩展库(1)libxml2,若无php安装一些解析xml的扩展时会提示xml2-config not foundsudo apt-get install libxml2 libxml2-dev libxslt-dev(2)libevent1.4.11及以上版本,安装ph... 阅读全文
posted @ 2014-07-04 11:17 暗痛 阅读(773) 评论(0) 推荐(0)
摘要:前几天在CU看到有人比较PHP与JSP,.net,结果表明PHP比JSP,.net性能低下很多。本人认为即使有差距,也不应该有这么大,所以认真测试一下几者间的性能差距。由于很久没用.net了,所以,暂时没有测试.net。本测试数据真实,但只做为参考。欢迎大家讨论。除做比较外,也可供PHP,JSP程序... 阅读全文
posted @ 2014-05-07 17:54 暗痛 阅读(2132) 评论(0) 推荐(0)
摘要:概述在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么 变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内存泄漏情况(Bug:http://bugs.php.net/bug.php?id=33595),引擎将无法回收这些内存,于是在PHP5.3中出现了新的GC,新的GC有专门的机制负责清理垃圾数据,防止内存泄漏。本文将详细的阐述PHP5.3中新的GC运行机制。 目 阅读全文
posted @ 2014-04-04 11:41 暗痛 阅读(406) 评论(0) 推荐(0)
摘要:这个标题有点牵强因为php有不只9种魔术方法, 但是这些将会引导你使用php魔术方法一个好的开始。它可能魔幻,但是并不需要魔杖。 这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在php特定事件下将会被触发。这可能听起来有点自动魔法但是它真的很酷的,我们已经看过一个简单的例子在 last post,即我们使用一个构造器-使用这个作为我们第一个例子 __construct 构造器是一个魔术方法,当对象被实例化时它会被调用。在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承。如果我们想到以前继承例子从 阅读全文
posted @ 2014-03-25 14:01 暗痛 阅读(283) 评论(0) 推荐(0)
摘要:第一个参数是HashTable,在1.2.3节提到Zend使用HashTable来存储PHP函数,function_table用于指 定从哪个HashTable中获取函数。通常应该用CG(function_table),展开就是 compiler_globals.function_table,compiler_globals是一个用来存储编译器数据的全局数据结构(与其对应 的还有个EG宏,即executor_globals,它用来存储执行器数据)。compiler_globals.function_table里面存 储了所有我们可以在PHP页面里面调用的函数,包括Zend内建函数、PHP标准库 阅读全文
posted @ 2014-02-11 17:31 暗痛 阅读(632) 评论(0) 推荐(0)
摘要:Extensions 的编写理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始。 1.1Hello World这是摘自《PHP手册》的示例程序: 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 阅读全文
posted @ 2014-02-11 17:29 暗痛 阅读(1160) 评论(0) 推荐(0)
摘要:Linux下用C开发PHP扩展 一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13#> cd /software/php-5.2.13/ext二、假设我们要开发一个名为caleng_module的扩展,该扩展包含两个函数:a--处理两个整型相加和b-处理字符串重复输出;1、首先编写一个函数定义文件,该文件编写函数原型后缀为def,假设为:caleng_module.def[cpp] view plaincopyinta(intx,inty)stringb(stringstr,intn)2、通过扩展骨架生成器,将在ext目录下自动建立扩展目录caleng_ 阅读全文
posted @ 2014-02-11 17:23 暗痛 阅读(348) 评论(0) 推荐(0)
摘要:opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范指定。 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数。 这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等。通常opcode还有另一种称谓:字节码(byte codes)。 例如Java虚拟机(JVM),.NET的通用中间语言(CIL: Common Intermeditate Language)等等。PHP中的opcode则属于前面介绍中的后着,PHP是构建在Zend虚拟机(Zend VM)之上的。PHP的opcode就是Zend虚拟机中的指令 阅读全文
posted @ 2014-02-10 15:38 暗痛 阅读(600) 评论(0) 推荐(0)
摘要:RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化 而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。 RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目.. 阅读全文
posted @ 2014-01-08 17:49 暗痛 阅读(507) 评论(0) 推荐(0)
摘要:前言CGI(Common Gateway Interface)是HTTP服务器与你的或其它机器 上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 2. 功能: 绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服 务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具有交互功能。 3. 运行环境: CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。 4. CGI处理步骤: ⑴通过Internet把用户请求送到服务器 阅读全文
posted @ 2014-01-07 16:11 暗痛 阅读(694) 评论(0) 推荐(0)