自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 zend_language_scanf & parse

zendlex -> yylex; zendparse -> yyparse

2016-04-16 17:24:34 368

转载 一些资料

http://www.cnblogs.com/chenpingzhao/p/4922246.html

2016-03-13 16:25:59 369

原创 杂谈(fastcgi)

关于cgi,fastcgi的一些问题,有些同学还是搞混,好吧,这里说一下。 1、cgi,其实是个概念,一个协议。webserver和后端程序通信的一个协议,比如要传啥内容给后端程序,用户请求的query?get?post?cookie ?.. cgi只是规定了一些内容。。 2、fastcgi,fast..顾名思义,就是更快一些,性能更高一些。怎么高法?你得了解一下传统的cgi实现,比如php,每

2016-02-28 16:35:03 407

转载 关于php线程安全的一些东西

本篇文字转自:http://blog.codinglabs.org/articles/zend-thread-safety.html在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏。通过查阅资料,知道这些宏与Zend的线程安全机制有关,而绝大多数资料中都建议按照既定规则使用这些宏就可以,而没有说明这些宏的具体作用。不知道怎么回事总是令人不舒服的,因此我通过阅读源码和

2016-02-28 14:35:53 627

原创 开发protobuf扩展的一些笔记

一个需求要接入公司内部的一个基于protobuf协议的接口,protobuf的库文件都是proto编译器生成的cpp文件。要编译成php扩展的话,需要c/c++混编,这里记录一下。1、升级一下安装的protobuf,貌似C1的机器上的protobuf都是2.4.0的,当编译高级的一些语法的proto文件的时候都会报错的,升级到2.5.0以上的版本好些。2、proto编译器会根据proto文件生成相关

2016-01-05 17:43:40 1961

转载 Memcache mutex设计模式

周六的S2 Web 2.0技术沙龙上介绍了memcache中使用mutex场景(文后要演讲稿),有网友对详情感兴趣,简单介绍如下。场景 Mutex主要用于有大量并发访问并存在cache过期的场合,如首页top 10, 由数据库加载到memcache缓存n分钟 微博中名人的content cache, 一旦不存在会大量请求不能命中并加载数据库 需要执行多个IO操作生成的数据存在cache中, 比

2015-12-15 20:30:02 397

原创 调试fpm的一些小笔记

fpm状态下没法生成core文件的条件下调试比较麻烦。 1、core文件无法生成 1)、不能生成原因很多,比如不让生成,或者线上环境,或者core文件过大等等,anyway,就是各种不方便生成而且非要生成就得改一些参数还要重启重新登录等等乱七八糟的原因..。 2)、修改fpm的配置文件,让只生成一个fpm子进程。重启,获取该process ID。 3)、gdb && gdb

2015-11-27 17:43:32 1240

原创 php7下的opcache特性导致的一个bug排查

首先这不是opcache的bug,我感觉这算是新特性导致代码不太兼容导致的,因为我们的代码在php5下是跑正常的。 最近在给我们的框架兼容php7,因为框架是扩展的形式,所以得针对新版的zend api修改。一些都OK了,在cli测试都是没问题的,感觉很爽。但是放到了php-fpm的环境下,打开opcache。一些乱七八糟的事情发生了,fpm启动后第一次请求是正常,第二次后就各种segmentfa

2015-11-27 17:42:15 4589 2

原创 一个轻量级的c编写的php接口平台框架

1、gihtub地址:https://github.com/linkaisheng/edge 2、程序流程图: 3、性能彪悍,文档待续..

2015-11-01 14:39:43 1546

原创 yar框架的并行原理分析(libcurl+epoll)

yar是一个轻量级的php rpc框架。有意思的是它的并行,其实就是libcurl作为网络库提供http请求,然后用epoll做为事件监听来实现整个异步并行调用的。在此基础上,就是如何利用zend api来对整个逻辑的封装了。我们先抛开zend api,单独看看libcurl 结合 epoll 是如何来做到异步并行调用的。 先大致熟悉一下libcurl,官网http://curl.haxx.se/

2015-11-01 13:01:19 3004 2

原创 php扩展获取_ENV、_SERVER时踩到的坑。

