PHP各種編碼的漢字字符串截取一般在網站的開發(fā)過程中,都會有個 template 或是叫 layout 的,它包含了整個網站的外觀和布局,一般分為header,content,footer 有的甚至還包括 menu。其中的 content 部分則會隨著不同的頁面和功能而變化。這樣就可以保證網站風格的一致性,也可以減少不少工作量。雖然便捷的 Codeigniter沒有提供內置的處理方式,但是我們還是自己擴展的。
首先,把下面的代碼保存到 application/libraries/Layout.php
<?php?
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Layout
{
? ? var $obj;
? ? var $layout;
? ? function Layout($layout = "layout_main")
? ? {
? ? ? ? $this->obj =& get_instance();
? ? ? ? $this->layout = $layout;
? ? }
? ? function setLayout($layout)
? ? {
? ? ? $this->layout = $layout;
? ? }
? ? function view($view, $data=null, $return=false)
? ? {
? ? ? ? $data['content_for_layout'] = $this->obj->load->view($view,$data,true);
? ? ? ? if($return)
? ? ? ? {
? ? ? ? ? ? $output = $this->obj->load->view($this->layout,$data, true);
? ? ? ? ? ? return $output;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? $this->obj->load->view($this->layout,$data, false);
? ? ? ? }
? ? }
}
?>
在相關的控制器里載入它:
$this->load->library('layout');
往下就可以輸出頁面:
$data["page_title"] = "簡明現代魔法";
$data["Keywords"] = "互聯網,技術";
$data["Description"] = "專注于互聯網技術";
$this->layout->view('support',$data);
我們的template或是稱之為layout的文件(layout_main.php)大致如下(簡化了,實際應用中會有很多網站固定元素的):
<html>?
<body>?
<?=$content_for_layout ?>
<?php
//不習慣短標簽寫法的,可以用標準寫法如下
//echo $content_for_layout ;
?>
</body>?
</html>
而控制器中載入的視圖,例中是“support”。我們只要專注support的內容就可以了。它會填充到template或是叫l(wèi)ayout文件中的$content_for_layout部分,并整個一并輸出。
如果,我們的template或是叫l(wèi)ayout不想叫l(wèi)ayout_main.php比如想叫template.php;那么我們載入layout library時就要指定template的名稱,在第二個參數指定(無需php后綴):
$this->load->library('layout','template');
你是否有這樣的煩惱,想學習高級技術,缺乏好的高級學習資料,收集了部分12年網站架構師授課的TP5、laravel、swoole、swoft、高并發(fā)、分布式等資料,現在免費分享給大家,官方群:820469789,大牛帶你裝逼帶你飛