一位朋友正在向我展示一个使用COM对象和SOAP接口创建的API。他向我展示了它在Windows上的php是如何工作的,但是我很怀疑它是否可以在linux或任何其他非Windows操作系统上实现。谢谢!
答案 0 :(得分:5)
PHP中的COM库是Windows only extension.
的一部分答案 1 :(得分:3)
取决于COM对象的运行位置。 Linux框可以将COM对象(ActiveX)提供给Windows客户端浏览器。 Linux框可以对Windows框上运行的COM对象进行SOAP调用。
但是如果你想在Linux上运行COM对象,至少需要为Linux重建它,并且可能需要更多的Linuxy(一个.so)。可能任何PHP COM支持都没有移植到Linux版本,但您可以通过C绑定调用.so文件。
答案 2 :(得分:2)
据我所知,COM是特定于Windows的(虽然WINE或Mono可能会在Linux下运行)。因此,如果将COM用作客户端代码的一部分,那么您可能会运气不好。
如果COM对象在Windows服务器上运行并提供SOAP接口,那么您应该没问题 - 只需通过HTTP连接到Windows机器并发出SOAP请求。服务器无关紧要。
答案 3 :(得分:1)
如果你朋友的演示应用程序是通过SOAP接口调用COM API,那么为什么你不能在非windows平台上访问这些功能的原因应该很少。
答案 4 :(得分:1)
不,你无法从linux / unix访问com对象。只有赢得机器。
可能的解决方案是将另一个Web服务器放在将与COM对象通信的Windows机器上,而来自linux机器的php将与Windows机器上的php通信或在该COM周围构建一个Web服务?
答案 5 :(得分:0)
可能正在愚弄你可以“实现”的葡萄酒......但我怀疑它值得努力......
我想你最好的选择是运行一个Windows服务器,然后找出一些与它交互的方式,最好通过http ...
如果api已经提供了soap接口,那么就使用它(就像kev所说的那样),否则你应该开发类似的东西(比如Chells说的),或者更简单的东西,比如普通的自制get / post页面。 ..