• PHP-Handbuch
  • Funktionsreferenz
  • Das Verhalten von PHP beeinflussen
  • bcompiler
  • bcompiler Funktionen
  • bcompiler_load_exe
  • bcompiler_load
  • bcompiler_parse_class
  • bcompiler_read
  • bcompiler_write_class
  • bcompiler_write_constant
  • bcompiler_write_exe_footer
  • bcompiler_write_file
  • bcompiler_write_footer
  • bcompiler_write_function
  • bcompiler_write_functions_from_file
  • bcompiler_write_header
  • bcompiler_write_included_filename
bcompiler_write_constant
bcompiler_write_file
bcompiler Funktionen
PHP-Handbuch

bcompiler_write_exe_footer

Writes the start pos, and sig to the end of a exe type file

Beschreibung

bool bcompiler_write_exe_footer ( resource $filehandle , int $startpos )

An EXE (or self executable) file consists of 3 parts:

  • The stub (executable code, e.g. a compiled C program) that loads PHP interpreter, bcompiler extension, stored Bytecodes and initiates a call for the specified function (e.g. main) or class method (e.g. main::main)
  • The Bytecodes (uncompressed only for the moment)
  • The bcompiler EXE footer

To obtain a suitable stub you can compile php_embed-based stub phpe.c located in the examples/embed directory on bcompiler's CVS.

Parameter-Liste

filehandle

A file handle as returned by fopen.

startpos

The file position at which the Bytecodes start, and can be obtained using ftell.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 bcompiler_write_exe_footer example

<?php

/* creating the output file (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) writing a stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) writing bytecodes */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) writing EXE footer */
bcompiler_write_exe_footer($fh, $startpos);

/* closing the output file */
fclose($fh);
?>

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • bcompiler_write_header
  • bcompiler_write_class
  • bcompiler_write_footer