最佳实践:在PHP网站中显示C程序生成的图像


Best practice: Displaying image generated by C program in PHP website

从设计的角度来看,我想知道解决这个问题的最佳实践是什么:

  • 我有一个网站,目前显示由谷歌地图生成的"图像"。
  • 该网站运行在Linux下的Apache web服务器上。
  • 我想用我自己的程序(my program.c)生成我自己的"图像",而不是谷歌地图库。
  • 我的程序(my_program.c)是用c写的。我可以选择将它安装到与Apache web服务器相同的机器上,或者单独的机器上。

我需要:1)以某种方式调用这个C程序,或者最好是从PHP代码中调用这个程序中的函数(my_program.c),2)通过C程序访问MySQL数据库,并执行一些计算,最终呈现所需的图像3)将此过程的结果(生成的图像)返回给PHP程序,以便在浏览器中显示。

任何提示将不胜感激。谢谢。

1)从PHP代码中调用这个C程序:

将编译好的程序放到/cgi-bin文件夹中,并通过查询字符串从PHP传递参数。确保你的代码在任何图像数据(例如,printf("Content-Type: image/png'r'n'r'n");)之前至少发送一个Content-Type HTTP头。

2)通过C程序访问MySQL数据库:

使用MySQL C API

3)将此过程生成的图像返回给PHP程序,以便在浏览器中显示。

你可能不需要返回任何东西给PHP。只需在HTML代码中嵌入一个指向CGI应用程序的链接,例如

<img src="http://example.com/cgi-bin/my-map-tool?lat=+42.5;long=-0.5" />