当前位置: 首页 > news >正文

360网站建设价位大连网站排名优化价格

360网站建设价位,大连网站排名优化价格,中国源码网游戏开服,钓鱼网站实施过程PHP程序的执行流程为了以后能开发PHP扩展#xff0c;就一定要了解PHP的执行顺序。这篇文章就是为C开发PHP扩展做铺垫。Web环境我们假设为Apache。在编译PHP的时候,为了能够让Apache支持PHP#xff0c;我们会生成一个mod_php5.so的模块。Apache加载这个模块#xff0c;在url访…PHP程序的执行流程为了以后能开发PHP扩展就一定要了解PHP的执行顺序。这篇文章就是为C开发PHP扩展做铺垫。Web环境我们假设为Apache。在编译PHP的时候,为了能够让Apache支持PHP我们会生成一个mod_php5.so的模块。Apache加载这个模块在url访问.php文件的时候就会转给mod_php5.so模块来处理。这个就是我们常说的SAPI。英文名字是Server Application Programming Interface。SAPI其实是一个统称其下有 ISAPICLI SAPICGI等。有了它就可以很容易的跟其他东西交互比如APACHE,IIS,CGI等。Apache启动后会将 mod_pho5.so 模块的hook handler注册进来当Apache检测到访问的url是一个php文件时这时候就会把控制权交给SAPI。进入到SAPI后首先会执行 sapi/apache/mod_php5.c 文件的 php_init_handler 函数这里摘录一段代码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 ZTStsrm_startup(1, 1, 0, NULL);#endifsapi_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}该函数主要调用两个函数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 创建一个 sapi_globals_struct 结构体。*sapi_globals_struct 保存了Apache请求的基本信息如服务器信息Header编码等。sapi_startup 执行完毕后再执行 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 内容太多这里介绍一下大致的作用初始化 zend_utility_functions 结构.这个结构是设置zend的函数指针,比如错误处理函数,输出函数,流操作函数等.设置环境变量.加载php.ini配置.加载php内置扩展.写日志.注册php内部函数集.调用 php_ini_register_extensions, 加载所有外部扩展开启所有扩展一些清理操作.重点说一下 3,4,7,8 加载php.ini配置if (php_init_config(TSRMLS_C) FAILURE) {return FAILURE;}php_init_config 函数会在这里检查所有php.ini配置并且找到所有加载的模块添加到 php_extension_lists 结构中。加载php内置扩展调用 zend_register_standard_ini_entries 加载所有php的内置扩展如array,mysql等。调用 php_ini_register_extensions ,加载所有外部扩展。main/php_ini.cvoid 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 函数遍历 extension_lists 执行会调用函数 php_load_php_extension_cbstatic void php_load_zend_extension_cb(void *arg TSRMLS_DC){zend_load_extension(*((char **) arg));}该函数最后调用if ((module_entry zend_register_module_ex(module_entry TSRMLS_CC)) NULL) {DL_UNLOAD(handle);return FAILURE;}将扩展信息放到 Hash 表 module_registry 中Zend/zend_API.cif (zend_hash_add(module_registry, lcname, name_len1, (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;}最后 zend_startup_modules(TSRMLS_C) 对模块进行排序并检测是否注册到 module_registry HASH表里。zend_startup_extensions(); 执行 extension-startup(extension); 启动扩展。
http://wiki.neutronadmin.com/news/41940/

相关文章:

  • 自己做的网站不备案行吗网站文案设计
  • 网站推广服务好公司排名湖北勘察设计协会网站
  • 即墨网站制作wordpress后台总是404
  • 湘潭网站开发公司建设网络强国要有什么
  • wordpress 相册模式seo搜索优化排名
  • c 网站开发需要学什么软件网站建设情况
  • 做网站百科国外设计导航网站大全
  • 湖北手机网站建设进入公众号会有记录吗
  • 网站包503错误电子商务网站建设规划书范文
  • 如何分析网站用户体验织梦网站模板响应式
  • 高明区住房和城乡建设局网站免费订单管理app
  • 网站建设团队架构海尔的网络营销模式
  • 建公司网站要多少钱深圳网站制作公司流程图
  • 西安网站建设网络推广wordpress网页版入口看文
  • 太原广告公司网站建设wordpress让超链接不显示蓝字
  • 企业营销网站建设规划wordpress调用标签云
  • 汽车门户网站源码国外开源商城系统
  • 淮安市建设工程安全监督站网站泉州网站建站公司
  • 旅行社营业网点可以做网站吗lol中国战队
  • 2015网站备案没下来人力资源公司注册条件
  • 兰州财经大学网站开发与维护邹城网站建设哪家好
  • 网站建设软著网站demo制作
  • 如何给网站做关键字wordpress的母版页
  • 购物网站开发的背景与意义免费自助建站网站一览自助建站平台
  • 服装网上商城网站建设报告20最快的加载wordpress主题
  • 专业婚纱摄影网站制作哪些购物网站有做拼团活动
  • 网站源代码怎么放入 dede网站后台wordpress标签函数
  • 怎样网站制作设计浙江省网站建设与管理试卷
  • 做摄影网站的目的谷歌广告优化师
  • 给设计网站做图是商用吗中文域名交易网站