php模板技術 範例

來源:互聯網
上載者:User
php模板技術 執行個體

1. 網站結構

?

?

網站
┗includes
? ?┗class.inc
┣templates
? ?┗index.htm
? ?┣list.htm
? ?┗content.htm
┣index.php
┗content.php

?

2.庫結構

?

?

-- -- Database: `test`-- -- ---------------------- -- Table structure for table `test`-- CREATE TABLE `test` (  `id` smallint(3) NOT NULL auto_increment,  `name` varchar(10) NOT NULL default '',  `sex` enum('male','female') NOT NULL default 'male',  `age` smallint(2) NOT NULL default '0',  `email` varchar(20) NOT NULL default '',  PRIMARY KEY  (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;-- -- Dumping data for table `test`-- INSERT INTO `test` VALUES (1, 'freshlove', 'male', 28, 'freshlove@gmail.com');INSERT INTO `test` VALUES (2, 'dinahani', 'female', 29, 'dinahani@gmail.com');INSERT INTO `test` VALUES (3, 'sam', 'male', 1, 'sam@gmail.com');INSERT INTO `test` VALUES (4, 'girl', 'female', 0, 'girl@gmail.com');

?

?

3.?代碼

?

--------------- class.inc檔案 --------

?

?

host = $host; $this->user = $user; $this->pwd = $pwd; } function connect(){ return mysql_connect($this->host,$this->user,$this->pwd); } } class template{ private $source_file; function get_file($filename){ $this->source_file = file_get_contents($filename); } function parse($tags,$vals){ if(!is_array($tags)) return preg_replace('|{'.$tags.'}|',$vals,$this->source_file);  else{ foreach($tags as $row) $keys[] = '|{'.$row.'}|';return preg_replace($keys,$vals,$this->source_file);  } } } ?> 

?

?

?----------------index.htm檔案-------------------

?

?

?

Home Page   
  {all_lists} 
   
Members List
Name Sex Age Email
Total: {total_numbers}, Display {per_numbers}/page {page}

?

?

------------------list.htm檔案-------------------

?

?

?

?

?

-------------------content.htm檔案-----------------------

?

?

?

Home Page   
{name} {sex} {age} {email}
Member Infos
Name {name}
Sex {sex}
Age {age}
Email {email}

?

----------------index.php檔案--------------------------

?

?

connect();  mysql_select_db('test',$con);  $limit = 20; //每頁顯示行數  $p = ($_GET['p']) ? $_GET['p'] : 1;  //當前頁號  /***** 產生列表開始 *****/  $lists = '';  $tmpl->get_file('templates/list.htm');  $tags = array('mid','name','sex','age','email');  //應與表欄位同順序 $result = mysql_query('select * from test order by id desc limit '.($p-1)*$limit.','.$limit);  while($row = mysql_fetch_row($result)) $lists .= $tmpl->parse($tags,$row);  /***** 產生列表完成, 分頁開始 *****/  $tmpl->get_file('templates/index.htm');  $total = @mysql_result(mysql_query('select count(id) from test'),0);  //總記錄數  $ps = ceil($total/$limit);   //總頁數  $pagination = 'First Page ';  if($p>1) $pagination .= '';  else $pagination .= '';  $pagination .= 'Prev ';  if($p<$ps) $pagination .= '';  else $pagination .= '';  $pagination .= 'Next Last Page ';  /***** 分頁完成, 產生頁面開始 *****/  $tags = array('all_lists','total_numbers','per_numbers','page');  $vals = array($lists,$total,$limit,$pagination);  echo $tmpl->parse($tags,$vals);  ?> 

?

---------------- content.php檔案 ---------------

?

?

connect(); mysql_select_db('test',$con); $tmpl->get_file('templates/content.htm'); $rs = mysql_query('select * from test where id='.$_GET['id']); $row=@mysql_fetch_row($rs); unset($row[0]); //去掉表中讀出的多餘欄位,對齊替換項,或在SELECT語句中列表欄位$tags = array('name','sex','age','email','back');  $row[] = 'Back';echo $tmpl->parse($tags,$row); ?>  

?

?

?

finished

?

?

?

  • {back}

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.