2011-08-16 5 views
6

私はコマンドラインからPHPを使用しています。私はソースコードファイルにデータを埋め込もうとしています。私はRubyで__END__のコンストラクトを使って、__DATA__のコンストラクタを使ってPerlでそれを行うことができますが、PHPでそれを行う方法を見つけることができないようです。目標は、PHPファイルにデータを埋め込むことができるようにすることです。そして、実行中に、処理のためにデータを配列に読み込みます。 PHPでこれをどうすればできますか?別々のファイルにデータを含めることは、データとファイルの実行方法の設定のために、実際には良い選択肢ではありません。PHPのRubyの `__END__`やPerlの` __DATA__`に相当する構文

+0

です**も参照してください**:http://stackoverflow.com/questions/2059713 – dreftymac

答えて

7

あなたはファイルの残りの部分にデータを埋め込むために、正確に、コンパイラを停止し、目的にある__halt_compiler()を使用することができます。

3

__halt_compiler()を使用して、そのコード行の後にデータを埋め込むことができます。ドキュメントには優れた例があります。名前が言うように

<?php 

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

__halt_compiler()構文を使用します。

基本的な例は次のようになります。

<?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!"} 

出力、予想されるように、hello, __halt_compiler!