- PHP Manual
- Функции bcompiler
- Записывает позицию начала байткода и терминирующий символ в конец файла
bcompiler_write_exe_footer
(PECL bcompiler >= 0.4)
bcompiler_write_exe_footer — Записывает позицию начала байткода и терминирующий символ в конец файла
Описание
bcompiler_write_exe_footer
( resource
$filehandle
, int $startpos
) : boolEXE-файл (исполняемый) состоит из трех частей:
- stub - исполняемый код, т.е. скомпилированная программа на C, который загружает интерпретатор PHP, модуль bcompiler, сохраненный байткод и инициирует вызов необходимых функций (например, main) или методов (например, main::main)
- Байткод (несжатый только на данный момент)
- "Подвал" EXE-файла
Для получения необходимого исполняемого кода вам надо скомпилировать встраиваемую версию 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 без уведомления. Используйте эту функцию на свой страх и риск.
Смотрите также
- bcompiler_write_header() - Записать заголовок файла bcompiler
- bcompiler_write_class() - Записывает байткод класса в файл
- bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных