欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

PHP程序執(zhí)行的原理是什么

這篇文章給大家介紹PHP程序執(zhí)行的原理是什么,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在寧洱等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站建設、成都做網(wǎng)站 網(wǎng)站設計制作按需制作網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,營銷型網(wǎng)站建設,外貿(mào)營銷網(wǎng)站建設,寧洱網(wǎng)站建設費用合理。

static void php_init_handler(server_rec *s, pool *p)
{
    register_cleanup(p, NULL, (void (*)(void *))apache_php_module_shutdown_wrapper, (void (*)(void *))php_module_shutdown_for_exec);
    if (!apache_php_initialized) {
        apache_php_initialized = 1;
        #ifdef ZTS
        tsrm_startup(1, 1, 0, NULL);
        #endif
        sapi_startup(&apache_sapi_module);
        php_apache_startup(&apache_sapi_module);
    }
    #if MODULE_MAGIC_NUMBER >= 19980527
    {
        TSRMLS_FETCH();
        if (PG(expose_php)) {
            ap_add_version_component("PHP/" PHP_VERSION);
        }
    }
    #endif
}

該函數(shù)主要調(diào)用兩個函數(shù):sapi_startup(&apache_sapi_module); php_apache_startup(&apache_sapi_module);

SAPI_API void sapi_startup(sapi_module_struct *sf)
{
    sf->ini_entries = NULL;
    sapi_module = *sf;
    .................
    sapi_globals_ctor(&sapi_globals);
    ................

    virtual_cwd_startup(); /* Could use shutdown to free the main cwd but it would just slow it down for CGI */

    ..................

    reentrancy_startup();
}

sapi_startup創(chuàng)建一個 sapi_globals_struct結(jié)構(gòu)體。sapi_globals_struct保存了Apache請求的基本信息,如服務器信息,Header,編碼等。sapi_startup執(zhí)行完畢后再執(zhí)行php_apache_startup。

static int php_apache_startup(sapi_module_struct *sapi_module)
{
    if (php_module_startup(sapi_module, &apache_module_entry, 1) == FAILURE) {
        return FAILURE;
    } else {
        return SUCCESS;
    }
}

php_module_startup 內(nèi)容太多,這里介紹一下大致的作用:

1. 初始化zend_utility_functions 結(jié)構(gòu).這個結(jié)構(gòu)是設置zend的函數(shù)指針,比如錯誤處理函數(shù),輸出函數(shù),流操作函數(shù)等.

2. 設置環(huán)境變量.

3. 加載php.ini配置.

4. 加載php內(nèi)置擴展.

5. 寫日志.

6. 注冊php內(nèi)部函數(shù)集.

7. 調(diào)用 php_ini_register_extensions,加載所有外部擴展

8. 開啟所有擴展

9. 一些清理操作.

重點說一下 3,4,7,8

加載php.ini配置

if (php_init_config(TSRMLS_C) == FAILURE) {
    return FAILURE;
}

php_init_config函數(shù)會在這里檢查所有php.ini配置,并且找到所有加載的模塊,添加到php_extension_lists結(jié)構(gòu)中。

加載php內(nèi)置擴展

調(diào)用 zend_register_standard_ini_entries加載所有php的內(nèi)置擴展,如array,MySQL等。

調(diào)用 php_ini_register_extensions,加載所有外部擴展

main/php_ini.c

void php_ini_register_extensions(TSRMLS_D)
{
    zend_llist_apply(&extension_lists.engine, php_load_zend_extension_cb TSRMLS_CC);
    zend_llist_apply(&extension_lists.functions, php_load_php_extension_cb TSRMLS_CC);

    zend_llist_destroy(&extension_lists.engine);
    zend_llist_destroy(&extension_lists.functions);
}

zend_llist_apply函數(shù)遍歷extension_lists 執(zhí)行回調(diào)函數(shù)php_load_php_extension_cb

static void php_load_zend_extension_cb(void *arg TSRMLS_DC)
{
    zend_load_extension(*((char **) arg));
}

該函數(shù)最后調(diào)用

if ((module_entry = zend_register_module_ex(module_entry TSRMLS_CC)) == NULL) {
    DL_UNLOAD(handle);
    return FAILURE;
}

將擴展信息放到 Hash表module_registry中,Zend/zend_API.c

if (zend_hash_add(&module_registry, lcname, name_len+1, (void *)module, sizeof(zend_module_entry), (void**)&module_ptr)==FAILURE) {
    zend_error(E_CORE_WARNING, "Module \'%s\' already loaded", module->name);
    efree(lcname);
    return NULL;
}

    

關(guān)于PHP程序執(zhí)行的原理是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)頁題目:PHP程序執(zhí)行的原理是什么
路徑分享:http://aaarwkj.com/article36/ihpppg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)移動網(wǎng)站建設、服務器托管、微信小程序、定制網(wǎng)站ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設
中日韩一二三四区在线看| 久久综合亚洲一区二区三区色| 亚洲欧美丝袜清纯另类| 欧美日韩男女性生活视频| 国产av一区二区三区中文| 嫩草网站国产精品一区二| 日韩av大片一区二区三区| 一区二区三区欧美久久| 日韩最新人妻在线不卡| 大片天天看菲色亚洲黄色| 久久精品国产一区二区三区91| 黑人巨大精品欧美一区免| 三级黄色片免费久久久| 中文字幕一区二区三区不卡日日| 日本不卡在线观看欧美精品| 亚洲少妇熟女一区二区三区| 国产日产精品久久一区| 国产精品国产三级区别| 国产成人亚洲综合色影视| 在线观看成人激情视频| 亚洲国产日韩欧美视频| 五月婷婷丁香综合中文字幕| 国产亚洲精品麻豆一区二区| 国内在线免费观看av| 国产精品xxxx国产精品| 日韩欧美在线观看一区二区| 在线麻豆国产传媒免费| 国产av一区二区三区日韩接吻| 国产成人精品久久久亚洲| 99亚洲综合一区二区三区| 国产蜜臀视频一区二区三区| 国产一区二区三区精品久久| 中文字幕二区三区av| 国产我和子的乱视频亲生| 夜夜春久久天堂亚洲精品| 亚洲免费视频一二三区| 久久精品国产普通话对白| 亚洲欧洲成熟熟女妇专区乱| 成人黄色一级电影免费看| 亚洲激情人妻小说网| 九九热在线视频观看最新|