最近写个router组件,需要获取SERVER这种超全局变量。发现在symbool_table里面死活拿不到,但是POST、GET的可以拿啊。。我就郁闷了,最后看了下初始化流程。发现坑爹的就排除了SERVER和ENV这2变量的初始化在symbool_table里面-。-。最后上了官网查到了这个,http://php.net/manual/en/ini.core.php#ini.auto-global

2015-06-05 18:38:20 1776 2

原创 关于php扩展中使用ini配置和使用全局变量

关于php扩展中使用ini配置和使用全局变量。有时候一段程序逻辑的方向修改,可以根据输入的数据进行修改,也可以直接去更改代码,但这样带来了灵活性的缺失和安全的问题,所以引入了php.ini配置文件,为了方便提供在ini里面配置。下面配置该全局。 首先,确定该全局变量是不是线程安全的(因为一个线程里面可能会提供多个request,考虑到数据共享带来的风险),主要下是否需要include “TSRM.

2015-05-10 20:51:01 4024

原创 关于php扩展包里面的configure来源说明

我们知道在Linux下构造软件,一般都经过以下几个步骤,confiure &&make && make install。 make需要makefile,而makefile需要经过confiure生成的,其实confiure是个shell脚本,makefile的内容由confiure.in来生成的。而confiure.in的内容是啥呢?其实就是一堆m4文件的集合,m4文件由m4软件解析。m4是一个宏

2015-05-02 17:37:52 608

转载 Linux下Gcc生成和使用静态库和动态库详解(转)

一、基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。 本文仅限于介绍linux下的库。1.2库的种类 linux下的库有两种:静态库和共享库(动态库)。 二者的不同点在于代

2015-05-01 13:33:46 504

原创 文章标题

几个常用的PHP宏,先一个一个记下来吧,以后还会增加不少: main/SAPI.h:define SG(v) TSRMG(sapi_globals_id, sapi_globals_struct *, v)SG宏主要用于获取SAPI层范围内的全局变量

2015-04-13 14:46:33 346

原创 并发编程的几点

并发编程主要基于以下几种:1、多进程并发,依赖于fork类模式的并发,典型的服务器模型就是一个client的confd会fork一个进程去处理。当然了,进程使用的好坏很明显,不赘述。2、多路复用IO模式。基于select、poll、epoll等基础库提供的,基于io驱动模式,通过阻塞式监听IO状态,再根据返回可用的IO描述符,来进行相应的逻辑处理。这种往往是单线程,多核CPU无法利用。除非

2015-04-05 20:27:15 404

原创 我目前使用redis在以下几个地方

1、分布式并发锁控制。2、简单的key-value存取加数据持久化。3、队列。4、大数据索引存储。5、list的一些扩展应用。

2015-04-05 20:24:03 1523

PHP中文手册

