[英]PHP (OR PYTHON) Merge all Included files into a single large file (recursive?)
我有一個使用include的PHP腳本。 包含的文件也有自己的包含。 所有文件都位於Web服務器上的同一文件夾中。 我想要一個單獨的PHP腳本,它將所有這些合並到一個PHP文件中。 我將向新腳本提供文件以從中開始處理(例如,上面的index.php)。 如何使用PHP執行此操作? 例如說我有這些文件:
---------------------
index.php
<?php
*other code1*
include 'header.php';
*other code2*
?>
----------------------
header.php
<?php
*other code3*
include 'subheader.php';
*other code4*
?>
----------------------
subheader.php
<?php
*other code5*
?>
The result of the script begining from the index.php would be:
merged_file.php
<?php
*other code1*
*other code3*
*other code5*
*other code4*
*other code2*
?>
即代碼將全部放在一個大文件中,並按照與以前完全相同的順序執行。
因此,基本上,它將遍歷腳本,並且每次找到包含文件時,它將用給定包含文件中的相關PHP代碼替換包含文件,並且它將替換包含文件中的所有包含文件的代碼,直到所有代碼都合並為一個文件為止文件(遞歸函數?)
注意:我想在文件中返回未解析的PHP代碼。
提前致謝
編輯:我知道使用模塊化代碼通常會更好,但這不是我的問題。 我問我如何能做到這一點? 不是模塊化與未模塊化代碼的優勢。
我從上面的評論
我認為您可能會混淆包含遞歸嗎? 您是要將所有代碼移到一個文件中還是僅包含一次? 從長遠來看,隨着代碼的增長,我將使您的代碼與眾不同,並且包括它(因此您不會被一個巨大的1腳本應用所困擾)
可能的解決方案
我認為您要問的是“我怎么只包含一次文件?”
我會說,更新包含文件以具有include_once()調用。 因為在將代碼組合在一起時,它不會重新包含這些文件。
當您沖洗並清理時,這將為您提供一個可行的示例。
更新的答案
好的,根據反饋,如果您想合並所有文件,則必須經過一個具有主要PHP腳本(或其他語言)的過程,
include
或require
,應打開該文件 我認為這可以解決您的問題phpcompiler.org
phc最初支持內置的PHP的編譯時處理。 啟用此功能會在AST中將包含的語句插入到include語句的位置。 包含的函數,類和接口成為文件頂級范圍的一部分。 如果phc無法處理include語句(例如,如果找不到文件),則會發出警告,並將include語句保留在原位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.