从php调用.so共享库对象

时间:2012-12-10 18:03:40

标签: php shared-libraries

我有一个静态链接的.so我应该可以从中调用一个函数,它的第一个参数是要处理的数据的内存地址。我有一个用Pascal编写的示例调用程序,但我想知道的是,是否可以从PHP调用此库函数?如果是这样,怎么样? 注意:这个.so不是作为PHP扩展名编写的

2 个答案:

答案 0 :(得分:1)

由于我想要使用的库不是作为PHP扩展编写的,我必须在C中编写一个包装器扩展,创建一个PHP方法,该方法接受PHP参数并在转换后使用参数调用库函数(例如使用指针作为内存地址。)

答案 1 :(得分:0)

要在运行时加载PHP扩展,请使用dl()函数。

if (!extension_loaded('myextension')) {
   dl('myextension.so');
}

然后,您应该能够使用该库中的对象/函数。

要记住的另一件事是需要启用php.ini中的 enable_dl 指令。