PHP中文手册。比较老,需要的人就拿去吧,大致目录如下版权信息 前言 入门指引 简介 简明教程 安装与配置 安装前需要考虑的事项 Unix 系统下的安装 Mac OS X 系统下的安装 Windows 系统下的安装 PECL 扩展库安装 还有问题? 运行时配置 语言参考 基本语法 类型 变量 常量 表达式 运算符 控制结构 函数 类与对象(PHP 4) 类与对象(PHP 5) Namespaces 异常处理 引用的解释 安全 简介 总则 以 CGI 模式安装时 以 Apache 模块安装时 文件系统安全 数据库安全 错误报告 使用 Register Globals 用户提交的数据 魔术引号 隐藏 PHP 保持更新 特点 用 PHP 进行 HTTP 认证 Cookie 会话 处理 XForms 文件上传处理 使用远程文件 连接处理 数据库永久连接 安全模式 PHP 的命令行模式 函数参考 .NET — .NET 函数 Apache — Apache 特有函数 APC — APC 可选 PHP 缓存 APD — APD 高级 PHP 调试器 Arrays — Array 数组函数 Aspell — Aspell 函数(已废弃) BBCode — BBCode Functions BC math — BC math 高精度数学函数 bcompiler — BCompiler PHP 字节码编译器 Bzip2 — Bzip2 压缩函数 Calendar — Calendar 日历函数 CCVS — CCVS API 函数(已废弃) Classes/Objects — Classes/Objects 类/对象函数 Classkit — Classkit 函数 ClibPDF — ClibPDF Functions [deprecated] COM — COM 和 .Net(Windows)函数 Crack — Crack Functions ctype — Character Type Functions CURL — CURL, Client URL Library Functions Cybercash — Cybercash Payment Functions CyberMUT — Credit Mutuel CyberMUT functions Cyrus IMAP — Cyrus IMAP administration Functions Date/Time — Date/Time 日期/时间函数 DB++ — DB++ Functions dba — Database (dbm-style) Abstraction Layer Functions dBase — dBase Functions DBM — DBM Functions [deprecated] dbx — dbx Functions Direct IO — Direct IO Functions Directories — Directory 目录函数 DOM — DOM Functions DOM XML — DOM XML Functions enchant — enchant Functions Errors and Logging — Error Handling and Logging Functions Exif — Exif Functions Expect — Expect Functions fam — File Alteration Monitor Functions FDF — Forms Data Format Functions Fileinfo — Fileinfo Functions filePro — filePro Functions Filesystem — Filesystem 文件系统函数 Filter — Filter Functions Firebird/InterBase — Firebird/InterBase Functions Firebird/Interbase (PDO) — Firebird/Interbase Functions (PDO_FIREBIRD) FriBiDi — FriBiDi Functions FrontBase — FrontBase Functions FTP — FTP 函数 Function handling — Function Handling Functions GeoIP — GeoIP Functions gettext — Gettext Functions GMP — GMP Functions gnupg — gnupg 函数 gopher — Net_Gopher haru — Haru PDF Functions hash — hash Functions HTTP — HTTP 函数 Hyperwave — Hyperwave Functions Hyperwave API — Hyperwave API Functions i18n — i18n 函数 IBM (PDO) — IBM Functions (PDO_IBM) ibm_db2 — IBM DB2, Cloudscape and Apache Derby Functions iconv — iconv Functions id3 — ID3 Functions IIS Functions — IIS Administration Functions Image — Image 图像函数 Imagick Image Library IMAP — IMAP, POP3 and NNTP Functions Informix — Informix Functions Informix (PDO) — Informix Functions (PDO_INFORMIX) Ingres II — Ingres II Functions IRC Gateway — IRC Gateway Functions Java — PHP / Java Integration JSON — JSON 函数 kadm5 — KADM5 LDAP — LDAP Functions libxml — libxml Functions Lotus Notes — Lotus Notes Functions LZF — LZF Functions Mail — Mail 邮件函数 Mailparse — Mailparse Functions Math — Math 数学函数 MaxDB — MaxDB PHP Extension MCAL — MCAL Functions mcrypt — Mcrypt Encryption Functions MCVE — MCVE (Monetra) Payment Functions Memcache — Memcache Functions mhash — Mhash Functions Mimetype — Mimetype Functions Ming (flash) — Ming functions for Flash Misc. — Miscellaneous Functions mnoGoSearch — mnoGoSearch Functions MS SQL Server — Microsoft SQL Server Functions MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB) Msession — Mohawk Software Session Handler Functions mSQL — mSQL Functions Multibyte String — Multibyte String Functions muscat — muscat Functions MySQL — MySQL 函数 MySQL (PDO) — MySQL Functions (PDO_MYSQL) mysqli — MySQLi 扩展库 Ncurses — Ncurses Terminal Screen Control Functions Network — Network Functions Newt — Newt Functions NSAPI — NSAPI-specific Functions Object Aggregation — Object Aggregation/Composition Functions Object overloading — Object property and method call overloading OCI8 — Oracle 函数 ODBC — ODBC Functions (Unified) ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC) OGG/Vorbis — oggvorbis openal — OpenAL Audio Bindings OpenSSL — OpenSSL Functions Oracle — Oracle 函数(已废弃) Oracle (PDO) — Oracle Functions (PDO_OCI) Output Control — Output Control 输出控制函数 OvrimosSQL — Ovrimos SQL Functions Paradox — Paradox File Access Parsekit — Parsekit Functions PCNTL — Process Control Functions PCRE — Perl 兼容正则表达式函数 PDF — PDF 函数 PDO — PDO Functions phar — Phar archive stream and classes PHP Options/Info — PHP Options&Information POSIX — POSIX Functions POSIX Regex — POSIX 扩展正则表达式函数 PostgreSQL — PostgreSQL 数据库函数 PostgreSQL (PDO) — PostgreSQL Functions (PDO_PGSQL) Printer — Printer Functions Program Execution — Program Execution Functions PS — PostScript document creation Pspell — Pspell Functions qtdom — qtdom Functions radius — Radius Rar — Rar Functions Readline — GNU Readline Recode — GNU Recode Functions RPMReader — RPM Header Reading 函数 runkit — runkit Functions SAM — SAM - Simple Asynchronous Messaging Satellite — Satellite CORBA client extension [deprecated] SCA — SCA Functions SDO — SDO Functions SDO DAS XML — SDO XML Data Access Service Functions SDO-DAS-Relational — SDO Relational Data Access Service Functions Semaphore — Semaphore, Shared Memory and IPC Functions SESAM — SESAM Database Functions Session PgSQL — PostgreSQL Session Save Handler Sessions — Session 会话处理函数 shmop — Shared Memory Functions SimpleXML — SimpleXML functions SNMP — SNMP 函数 SOAP — SOAP Functions Sockets — Socket Functions SPL — Standard PHP Library (SPL) Functions SQLite — SQLite Functions SQLite (PDO) — SQLite Functions (PDO_SQLITE) ssh2 — Secure Shell2 Functions Statistics — Statistics Functions Streams — Stream Functions Strings — String 字符串处理函数 SVN — Subversion 函数 SWF — Shockwave Flash Functions swish — Swish Functions Sybase — Sybase Functions TCP Wrappers — TCP Wrappers Functions tidy — Tidy Functions Tokenizer — Tokenizer Functions Unicode — Unicode Functions URLs — URL 函数 Variables — Variable 变量函数 Verisign Payflow Pro — Verisign Payflow Pro Functions vpopmail — vpopmail Functions W32api — W32api 函数 WDDX — WDDX Functions win32ps — win32ps Functions win32service — win32service Functions xattr — xattr Functions xdiff — xdiff Functions XML — XML 语法解析函数 XML-RPC — XML-RPC 函数 XMLReader — XMLReader functions XMLWriter — XMLWriter Functions XSL — XSL functions XSLT — XSLT Functions YAZ — YAZ Functions YP/NIS — YP/NIS Functions Zip — Zip File Functions Zlib — Zlib Compression Functions PHP at the Core: A Hacker's Guide to the Zend Engine The PHP 5 build system Extension structure Memory management Working with variables Writing functions Working with classes and objects Working with resources Working with INI settings Working with streams PDO Driver How-To Extension FAQs Zend Engine 2 API reference Zend Engine 1 The future: PHP 6 and Zend Engine 3 FAQ — FAQ:常见问题 一般信息 邮件列表 获取 PHP 数据库问题 安装 — 安装常见问题 编译问题 使用 PHP PHP 和 HTML PHP 和 COM PHP 和其它语言 从 PHP/FI 2 移植到 PHP 3 从 PHP 3 移植到 PHP 4 从 PHP 4 移植到 PHP 5 杂类问题 附录 PHP 及其相关工程的历史 Migrating from PHP 5.1.x to PHP 5.2.x Migrating from PHP 5.0.x to PHP 5.1.x 从 PHP 4 移植到 PHP 5 从 PHP 3 移植到 PHP 4 从 PHP/FI 2 移植到 PHP 3 PHP 的调试 配置选项 php.ini 配置选项 所支持时区列表 扩展库分类 函数别名列表 保留字列表 资源类型列表 支持的协议/封装协议列表 可用过滤器列表 所支持的套接字传输器(Socket Transports)列表 PHP 类型比较表 解析器代号列表 Userland Naming Guide 关于本手册 开放出版许可协议 函数索引 补充说明

2014-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除