随笔分类 - php源码分析
摘要:version:5.6.21 file:Zend/zend_compile.c line:7055-7152 解析 该函数是在语法解析的时候,编译器扫描到namespace xxx;namespace xxx{};namespace {};三种形式的时候调用 zend_do_begin_namesp
阅读全文
摘要:逆波兰记号计算器【文件名rpcalc.y】%{ #define YYSTYPE double #include #include #include int yylex (void); void yyerror (char const *); %} %token NUM %% input: /* empty */ | input line ; line: ...
阅读全文
摘要:编译,运行,结果 [root@bhu les5]# re2c -o demo.c -c -t demo_def.h demo.l [root@bhu les5]# gcc -o demo demo.c -g [root@bhu les5]# ./demo "<?php 3ee344SDEFeee@#
阅读全文
摘要:在PHP源码中,我们可以见到诸如PHPAPI ZEND_API TSRM_API等xxx_API(当然还有其他格式的)这样的宏 关于它们的定义都是类似于 一、预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏。需要针对gcc编写代码时, 可以使用该宏进行条件编译。
阅读全文
摘要:了解过PHP内核的同学都知道,PHP的一次请求的生命周期 1.启动Apache后,PHP解释程序也随之启动。PHP调用各个扩展的MINIT方法,从而使这些扩展切换到可用状态 2.当一个页面请求发生时,SAPI层将控制权交给PHP层。于是PHP设置了用于回复本次请求所需的环境变量。同时,它还建立一个变
阅读全文
摘要:DBA 数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称 DBMS 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS
阅读全文
摘要:在PHP源码中,我们经常会看到很多函数前面有个PHPAPI,但这是什么呢?于是我在php源码/main/php.h中找到了它的定义#ifdef PHP_WIN32# include "tsrm_win32.h"# include "win95nt.h"# ifdef PHP_EXP...
阅读全文
摘要:我们经常使用echo phpinfo();查看php的配置信息,但是大家知道里面的css样式是怎么来的吗?我们查看源码(php源码/ext/standard/css.c)PHPAPI void php_info_print_css(TSRMLS_D) /* {{{ */{ PUTS("body...
阅读全文
摘要:base64_encode编码规律分析字符串长度除以3向上取整乘以4等于编码后的字符串长度ceil(strlen($string)/3)*4 = strlen(base64_encode($string));例如base64_encode("abcd") == "YWJjZA==" (2*4=8)如...
阅读全文