Linux/FreeBSD下用C语言开发PHP的so扩展模块例解

Show All   1 2 3 4 5 6 7

至此,我们完成了所有C 代码的编写,本模块实现还需要用到几个码表文件,比如gb2b5.tab,uni2gb.tab之类的,这些码表文件我就不提供了,可以查一些文档如何生成,网上也有很多这样的tab码表文件下载。

接下来,我们就可以进行测试和编译了

回到php源码的根目录,运行命令
#./buildconf
#./configure –with-toplee=shared ……
#./make
#./make install

此时,就完成了模块往php里面的编译,由于加上了shared参数,toplee模块将编译后生成 toplee.so,可以在php.ini或者extensions.ini文件里面使用extension=toplee.so来调用,也可以在php中使用dl()函数动态调用,然后就可以在php里面使用之前我们定义好的几个函数接口了。

因Michael技术实力有限,本文有不正确之处请高手指正,也希望通过本文起到抛砖引玉之效果,让更多的php爱好者一起来分享个人的宝贵经验!

Show All   1 2 3 4 5 6 7
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
16 Responses
  1. Ken says:

    不知道楼主对 Python + TurboGears(或Django) 看法如何,感觉 PHP 的代码和 HTML 源码混在一起看起来很累,页面和代码没有分离的很好。

  2. Michael says:

    我对python没有什么研究,基本不太了解,但是知道这是个很不错的语言,有机会想了解一下。
    php代码和html的分离已经在基于php的架构中广泛使用,著名的有编译到php里面的smarty模板引擎,还要用php来写的PHPLib模板引擎等,这些都可以轻松的实现html和php代码的分离,比如我现在用的这个wordpress Blog程序就是应用了模板引擎,可以随意的更换皮肤(风格)和更换界面的语言版本。

  3. chenn says:

    看了你的几篇文章,写的挺不错的,尤其是”说说大型高并发高负载网站的系统架构”,与我们的服务系统采用的方案比较类似,收获不少, 在此表示感谢:).

  4. kING says:

    “编译到php里面的smarty模板引擎”
    有编译版本的SMARTY??

  5. Michael says:

    呵呵,笔误,当时脑子里面想到了早期研究过的一个PHP的Cache引擎,好像是俄罗斯人写的一个编译到php里面的cache引擎。smarty不用编译,也没有编译版本的,如果有一天php语言可以强到可以使用php本身编写扩展的时候,就能把smarty编译进去了。。。:)

  6. cqf820 says:

    不错,写的蛮详细,这文章找了好久。先去实验下
    谢谢

  7. cqf820 says:

    请教个问题: 如果C那边给我提供了一个xxx.so文件,我用php调用xxx.so的接口,且传递参数过去, 这个该怎么做。
    或者需要把C代码都放到xxx.c里面去.

  8. Michael says:

    [Comment ID #2386 Will Be Quoted Here]

    需要把代码放进去,就是我范例里面的toplee.c文件,也可以自己加一些.c文件进去,然后在toplee.c里面调用头件。

  9. says:

    俊哥你好,我今天第一次您的bolg,感觉很不错。
    由于工作需要开始做php。看到有smarty的讨论,我说两句,smarty是个很重要的技术,我刚从java转到php的时候要不是看到它,早就崩溃了(页面和代码混合编写)。
    虽然这篇文章是06年的,但相关内容我最近才开始研究,打算自己试试,遇到问题还请赐教。

  10. dyfire says:

    楼主好文章啊,写的很全,非常感谢,大胡子~:)

  11. Michael says:

    [Comment ID #21976 Will Be Quoted Here]

    呵呵,希望对您能有一些借鉴的帮助,谢谢关注!:)

  12. nogroup says:

    如果我的php是Freebsd下ports安装的,就无法开发扩展了吗?

  13. 网页游戏 says:

    如果我会php的话我就用cms模版好好改一个网页游戏门户网站出来,php真的太强大了

  14. 网页游戏 says:

    c语言真的很不错哈 ,呵呵

  15. zhou says:

    php中如何向so库中传递和接收struct 可以发个实例给我吗

  16. zhou says:

    我的QQ是349215180加我QQ也可以啊 希望你能尽快的回答我

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image