bcompiler_write_constant
<<<
bcompiler_write_exe_footer bcompile_write_file
>>>

8.6 Compilateur bytecode pour PHP
8 Référence des fonctions
 Manuel PHP

Introduction
Installation
Contact
bcompiler_load_exe
bcompiler_load
bcompiler_parse_class
bcompiler_read
bcompiler_write_class
bcompiler_write_constant
->bcompiler_write_exe_footer
bcompile_write_file
bcompiler_write_footer
bcompiler_write_function
bcompiler_write_functions_from_file
bcompiler_write_header

8.6.10 bcompiler_write_exe_footer()Ecrit à la position start et jusqu'à la fin du fichier de type exe

[ Exemples avec bcompiler_write_exe_footer ]   CVS uniquement

bool  bcompiler_write_exe_footer ( resource   filehandle , int   startpos )
Attention

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 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 .

<< bcompiler_write_exe_footer >>
bcompiler_write_constant Compilateur bytecode pour PHP bcompile_write_file