用php調用C函數,常通過調用系統命令函數的方式來實現,其中主要有system()和exec()兩種,還有一種是passthru(),這種方法沒有嘗試,暫不作討論。
system()方法輸出並返回最後一行的shell結果。
exec()不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
相同點是都可以獲取命令執行的狀態碼。
PHP調用C函數方法為:
如果C函數為一個簡單的hello world,文件名稱為hello.c。
#include <stdio.h>
main()
{
printf("hello world!");
}
注意:如果多行輸出要用"<br>"不要"\n"
首先gcc編譯成 gcc hello.c -o hello
然後再php函數中寫一個函數:
<?php
$r = exec("./hello");
echo $r;
?>
如果是exec,如果在浏覽器中執行結果的話,會出現1個hello world(echo $r產生),如果用system來調用的話,則會出現兩個hello world!(./hello和echo $r產生)。
當然還可以通過php擴展的方式來實現php調用c函數!