<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[token0801的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/token0801</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; token0801]]></copyright><item><title><![CDATA[PHP内核源码阅读过程（八）]]></title><link>https://blog.csdn.net/token0801/article/details/89471211</link><guid>https://blog.csdn.net/token0801/article/details/89471211</guid><author>token0801</author><pubDate>Tue, 23 Apr 2019 17:22:06 +0800</pubDate><description><![CDATA[php_module_startup执行完成后，接下来就执行do_cli, php的主要执行逻辑都在这里。


	zend_first_try {
			exit_status = do_cli(argc, argv);
	} zend_end_try();

do_cli已经来就是检查参数的2个大循环，这里不讨论这些参数，我们以最简单的启动方式来讲：php xxx.php

一、打开脚本文件
...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（七）]]></title><link>https://blog.csdn.net/token0801/article/details/89470785</link><guid>https://blog.csdn.net/token0801/article/details/89470785</guid><author>token0801</author><pubDate>Tue, 23 Apr 2019 13:58:19 +0800</pubDate><description><![CDATA[继续讲php_module_startup

一、检查废弃的ini配置，如果有设置，则报警或报错


	{
		struct {
			const long error_level;
			const char *phrase;
			const char *directives[17]; /* Remember to change this if the number of directives...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（六）]]></title><link>https://blog.csdn.net/token0801/article/details/89466151</link><guid>https://blog.csdn.net/token0801/article/details/89466151</guid><author>token0801</author><pubDate>Tue, 23 Apr 2019 13:38:13 +0800</pubDate><description><![CDATA[一、php_startup_auto_globals 初始化常用的全局变量


void php_startup_auto_globals(void)
{
	zend_register_auto_global(zend_string_init_interned("_GET", sizeof("_GET")-1, 1), 0, php_auto_globals_create_get);
	ze...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（五）]]></title><link>https://blog.csdn.net/token0801/article/details/89448927</link><guid>https://blog.csdn.net/token0801/article/details/89448927</guid><author>token0801</author><pubDate>Mon, 22 Apr 2019 17:57:06 +0800</pubDate><description><![CDATA[继续讲php_module_startup 的执行

一、setlocale设置区域化信息

setlocale(LC_CTYPE, "");

这个函数调用的含义是 字符串的分类和转换使用区域化设置：如函数strtoupper

二、tzset 时区设置

此函数会将环境变量 TZ 读出，作为系统的时区。

三、zend_register_list_destructors_ex 初始化指针类...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（四）]]></title><link>https://blog.csdn.net/token0801/article/details/89404868</link><guid>https://blog.csdn.net/token0801/article/details/89404868</guid><author>token0801</author><pubDate>Fri, 19 Apr 2019 17:41:19 +0800</pubDate><description><![CDATA[这次来讲讲zend_startup

int zend_startup(zend_utility_functions *utility_functions, char **extensions)

其第一个参数是一些基本的函数指针


	zuf.error_function = php_error_cb;
	zuf.printf_function = php_printf;
	zuf.write...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（三）]]></title><link>https://blog.csdn.net/token0801/article/details/89393699</link><guid>https://blog.csdn.net/token0801/article/details/89393699</guid><author>token0801</author><pubDate>Fri, 19 Apr 2019 16:13:48 +0800</pubDate><description><![CDATA[int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_modules, uint32_t num_additional_modules);



一、PHP_OS 操作系统类型名字

php_os = PHP_OS;

PHP_OS是由configure生成的，其生成代码如下


PHP_OS=`...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（二）]]></title><link>https://blog.csdn.net/token0801/article/details/89097762</link><guid>https://blog.csdn.net/token0801/article/details/89097762</guid><author>token0801</author><pubDate>Tue, 09 Apr 2019 10:33:12 +0800</pubDate><description><![CDATA[接上篇，这里一开始是sapi的初始化

1. sapi_startup函数


SAPI_API void sapi_startup(sapi_module_struct *sf)
{
	sf-&gt;ini_entries = NULL;
	sapi_module = *sf;

	sapi_globals_ctor(&amp;sapi_globals);

	reentrancy_startu...]]></description><category></category></item><item><title><![CDATA[PHP内核源码阅读过程（一）]]></title><link>https://blog.csdn.net/token0801/article/details/89000593</link><guid>https://blog.csdn.net/token0801/article/details/89000593</guid><author>token0801</author><pubDate>Wed, 03 Apr 2019 18:05:24 +0800</pubDate><description><![CDATA[最近在阅读PHP的内核，所以把过程记下来。

本人使用cli方式启动php，版本是7.3.3， 调试平台是centos6.5。

cli方式启动的入口位于 sapi/cli/php_cli.c main

1. 函数save_ps_args

这个函数是进来后调用的第一个函数，原型：char** save_ps_args(int argc, char** argv)

其功能是保存命令行参数，...]]></description><category></category></item></channel></rss>