扩展你的 PHP 之入门篇

2016-02-19 16:49 7 1 收藏

图老师小编精心整理的扩展你的 PHP 之入门篇希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - Web开发 】

  扩展你的PHP

  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,如下图:

  3、点 ok,选择An Empty Dll Project,点击完成。

  4、设置 Build 的 Active Configuration,选 Release:)

  5、Project-settings

  预定义标识. 整个如下:

  ZEND_DEBUG=0, COMPILE_DL_BINZY, ZTS=1, ZEND_WIN32, PHP_WIN32, HAVE_BINZY=1

  这个是包含路径,上面所提及的几个路径都可以加入。

  选择 Multithreaded DLL。

  取名时随便的,要 link php4ts.lib~~  

  o,忘了,别忘了加上 /Tc 的参数:

  6、写代码.

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  建个头,建个身体。

  Binzy.h

  

// Binzy Wu// 2004-4-9// PHP Extension    #if HAVE_BINZYextern zend_module_entry binzy_module_entry;#define binzy_module_ptr &binzy_module_entryPHP_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_BINZYZEND_GET_MODULE(binzy)#endiffunction_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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  

?php  hellobinzy();? 

  hoho~~~

  phpinfo();

  小结

  这算入门篇, 以后再一步步来~~. 慢慢深入, 有些我也不了解的。 偶是初学者。

来源:http://www.tulaoshi.com/n/20160219/1613255.html

延伸阅读
一、 基础 GDI的绘图函数基本上都是有状态的,所有的函数都要求一个HDC类型的句柄。这个HDC的获得有几个途径BeginPaint,GetWindowDC, GetDC.他们的参数都只需要一个HWND就差不多了。记得调用了BeginPaint后要调用EndPaint进行清理,调用GetWindowDC和GetDC后要调ReleaseDC进行清理。在MFC代码中常常遇到的CDC CPaintDC CWindowDC CClientD...
标签: Web开发
程序代码 window.onload = function(){ ... } . 访问HTML文档的元素,必须先载入文档对象模型(DOM)。当window.onload函数执行的时候,说明所有东西已经载入,包括图像和横幅等等。要知道较大的图片下载速度会比较慢,因此用户必须等待大图片下载完毕才能看到window.onload()执行的代码效果,这样就花费了很长的等待时间,这不是我们想要的。 ...
标签: Java JAVA基础
  或许有人觉得struts不容易学,似乎里面的一些概念让未接触过的人迷惑,MVC1、MVC2、模式……我写这篇文章是想让从来没有接触过struts的人,能有个简单的入门指引,当然,系统地学习struts是必要的,里面有很多让人心醉的东东,那是后话了。 该案例包括首页,用户登陆、网站向导页面。就这么简单,没有深奥的struts概念,主要...
前言 学习完了第一个java程序,之后就来系统的学习java。先从基础语法开始,这个语法你也可以理解为英语或是汉语里面的语法,只不过大家各有各的特点和区别。学习编程其实也是一个编程语言的学习过程。我们在学习英语的时候都说,要想学习好英语一定要动口说,那么在学习编程的时候你一定要动手写。编程无非就是一个写代码的过程,首要就是你...
标签: SQLServer
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是...

经验教程

633

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部