1、smarty模板的特點
#速度快,編譯型,快取技術,外掛機制,強大的表現邏輯
2、php的垃圾收集機制
PHP可以自動進行記憶體管理,清除不再需要的物件。
PHP使用了引用計數(reference counting)這種單純的垃圾回收(garbage collection)機制。每個對象內含一個引用計數器,每個reference連接到對象,計數器加1。當reference離開生存空間或被設為NULL,計數器會減1。當某個物件的參考計數器為零時,PHP知道你將不再需要使用這個對象,釋放其所佔的記憶體空間。
3、mysql_fetch_row()和mysql_fetch_array()的分別
mysql_fetch_row()把資料庫的一列儲存在一個以零為基底的陣列中,第一欄在陣列的索引0,第二欄在索引1,依此類推。 mysql_fetch_assoc()把資料庫的一列儲存在一個關聯數組中,數組的索引就是字段名稱,例如我的資料庫查詢送回「first_name」、「last_name」、「email」三個字段,數組的索引就是「first_name 」、「last_name」和「email」。 mysql_fetch_array()可以同時送回mysql_fetch_row()和mysql_fetch_assoc()的值。
4、MVC的認知
由模型(model),視圖(view),控制器(controller)完成的應用程式。 model層負責提供數據,和資料庫有關的操作都交給模型層來處理,view層則提供交互的界面,並輸出數據,而controller層則負責接收請求,並分發給相應的model來處理,然後調用view圖層來顯示。
5、smarty模板的原理
smarty是一個模板引擎,使用smarty主要是為了實現邏輯和外在內容的分離,如果不使用模板的話,通常的做法就是php程式碼和html程式碼混編。使用了範本之後,則可以將業務邏輯都放到php檔案中,而負責顯示內容的範本則放到html檔案中。
Smarty在執行display方法的時候,讀取模板文件,並進行資料替換,產生編譯文件,之後每次存取都會直接存取編譯文件,讀取編譯文件省去了讀取模板文件,和字串替換的時間,所以可以更快,編譯文件裡時間戳記錄模板文件修改時間,如果模板被修改過就可以檢測到,然後重新編譯(編譯是把靜態內容保存起來,動態內容根據傳入的參數不同而不同)。
如果啟用了緩存,則會根據編譯文件生成緩存文件,在訪問的時候如果有緩存文件並且緩存文件沒有過期,則直接訪問緩存文件。
6、UBB code的實作原理
UBB程式碼是HTML的變種,透過程式自訂我們的標籤,例如「[a]PHP中UBB的使用[/a]」這樣的標籤,其實質就是查找[a][/a]標籤,將其替換成的標準html,說白了,就是將標準的html標記透過技術手段使其簡化,其輸出出來的結果還是標準的html。
明白了ubb的原理,那麼再製作一個簡單的ubb編輯器就不難了,和fck之類的編輯器比較起來,ubb程式碼最大的優點就是程式碼簡單,功能很少,簡單的ubb只需要一個文件,而且ubb標籤可以自己來定義,更改起來很方便,在php中就是利用替換函數就可以將html進行標籤化,輸出時進行標籤的轉換。
7、請描述如下URL重寫規則的用意
<IfModulemod_rewrite.c> RewriteEngineon RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-d RewriteBase/ RewriteRule./index.php[L] </IfModule>
如果REQUEST_FILENAME文件存在,就直接訪問文件,不進行下面的rewrite規則,如果REQUEST_FILENAME目錄存在,就直接存取目錄,不進行下面的rewrite規則,RewriteRule./index.php[L]的意思是把所有的請求都給index.php處理。
推薦教學:PHP影片教學
#以上是php技術都有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!