如何用PHP檢測壹個ZIP包中的哪些編碼系統文件被創建?
& lt?Php /* 1。什麽是聰明?Smarty是壹個用PHP編寫的模板PHP模板引擎,它提供了邏輯和外部內容的分離。簡單來說,目的就是把使用PHP的程序員和美工分開。使用它的程序員不會影響美工的頁面設計,美工修改頁面時也不會影響程序邏輯,這壹點在多人合作項目中尤為重要。二、smarty優勢:1。速度:smarty寫的程序可以得到最大的速度提升,這是相對於其他模板引擎技術而言的。2.編譯型:smarty寫的程序,運行時要編譯成PHP文件,不需要模板技術。這個文件采用PHP和HTML混合的方式,下次訪問模板時WEB請求會直接轉換成這個文件,不需要重新編譯模板(不需要修改源程序)。3.緩存技術:smarty選擇的緩存技術。它可以將用戶最終看到的HTML文件緩存到壹個靜態HTML頁面中。當smarty的cache屬性設置為true時,用戶的WEB請求會在smarty設置的cachetime周期內直接轉換成這個靜態HTML文件,相當於調用壹個靜態HTML文件。4.插件技術:smarty可以定制插件。插件其實就是壹些自定義功能。5.模板中可以使用if/elseif/else/endif。使用模板文件中的判斷語句來格式化模板是非常方便的。三、不適合使用smarty的地方:1。需要實時更新的內容。比如像股票展示,需要經常更新數據,這類程序使用smarty會減慢模板處理速度。2.小項目。小項目因為項目簡單,美工和程序員都在壹個人身上,使用smarty會失去php快速開發的優勢。四、smarty的目錄結構和版本打開smarty的官網,/download.php .下載Smarty 3.1.12。Tar.gz和zip分別適用於linux和windows版本。下載Smarty-stable-3.1.12後,妳會得到壹個Smarty-3.1.12文件夾,裏面有demo和libs demo兩個主文件夾作為示例文件夾,裏面包含默認的文件夾結構,是我們寫程序代碼的主文件夾。demo中的文件夾名都是smarty默認的目錄結構名。您可以通過更改smarty的相應屬性值,將文件夾名稱更改為我們想要的名稱。Libs是smarty代碼的源文件夾,壹般不會移動。/libs/Smarty . class . PHP # main file/libs/sys plugins/# internal plugin/libs/plugins/# external plugin、Extensible /demo/cahce/ # Place緩存文件/demo/configs/# Place可以加載的配置文件/demo/templates/ # Place模板文件/demo/templates_c/ #放置從模板編譯的文件可以將提取的Smarty-3.1.12文件夾的名稱改為我們想要的項目名稱,demo也可以2.調試Smarty-3.1.12創建自己的文件,並在demo文件夾下創建壹個index.php。在templates目錄下創建模板index.tpl(它可以是幾乎任何文本文件的擴展名,常用的有tpl、PHP和HTML。不建議使用後兩種,因為可以直接從瀏覽器訪問,不安全。可以用apache的pile(true);//默認值為false,true表示每次重新編譯(如果啟用緩存,每次都會重新編譯)$ smarty-& gt;getForce _ compile();//獲取當前強制編譯的設置//打開緩存$ smarty-& gt;set caching(true);$ smarty-& gt;get caching();//獲取當前緩存狀態。默認的false是$ smarty-& gt;set cache _ lifetime(60);//設置緩存時間的單位秒//{ * Template file * }/{ nocache }/{ $ name }/{/nocache }/{ *如果打開緩存,放置在nocache標簽中的變量不會被緩存,PHP源文件*} /* smarty分隔符的值每次都在模板文件中,這是普通html代碼和smarty代碼的區別。默認是{},但是可能會和js,css沖突。可以做出改變。在3.0中,模板標記將不支持空格,因為{$abc}在Smarty2中可以識別,但在3.0中不能,因此它必須是{$abc},以便更好地支持javascript和css。*/$ smarty-& gt;left _ delimiter = " {//左邊分隔符,2.0屬性,3.0跟在$ smarty-& gt;right _ delimiter = " }/* Delimiter相當於PHP的echo,會輸出分隔符中的所有值,除非進行賦值等操作。smarty tpl文件中分隔符中兩個* *之間的內容是註釋內容如tpl文件:{*這是模板註釋內容* } *//設置緩存目錄路徑,不設置默認的“緩存”$ smarty-& gt;setCacheDir(" cache ");//獲取緩存目錄路徑$ smarty-& gt;getCacheDir();//設置配置目錄路徑,但不設置默認的“configs”$ smarty-& gt;setConfigDir(" configs ");//添加配置目錄路徑,所有路徑都會保存為數組,調用文件時會在所有路徑中找到$ smarty-->addConfigDir("配置/測試");//獲取配置目錄路徑的數組$ smarty->;getConfigDir();//設置插件目錄路徑,不設置默認的“插件”$ smarty-& gt;setPluginsDir("插件");//添加插件的目錄路徑。所有路徑將以數組的形式保存。當調用文件時,將在所有路徑中搜索它們。插件文件夾是根據不同的規則可以在前臺或後臺調用的函數的存儲文件。文件名和函數名的命名,根據不同的調用規則,需要不同的寫法。$ smarty-->;addPluginsDir("插件/測試");//獲取插件目錄路徑的數組$ smarty->;getPluginsDir();//設置模板目錄路徑,不設置默認的“模板”$ smarty-& gt;setTemplateDir("模板");//添加模板目錄路徑,所有路徑都會保存為數組,調用文件時會在所有路徑中找到$ smarty-->addTemplateDir(" templates/test ");//獲取模板目錄路徑的數組$ smarty->;getTemplateDir();//設置編譯目錄路徑,不設置默認的“templates _ c”$ smarty-& gt;setCompileDir(" templates _ c ");//獲取編譯目錄路徑$ smarty-& gt;getCompileDir();/*我們可以建立不同的php源文件文件夾,將php文件按照壹定的分類放在不同的文件夾中。然後在每個文件夾中創建壹個自定義的配置文件,在配置文件中創建新的$smarty = new Smarty對象,然後將所有不同文件夾中php文件的緩存、配置文件、插件、模板和編譯目錄設置為同壹個緩存、配置文件、插件和模板。編譯目錄,使該文件夾下的所有PHP源文件都可以引用該配置文件得到相同的配置*//模板變量$ arr = array (array ("Zhang "," Li "),' a' = > array("liu "," wang "),array("ming "," yi "));$ smarty-& gt;assign("testArr ",$ arr);//設置模板變量,為要調用的模板提供變量。您可以使用{$testArr}或{$testArr}或{$testArr = [1,' a ' = & gt2,2= >3]}妳也可以用{$testArr[] = 4}或者其他類似的方式在PHP中創建數組//php源文件可以通過$ smarty-& gt;GetTemplateVars("testArr ")獲取指定的模板變量。如果要在模板中更改或創建模板變量,必須添加scope屬性,並將值設置為scope="global "或scope = " parent " class a { function aa($ Nam){ echo $ Nam;} } $ smarty-& gt;賦值(" obj ",new A);//當設置的模板變量是對象時,可以在模板頁面中調用如下,也是將對象傳遞給模板時的地址//{ $ obj-& gt;Aa('我叫y')} //Smarty可以識別內嵌在雙引號中的模板變量,只要這個變量只包含數字、字母和下劃線。但是好像只支持可以直接轉換成字符串的模板變量$ smarty-->assign("testStr ","這是testStr ");//可以使用{"$testStr OK!"在模板中。}訪問/* TPL模板包含模板模板文件:{ include file = " header . TPL " } header . TPL內容: