有类似Python的东西吗';PHP的ctype是什么?无需编写扩展就可以访问库?

有类似Python的东西吗';PHP的ctype是什么?无需编写扩展就可以访问库?,php,c,shared-libraries,Php,C,Shared Libraries,Python必须访问库。在PHP中,您可以为所有内容编写扩展。像libgd这样的流行扩展几乎无处不在 有没有任何扩展可以像Python的ctypes那样工作,让您无需编写PHP扩展就可以访问库?我认为没有这样的东西:在PHP中,使用库的“标准”方式是在库周围编写一个包装器,将库的函数导出到PHP (但也许可以编写一个扩展来实现ctypes的功能?--不确定,但可能是^^^)您正在寻找的。有一个PHP扩展(讽刺?)名为。FFI代表,这是一种语言调用用另一种语言编写的库的通用术语。我不知道有什么办法

Python必须访问库。在PHP中,您可以为所有内容编写扩展。像libgd这样的流行扩展几乎无处不在


有没有任何扩展可以像Python的ctypes那样工作,让您无需编写PHP扩展就可以访问库?

我认为没有这样的东西:在PHP中,使用库的“标准”方式是在库周围编写一个包装器,将库的函数导出到PHP


(但也许可以编写一个扩展来实现ctypes的功能?--不确定,但可能是^^^)

您正在寻找的。

有一个PHP扩展(讽刺?)名为。FFI代表,这是一种语言调用用另一种语言编写的库的通用术语。

我不知道有什么办法。但是你可以为你想要的库构建一个扩展。

PHP7.3将有FFI(外部函数接口)。

这绝对是可能的,尽管我在这里看到了一些非常严重的安全问题。众所周知,初学者PHP程序员无法控制其应用程序的所有方面(一半有经验的程序员也是如此)。如果有人设法运行一些在PHP中使用ctypes的注入代码,包括能够加载外部库,那又有什么意义呢。所有PHP的安全模型(如果曾经有过这样的事情)都会被破坏。上一个版本是0.3(alpha)2004-01-20。这和我的想法不完全一样。但至少我不必自己编写扩展。更多信息:注意,从PHP7.3开始,它仍然标记为实验性的。更准确的说法是,从PHP7.3开始,FFI可供一般使用。对于那些关注PECL扩展并认为“这看起来过时了”的人来说,这是因为FFI PECL扩展作为自己的扩展被合并到核心产品中。由于它包含在PHP中(例如通过Debian apt之类的包管理器),因此没有理由再单独维护PECL扩展。我强烈建议将对FFI的访问限制在PHP CLI上,因为它可以用来轻松地隔离PHP。