<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >bcompiler_write_exe_footer</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Compilador de PHP bytecode" HREF="ref.bcompiler.html"><LINK REL="PREVIOUS" TITLE="bcompiler_write_constant" HREF="function.bcompiler-write-constant.html"><LINK REL="NEXT" TITLE="bcompile_write_file" HREF="function.bcompiler-write-file.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.bcompiler-write-constant.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.bcompiler-write-file.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.bcompiler-write-exe-footer" ></A >bcompiler_write_exe_footer</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN14041" ></A ><P > (PECL)</P >bcompiler_write_exe_footer -- Escreve na posição de início e continua até o fim do arquivo de tipo EXE</DIV ><DIV CLASS="refsect1" ><A NAME="AEN14044" ></A ><H2 >Descrição</H2 >bool <B CLASS="methodname" >bcompiler_write_exe_footer</B > ( resource filehandle, int startpos )<BR ></BR ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >Atenção</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P >Esta função é <SPAN CLASS="emphasis" ><I CLASS="emphasis" >EXPERIMENTAL</I ></SPAN >. 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.</P ></TD ></TR ></TABLE ></DIV ><P > Um arquivo EXE (ou auto executável) consiste de 3 partes, </P ><P > <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD > 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) </TD ></TR ><TR ><TD >Os bytecodes compactados pelo Bzip</TD ></TR ><TR ><TD >O rodapé do exe do bcompiler</TD ></TR ></TBODY ></TABLE ><P ></P > O parâmetro <CODE CLASS="parameter" >startpos</CODE > é a posição do arquivo na qual os Bytecodes começam, e pode ser obtido usando ftell($fh). </P ><P > 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. </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN14066" ></A ><P ><B >Exemplo 1. Exemplo de <A HREF="function.bcompiler-write-footer.html" ><B CLASS="function" >bcompiler_write_footer()</B ></A ></B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#FF8000">/* cria o arquivo de saída (exemplo.exe) */<br /></font><font color="#0000BB">$fh </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">"example.exe"</font><font color="#007700">, </font><font color="#DD0000">"w"</font><font color="#007700">);<br /></font><font color="#FF8000">/* 1) escreve o núcleo (phpe.exe) */<br /></font><font color="#0000BB">$size </font><font color="#007700">= </font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#DD0000">"phpe.exe"</font><font color="#007700">);<br /></font><font color="#0000BB">$fr </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">"phpe.exe"</font><font color="#007700">, </font><font color="#DD0000">"r"</font><font color="#007700">);<br /></font><font color="#0000BB">fwrite</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">, </font><font color="#0000BB">fread</font><font color="#007700">(</font><font color="#0000BB">$fr</font><font color="#007700">, </font><font color="#0000BB">$size</font><font color="#007700">), </font><font color="#0000BB">$size</font><font color="#007700">);<br /></font><font color="#0000BB">$startpos </font><font color="#007700">= </font><font color="#0000BB">ftell</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">);<br /></font><font color="#FF8000">/* 2) escrevendo bytecodes */<br /></font><font color="#0000BB">bcompiler_write_header</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">);<br /></font><font color="#0000BB">bcompiler_write_class</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">, </font><font color="#DD0000">"myclass"</font><font color="#007700">);<br /></font><font color="#0000BB">bcompiler_write_function</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">, </font><font color="#DD0000">"main"</font><font color="#007700">);<br /></font><font color="#0000BB">bcompiler_write_footer</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">);<br /></font><font color="#FF8000">/* 3) escrevendo rodapé do executável */<br /></font><font color="#0000BB">bcompiler_write_exe_footer</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">, </font><font color="#0000BB">$startpos</font><font color="#007700">);<br /></font><font color="#FF8000">/* fecha arquivo de saída */<br /></font><font color="#0000BB">fclose</font><font color="#007700">(</font><font color="#0000BB">$fh</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><P > Veja também <A HREF="function.bcompiler-write-header.html" ><B CLASS="function" >bcompiler_write_header()</B ></A >, <A HREF="function.bcompiler-write-class.html" ><B CLASS="function" >bcompiler_write_class()</B ></A >, e <A HREF="function.bcompiler-write-footer.html" ><B CLASS="function" >bcompiler_write_footer()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.bcompiler-write-constant.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.bcompiler-write-file.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >bcompiler_write_constant</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.bcompiler.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >bcompile_write_file</TD ></TR ></TABLE ></DIV ></BODY ></HTML >