(PECL bcompiler:0.4-0.8)
bcompiler_write_exe_footer — Écrit à la position start et jusqu'à la fin du fichier de type exe
Un fichier exe (ou auto-exécutable) est composé de trois parties :
Le 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 ) |
Le bytecode (uniquement décompressé pour le moment) |
Le footer EXE bcompiler |
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, FALSE en cas d'échec.
Exemple 495. Exemple avec bcompiler_write_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 . 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.
bcompiler_write_header() |
bcompiler_write_class() |
bcompiler_write_footer() |