2013-08-18 78 views
0

有幾個問題,但我相信對於許多人來說,解決相對較新的phar問題的答案是有用的。幾個php Phar問題

  1. 是否可以在phar腳本中刪除或編輯phar腳本中的文件,當它在實際運行時?

  2. 我注意到我可以將我的phar文件的名稱從examplename.phar更改爲examplename.php並在url中運行它,並且它仍然正常工作。是對的嗎?那可以嗎?那是安全的嗎?

  3. 將所有文件放在同一個目錄然後phar它,還是可以保留所有的文件夾和子文件夾和phar它就好了 - 或者沒關係嗎?

  4. 你能混淆phar文件嗎?還是會毀了它?所有混淆都必須在pharing之前完成嗎?

希望phar專家能回答這些問題。謝謝

回答

1
  1. PHP的通常設置是將PHAR文件視爲只讀文件。實際上,您必須更改該設置以允許您的本地PHP副本創建這些文件。我懷疑他們可以改變,我不會賭。

  2. PHAR的一般結構是一個初始的PHP腳本部分,它設置了一些東西,然後調用__halt_compiler()後跟壓縮字節(將控制權轉移到PHAR中已經存在的腳本部分之後),所以你可以做任何不帶PHAR的PHP腳本都可以實現,包括更改它的名稱。請注意,由於硬編碼的文件名,現有PHAR文件的引導代碼可能不允許這樣做,但這不是一般情況。

  3. 這並不重要。

  4. 使代碼級別的混淆使PHP代碼在純PHP中處於運行狀態不會影響PHAR。任何期望PHP已經包含特殊擴展的東西可能會失敗。

+0

謝謝你。完美 – Lan

+0

多一個問題。 phar文件可以在任何版本的php上運行?如果有人將我的phar文件上傳到他們的Web主機服務器,並且他們只運行PHP 4.0 - 它會工作嗎?謝謝 – Lan

+1

不需要。您需要能夠允許文件系統重定向到PHAR文件的PHP,即您至少需要PHP 5.2.0版,如果您稍後使用某些功能,則可能更新。請注意,PHAR僅自5.3.0版本內置,早期版本需要安裝PECL擴展(這可能不是一般情況)。現在PHP 5.3已經到了終點,您應該從最近的PHP版本中獲得足夠的支持。如果您必須支持較早的PHP版本,請不要使用PHAR。 – Sven