(PECL bcompiler >= 0.4)
bcompiler_write_exe_footer — Записывает позицию начала байткода и терминирующий символ в конец файла
$filehandle
, int $startpos
) : boolEXE-файл (исполняемый) состоит из трех частей:
Для получения необходимого исполняемого кода вам надо скомпилировать встраиваемую версию phpe.c, расположенную в директории examples/embed в дереве исходных кодов bcompiler.
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Пример #1 Пример использования bcompiler_write_exe_footer()
<?php
/* создаем файл (example.exe) */
$fh = fopen("example.exe", "w");
/* 1) записываем исполняемый код (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);
/* 2) записываем байткод */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);
/* 3) записываем "подвал" EXE-файл */
bcompiler_write_exe_footer($fh, $startpos);
/* закрываем файл */
fclose($fh);
?>
Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.