热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

让PHP更有魅力,扩展你的PHP之入门篇

文章标题:让PHP更有魅力,扩展你的PHP之入门篇。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  PHP以方便快速的风格迅速在web系统开发中占有了重要地位. PHP本身提供了丰富的大量的函数及功能. 长话短说. 我们看看我们如何进行扩展.
  
  扩展的3种方式
  External Modules
  Built-in Modules
  The Zend Engine
  3 种方式的优缺点可参见 PHP 手册:http://www.php.net/manual/en/zend.possibilities.php
  
  extension dll
  1、首先我们去下个 php 的 source. 可以看到有以下几个重要的目录。ext,main,TSRM,Zend,另外我们可能还需要 bindlib_w32(需要你从 cvs 上下),及 PHP 目录下的 php4ts.lib。
  
  2、打开 VC,新建一个 Win32 Dynamic-Link Library,如下图:
  
  
[[The No.1 Picture.]]

  3、点 ok,选择“An Empty Dll Project”,点击完成。
  
  4、设置 Build 的 Active Configuration,选 Release:)
  
  
[[The No.2 Picture.]]

  5、Project->settings
  
[[The No.3 Picture.]]

  预定义标识. 整个如下:
  
  ZEND_DEBUG=0, COMPILE_DL_BINZY, ZTS=1, ZEND_WIN32, PHP_WIN32, HAVE_BINZY=1
  
  
[[The No.4 Picture.]]

  这个是包含路径,上面所提及的几个路径都可以加入。
  
[[The No.5 Picture.]]

  选择 Multithreaded DLL。
  
[[The No.6 Picture.]]

  取名时随便的,要 link php4ts.lib~~
  o,忘了,别忘了加上 /Tc 的参数
  
[[The No.7 Picture.]]

  6、写代码.
  
  建个头,建个身体。
  Binzy.h
  
  // Binzy Wu
  // 2004-4-9
  // PHP Extension
  
  #if HAVE_BINZY
  extern zend_module_entry binzy_module_entry;
  #define binzy_module_ptr &binzy_module_entry
  
  PHP_FUNCTION(hellobinzy); //
  PHP_MINFO_FUNCTION(binzy); //
  #endif
  
  Binzy.c
  
  // Binzy Wu
  // 2004-4-9
  // PHP Extension
  
  #include "php.h"
  #include "Binzy.h"
  
  #if HAVE_BINZY
  
  #if COMPILE_DL_BINZY
  ZEND_GET_MODULE(binzy)
  #endif
  
  function_entry binzy_functions[] = {
  PHP_FE(hellobinzy, NULL)
  {NULL, NULL, NULL}
  };
  
  zend_module_entry binzy_module_entry = {
  STANDARD_MODULE_HEADER,
  "binzy", binzy_functions, NULL, NULL, NULL, NULL, PHP_MINFO(binzy), NO_VERSION_YET, STANDARD_MODULE_PROPERTIES
  };
  
  PHP_MINFO_FUNCTION(binzy)
  {
  php_info_print_table_start();
  php_info_print_table_row(2, "Binzy Extension", "Enable");
  php_info_print_table_end();
  }
  
  PHP_FUNCTION(hellobinzy)
  {
  zend_printf("Hello Binzy");
  }
  
  #endif
  
  7、编译,修改 php.ini,restart apache,写个 php
  
    hellobinzy();
  ?>
  
[[The No.8 Picture.]]

  phpinfo();
  
[[The No.9 Picture.]]

  
  小结
  这算入门篇, 以后再一步步来~~. 慢慢深入, 有些我也不了解的。 偶是初学者。
  
推荐阅读
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • 如何在PHPCMS V9中实现多站点功能并配置独立域名与动态URL
    本文介绍如何在PHPCMS V9中创建和管理多个站点,包括配置独立域名、设置动态URL,并确保各子站能够正常运行。我们将详细讲解从新建站点到最终配置路由的每一步骤。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 探讨了小型企业在构建安全网络和软件时所面临的挑战和机遇。本文介绍了如何通过合理的方法和工具,确保小型企业能够有效提升其软件的安全性,从而保护客户数据并增强市场竞争力。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
author-avatar
qt70ewi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有