2014-10-30 42 views
2

我試圖創建一個帶有可執行存根的PHAR存檔。代碼:PHP PHAR:再次以適當的方式創建.phar

<?php 
$phar = new Phar('test.phar'); 
$phar->buildFromDirectory('files/'); 
$phar->setStub($phar->createDefaultStub(file_get_contents('st.php'), 'install.php')); 
?> 

「st.php」(缺省短線)的內容:

#!/usr/bin/php 
<?php Phar::mapPhar(); include("phar://test.phar/install.php"); __HALT_COMPILER(); 

裏面的 「文件」 只有一個文件 - 在 「install.php了」

<?php 
echo "The Installer is running right now."; 
?> 

PHAR編譯過程運行時沒有任何錯誤。但是,當我嘗試包括創建藥業存檔

include_once('phar://test.phar'); 

出現錯誤:

PHP Parse error: syntax error, unexpected ''#!/usr/bin/php\r' (T_ENCAPSED_AND_WHITESPACE) in D:/WebServer/domains/modinst/www/test.phar on line 110 

的問題是:如何創建藥業存檔用作PHP的資源,我可以簡單的「包括「?

回答

0

您不能在存根文件中使用shebang行。這是當前PHP版本的限制。

刪除它,錯誤將消失。