从设计的角度来看,我想知道解决这个问题的最佳实践是什么:
- 我有一个网站,目前显示由谷歌地图生成的"图像"。
- 该网站运行在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/pngrnrn");
)之前至少发送一个Content-Type HTTP头。
使用MySQL C API
3)将此过程生成的图像返回给PHP程序,以便在浏览器中显示。
你可能不需要返回任何东西给PHP。只需在HTML代码中嵌入一个指向CGI应用程序的链接,例如
<img src="http://example.com/cgi-bin/my-map-tool?lat=+42.5;long=-0.5" />