(PECL bcompiler >= 0.4)
bcompiler_write_exe_footer — Écrit à la position start et jusqu'à la fin du fichier de type exe
$filehandle
, int $startpos
) : boolUn fichier exe (ou auto-exécutable) est composé de trois parties :
stub
(le programme compilé) qui charge PHP
et l'extension bcompiler, stocke le bytecode et initialise un appel
à la fonction spécifique (e.g. main) ou
une méthode d'une classe (i.e. main::main
)
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.
Cette fonction retourne TRUE
en cas de succès ou FALSE
si une erreur survient.
Exemple #1 Exemple avec bcompiler_write_exe_footer()
<?php
/* Création du fichier de sortie (example.exe) */
$fh = fopen("example.exe", "w");
/* 1) Écriture d'un stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);
/* 2) Écriture du bytecode */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);
/* 3) Écriture du footer EXE */
bcompiler_write_exe_footer($fh, $startpos);
/* Fermeture du fichier de sortie */
fclose($fh);
?>
Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.