2011-08-16 3 views
6

J'utilise PHP depuis la ligne de commande et j'essaie d'intégrer des données dans un fichier de code source. Je peux le faire dans Ruby en utilisant la construction __END__ et en Perl en utilisant la construction __DATA__, mais je n'arrive pas à trouver un moyen de le faire en PHP. L'objectif est de pouvoir intégrer des données dans le fichier PHP, puis, pendant l'exécution, de lire les données dans un tableau pour le traitement. Comment puis-je faire cela en PHP? L'inclusion des données dans un fichier séparé n'est pas vraiment une bonne option en raison de la façon dont les données et l'exécution du fichier sont configurées.Construction équivalente en PHP à `__END__` de Ruby ou` __DATA__` de Perl

+0

** Voir aussi **: http://stackoverflow.com/questions/2059713 – dreftymac

Répondre

7

Vous pouvez utiliser __halt_compiler() dont le but est, comme son nom l'indique, arrêter le compilateur précisément dans le but de incorporation de données dans le reste du fichier.

Un exemple de base serait:

<?php 

// Do something boring here 

$data = file_get_contents(__FILE__, FALSE, NULL, __COMPILER_HALT_OFFSET__); 
$obj = json_decode($data, TRUE); 
echo $obj['message']; 

__halt_compiler(); 
{"status":"example", "message":"hello, __halt_compiler!"} 

La sortie, comme on pouvait s'y attendre, est hello, __halt_compiler!

3

vous pouvez utiliser __halt_compiler() et intégrer des données après cette ligne de code. Il y a un excellent exemple dans la documentation.

4

Utilisez la __halt_compiler() construction:

<?php 

echo 'hello!'; 
__halt_compiler(); 
echo 'bar''; this will not cause a parse error 
Questions connexes