如何编写可以修改PHP解释器内部的自定义PHP扩展?

时间:2011-11-14 13:45:47

标签: php c unix cgi php-extension

是否可以编写PHP扩展(UNIX,CGI SAPI),我可以:

  • 重新定义PHP函数的实现(就像使用mail()一样):许多PHP软件使用标准的mail()函数 - 我无法改变它,因为客户想要使用它,故事结束...... - 但我需要重写它,因为在chroot()的环境中,不可能产生sendmail进程 - 我需要套接字级通信,这不是标准的SMTP或btw)
  • 在执行PHP脚本的实际解析/执行之前,
  • “停止”PHP解释器(所以我可以为我的其他事做),但在完成所有初始化工作(扩展加载,ini文件解析等)之后,让我们称它为“在php脚本执行挂钩之前”或者左右:)
  • 强制解析INI文件(由我生成/定义路径),这可以重新定义之前设置的所有设置(如果它完全是)

目前我已经修改了PHP源代码本身,但这很丑陋,也许很危险,如果我可以将它作为PHP扩展来实现,那就好了,至少看起来像PHP扩展:)我不需要修改“核心PHP”......

提前多多感谢!

2 个答案:

答案 0 :(得分:3)

网上有很多关于Howto的文章和参考资料,解释了基本的Hello World及其他内容。

祝你好运。

铜 罗马

答案 1 :(得分:2)

关于第2点和第3点:

  • php.ini选项auto_prepend_file的形式已经存在“php脚本执行挂钩之前”。
  • 您可以使用.user.ini覆盖特定的ini-options