phpembed
※事前に--enable-embedでビルドしたPHPが必要
PHPスクリプトを実行するC++プログラムを作成
#include <sapi/embed/php_embed.h>
int main(int argc, char* argv[]) {
PHP_EMBED_START_BLOCK(argc, argv);
zend_file_handle script;
script.type = ZEND_HANDLE_FP;
script.filename = (char*)"a.php";
script.opened_path = NULL;
script.free_filename = 0;
script.handle.fp = fopen(script.filename, "rb");
zend_try {
zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 1, &script)
} zend_catch {
} zend_end_try();
PHP_EMBED_END_BLOCK();
return 0;
}
以下を実行してコンパイル
g++ `/opt/php/bin/php-config --includes` -L/opt/php/lib -lphp5 test.cc
コンパイルされたプログラムを実行するとC++側でPHPスクリプトを実行した結果が出力される