⑴ smarty模板引擎跟TP框架有什麼區別什麼是模板引擎
smarty是php模板引擎技術,而thinkphp才是框架
⑵ PHP引擎程序是什麼
你說的是php的搜索引擎,還是模板引擎。
搜索引擎比如說PhpDig
是一個採用PHP開發的Web爬蟲和搜索引擎。通過對動態和靜態頁面進行索引建立一個詞彙表。當搜索查詢時,它將按一定的排序規則顯示包含關鍵字的搜索結果頁面。PhpDig包含一個模板系統並能夠索引PDF,Word,Excel,和PowerPoint文檔。PhpDig包含了三種最基本的搜素引擎技術:Spider技術,網頁結構化信息抽取技術或元數據採集技術,分詞/索引技術。區別於傳統搜索引擎,PHPdig適用於專業化更強、層次更深的個性化搜索引擎,利用它打造針對某一領域的垂直搜索引擎是最好的選擇。
還有很多這樣的開源而且免費的php搜索引擎:OpenWebSpider、RiSearch PHP
、Sphider、Snoopy、Sphinx、SEO Rank Checker、PHPCrawl、
模板引擎也有很多:
Smarty是一個使用PHP寫出來的模板引擎,是目前業界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內容,提供了一種易於管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內容不會影響到前端人員的頁面設計,前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。
Heyes Template Class
一個非常容易使用,但功能強大並且快速的模板引擎,它幫助你把頁面布局和設計從代碼中分離。
FastTemplate
一個簡單的變數插值模板類,它分析你的模板,把變數的值從HTML代碼中分離處理。
ShellPage
一個簡單易用的類,可以讓你的整個網站布局基於模板文件,修改模板就能改變整個站點。
STP Simple Template Parser
一個簡單、輕量級並且易於使用的模板分析類。它可以從多個模板中組裝一個頁面,把結果頁面輸出到瀏覽器或者文件系統。
OO Template Class
一個你可以用在自己程序中的面向兌現的模板類。
SimpleTemplate
一個可以創建和結構化網站的模板引擎。它可以解析和編譯模板。
bTemplate
短小但是快速的模板類,允許你把PHP邏輯代碼從HTML修飾代碼中分離。
Savant
一個強大且輕量級的PEAR兼容模板系統。它是非編譯型的,使用PHP語言本身做為它的模板語言。
ETS - easy template system
可以使用完全相同數據重組模板的模板系統。
EasyTemplatePHP
適用於你的站點的一個簡單但是強大的模板系統。
vlibTemplate
一個快速、全能的模板系統,它包含一個緩存和調試類。
AvanTemplate
多位元組安全的模板引擎,佔用很少系統資源。它支持變數替換,內容塊可以設置顯示或隱藏。
⑶ 怎樣去閱讀一份php源代碼
一份好的源代碼例如 dz的論壇,wind論壇,帝國cms,dedecms等,都具有自己的一套設計思路和設計模式,所以在看某個產品之前就要做好心理准備,可以把自己的經驗和這些產品做對比,但千萬別一直用自己的思維去評判。一句話就是「以學習和批評的辯證思想去看待」。 好吧!我們就開始吧! 一。先把源代碼安裝起來,結合它的文檔和手冊,熟悉其功能和它的應用方式。 二。瀏覽源代碼的目錄結構,了解各個目錄的功能。 三。經過以上兩步後相信你對這個開源的產品有了一個初步的了解了,那現在就開始分析它的源碼吧。這一步我們開始分析源代碼框架。例如入口方式是單入口還是多入口,頁面之間的調用規則,能根據規則找出某個功能用到的頁面。 四。熟悉源代碼的代碼寫作風格,例如縮進方式,排版格式等。 五。熟悉一下源代碼用到的資料庫和表,可以參考它的技術支持文檔。 六。經過以上幾步相信大家已經對這份源代碼有了更深刻的了解,不過這種了解還只是表面的,下來我們從6個方面具體的去分析它吧: 1.入口構造以及頁面調用方式的具體實現,如果閱讀時看到工具類和工具函數,盡量去熟悉一下。這一步的分析可以學習到源代碼的系統架構方式。 2.分析源代碼用到的工具類和工具函數,這樣可以學到很多程序編寫技巧。可以提升自己編程功力。 4.如果有模板引擎的話,研究一下源代碼的模板引擎。大致從實現方式,效率,易用性等幾個方面去考慮。 5.研究系統的各個功能模塊,這樣既能學習編程技巧還能打開自己的編程思路,下次遇到類似的東東就心裡有譜了。 6.研究系統所用到設計模式,一樣的功能實現,用到的設計模式可能相差很多,對比我們之前所作的東東分析設計模式,是提升我們駕馭代碼的不二法門。 7.研究源代碼對訪問壓力,執行效率,系統效率,資料庫查詢的優化。 方法只是途徑和工具,具體實踐還需要大家的努力。自己的感想是不要著急,認真分析,把分析心得用到自己的具體項目上,呵呵!
⑷ PHP 模板引擎的簡單代碼怎麼弄!
//phpcms 的核心模板解析函數
/*
*/
function template_parse($str)
{
$str = preg_replace("/\{(\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\}/es", "addquote('<?php echo \\1;?>')",$str);
$str = preg_replace("/\{([A-Z_\x7f-\xff][A-Z0-9_\x7f-\xff]*)\}/s", "<?php echo \\1;?>",$str);
$str = preg_replace("/([\n\r]+)\t+/s","\\1",$str);
$str = preg_replace("/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}",$str);
$str = preg_replace("/\{template\s+(.+)\}/","\n<?php include template(\\1); ?>\n",$str);
$str = preg_replace("/\{include\s+(.+)\}/","\n<?php include \\1; ?>\n",$str);
$str = preg_replace("/\{php\s+(.+)\}/","\n<?php \\1?>\n",$str);
$str = preg_replace("/\{if\s+(.+?)\}/","<?php if(\\1) { ?>",$str);
$str = preg_replace("/\{else\}/","<?php } else { ?>",$str);
$str = preg_replace("/\{elseif\s+(.+?)\}/","<?php } elseif (\\1) { ?>",$str);
$str = preg_replace("/\{\/if\}/","<?php } ?>",$str);
$str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\}/","<?php if(is_array(\\1)) foreach(\\1 AS \\2) { ?>",$str);
$str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}/","\n<?php if(is_array(\\1)) foreach(\\1 AS \\2 => \\3) { ?>",$str);
$str = preg_replace("/\{\/loop\}/","\n<?php } ?>\n",$str);
$str = preg_replace("/\{tag_([^}]+)\}/e", "get_tag('\\1')", $str);
$str = preg_replace("/\{\\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\(([^{}]*)\))\}/","<?php echo \\1;?>",$str);
$str = preg_replace("/\{(\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/","<?php echo \\1;?>",$str);
}
function addquote($var)
{
return str_replace("\\\"", "\"", preg_replace("/\[([a-zA-Z0-9_\-\.\x7f-\xff]+)\]/s", "['\\1']", $var));
}
⑸ 拿到一個php源碼怎麼分析它用的是什麼框架
如果是單一入口模式的在index.php里的都會有簡介
/**
*
**/
如果是自己,或團隊開發的自己框架,有的會註明
⑹ php 的框架與模板
樓主的認知不對哦,以下為樓主解惑:
框架:在php源碼的基礎上,開發者將常用的功能進行二次封裝形成的代碼集合,其本身往往不具備任何可用的功能,其目的僅僅是使開發人員可以基於框架更快的開發出符合要求的應用。例如,不使用框架開發一個用戶管理功能可能需要5天,使用框架可以將這個時間縮短到2天。實際上,對於任何一個項目,訪問控制、資料庫訪問、文件處理等功能都是必備的,框架就是將這些常用功能進行了更易用的封裝,避免開發人員在通用組件上重復開發,浪費時間。
模板:為了將PHP內容和html內容更好的分離為目的產生的一種應用,其主要目的是為了網頁製作人員可以不去學習PHP就能修改頁面的內容(可惜不學PHP還要學smarty,因此我個人並不覺得模板真的能帶來什麼實際的好處)
另外,如dede,DZ,PHPCMS等是基於PHP的產品,本身已經具備了大量的功能,安裝之後就能使用,當然,因為需求的不同可能需要在該產品的基礎上進行二次開發。
綜述,模板沒有太大的價值,完全可以在非用不可的時候再去學習,對於PHP開發人員來說,smarty可以立刻上手。它可以(也只能)被框架或PHP產品使用。框架是必須掌握的,定製性很強的項目必然都是基於框架開發的。PHP產品,如果你要開發的項目和某個PHP產品的功能達到80%以上的契合,那麼應該考慮基於該產品進行開發。
一些網站提供簡單的博客,留言板等的源碼,不基於框架的小項目實際上只能稱為練習,只有參考價值。
註:不是說不使用框架的項目就不算項目,事實上如果一個項目如果沒有使用某某框架,其項目的一部分代碼也必然的會具有框架的特徵,即自定義框架也是框架。
⑺ PHP模板引擎和數組問題。
Smarty 模板是實現PHP 代碼與HTML 分離的一個技術。就是不用像以前寫面向過程的時候 PHP代碼 都要和HTML混寫。而分離後的HTML 或者TPL(TPL 就是模板文件和HTML是一樣的。)
就是我們所說的模板了,Smarty模板就是把HTML (或TPL,個人不喜歡TPL在編輯器中沒有代碼高亮)中的需要動態數據的部分,替換成PHP。也就是用PHP 處理數據,在放到模板上顯示。不知道你能不能理解了。。。
⑻ php模板引擎是如何解析循環結構的給一個簡單的例子吧
如果你用的是框架里標識的循環標簽,那他們會在模板渲染的時候將這個循環標簽轉換為php原生的for或foreach標簽以便再次讀取。
$content = preg_replace(array('/\{\$(\w+)\}/','/{:(\w+)(\([\S+\,?]*\))}/'),array('<?php echo \$\1;?>','<?php \1\2;?>'),$content);
已經是php原生的循環代碼再解析的時候就直接執行該文件就出頁面了。
ob_start();
ob_implicit_flush(0);
include $file;
$content = ob_get_clean();
echo $content;
⑼ php模板引擎的類型
目前,可以在PHP中應用的並且比較成熟的模板有很多,例如Smarty、PHPLIB、IPB、xingTemplate等幾十種。使用這些通過PHP編寫的模板引擎,可以讓你的代碼脈絡更加清晰,結構更加合理化。也可以讓網站的維護和更新變得更容易,創造一個更加良好的開發環境,讓開發和設計工作更容易結合在一起。但是,對於一個PHP程序員來說,沒有哪一個PHP模板對他是最合適、最完美的。因為PHP模板就是大眾化的東西,並不是針對某個人開發的。如果能在對模板的特點、應用有清楚的認識基礎上,充分認識到模板的優勢劣勢,就可以知道是否選擇使用模板或選擇使用哪個模板。 Blade是Laravel框架下的一種簡單又強大的模板引擎。Blade 非常快,因為僅使用了少量的正則表達式來為你的模板編譯成原始PHP代碼。不同於控制器布局,Blade模板引擎由模板繼承和模板片段驅動。所有的Blade模板文件必須使用Blade.blade.php文件擴展名。
⑽ 求精典的PHP企業網站源碼
http://down.chinaz.com/s/16771.asp
情感家園程序 v3.0 For 企業版
基本實現了小型企業網站所要求的各種功能:如企業簡介,產品展示,人才招聘,特別主題,企業新聞等,前台採用 phpLib v7.4 做為模板引擎
默認賬號:admin
密碼:admin