Supposons que vous disposez d'un script avec certains de code php et beaucoup, beaucoup de binaire de l'encombrement.
<?php doStuff(); __halt_compliler(); [BIG_BINARY_MESS]
alors vous voulez que le compilateur de ne PAS essayer d'analyser le binaire parce que si il y a <?
quelque part dans le binaire, il allait se briser.
Le point est d'arriver à juste expédier un fichier avec des données binaires et le code php.
Pour un petit exemple, voir ce post de blog
Donc, vous voulez non seulement pour arrêter l' execution
d'un script (comme exit()
serait) mais pour arrêter l' parsing
, de sorte que vous pouvez avoir "syntaxe non valide" à la fin du fichier et php ne pouvez toujours exécuter la première partie.
Un autre exemple:
Cela permet d'obtenir des analysée comme php valide et d'exécuter parfaitement:
<?php $a = 1; echo $a; __halt_compiler(); §RW$FG$%ZDS$TSG$TSZ%U(); §$"§%"§$!!();
Pour accéder aux données:
<?php
$file = fopen(__FILE__, 'rb');
// Go to the end of the __halt_compiler();
fseek($file, __COMPILER_HALT_OFFSET__);
echo stream_get_contents($file);
__halt_compiler(); §RW$FG$%ZDS$TSG$TSZ%U(); §$"§%"§$!!();
Cela permettra de sortie §RW$FG$%ZDS$TSG$TSZ%U(); §$"§%"§$!!();