Manual do PHP
Anterior |  | Próxima

# bcompiler_write_exe_footer

(PECL)

bcompiler_write_exe_footer -- Escreve na posição de início e continua até o fim do arquivo de tipo EXE

## Descrição

bool bcompiler_write_exe_footer ( resource filehandle, int startpos )

Atenção
Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Um arquivo EXE (ou auto executável) consiste de 3 partes,

O núcleo (código executável, ex.: um programa C compilado) que carrega o interpretador do PHP, extensão do bcompiler, Bytecodes guardados e inicia uma chamada para a função especificada (ex.: main) ou método da classe (ex.: main::main)
Os bytecodes compactados pelo Bzip
O rodapé do exe do bcompiler

O parâmetro `startpos` é a posição do arquivo na qual os Bytecodes começam, e pode ser obtido usando ftell($fh).

Para obter um núcleo adequado, você pode compilar php_embed-based stub phpe.c localizado no diretório examples/embed no CVS do bcompiler.

Exemplo 1. Exemplo de bcompiler_write_footer()
`<?php /* cria o arquivo de saída (exemplo.exe) */ $fh = fopen("example.exe", "w"); /* 1) escreve o núcleo (phpe.exe) */ $size = filesize("phpe.exe"); $fr = fopen("phpe.exe", "r"); fwrite($fh, fread($fr, $size), $size); $startpos = ftell($fh); /* 2) escrevendo bytecodes */ bcompiler_write_header($fh); bcompiler_write_class($fh, "myclass"); bcompiler_write_function($fh, "main"); bcompiler_write_footer($fh); /* 3) escrevendo rodapé do executável */ bcompiler_write_exe_footer($fh, $startpos); /* fecha arquivo de saída */ fclose($fh); ?>`

Veja também bcompiler_write_header(), bcompiler_write_class(), e bcompiler_write_footer().

Anterior | Principal | Próxima
bcompiler_write_constant | Acima | bcompile_write_file