bcompiler_write_exe_footer

(no version information, might be only in CVS)

bcompiler_write_exe_footer -- Ecrit à la position start et jusqu'à la fin du fichier de type exe

Description

bool bcompiler_write_exe_footer ( resource filehandle, int startpos )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Un fichier exe (ou auto-exécutable) est composé de trois parties :

Le stub (code exécutable, e.g. programme C compilé) qui charge l'interpréteur PHP, l'extension bcompiler, stocke le Bytecode et initialise un appel à la fonction spécifique (e.g. main) ou une méthode d'une classe (e.g. main::main)
Le Bytecode (uniquement décompressé pour le moment)
Le footer EXE bcompiler

Le paramètre startpos est la position à laquelle le Bytecode commence et peut être obtenue en utilisant ftell($fh).

Pour obtenir un stub approprié, vous pouvez compiler le stub php_embed-based phpe.c qui se trouve dans le dossier examples/embed sur le CVS de bcompiler.

Exemple 1. Exemple avec bcompiler_write_footer()

<?php
/* Création du fichier de sortie (example.exe) */
$fh = fopen("example.exe", "w");
/* 1) Ecriture d'un stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);
/* 2) Ecriture du bytecode */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);
/* 3) Ecriture du footer EXE */
bcompiler_write_exe_footer($fh, $startpos);
/* Fermeture du fichier de sortie */
fclose($fh);
?>

Voir aussi bcompiler_write_header(), bcompiler_write_class() et bcompiler_write_footer().