CodeIgniter架構——函數剖析+小知識點

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   io   strong   

串連資料庫:

格式: mysql -h主機地址 -u使用者名稱-p使用者密碼

資料庫的提示符:mysql>

退出資料庫:

exit(斷行符號)

 

知識點積累:

 

1、date_default_timezone_set — 設定用於一個指令碼中所有日期時間函數的預設時區

格   式:bool date_default_timezone_set ( string $timezone_identifier )

參   數:timezone_identifier,時區標識符,例如 UTC 或 Europe/Lisbon。合法標識符列表見所支援的時區列表。

傳回值:如果 timezone_identifier 參數無效則返回 FALSE,否則返回 TRUE。

 

2、date_default_timezone_get — 取得一個指令碼中所有日期時間函數所使用的預設時區

格式:string date_default_timezone_get ( void )

傳回值:返回一個string。

 

3、time — 返回當前的 Unix 時間戳記

格式:int time ( void )

傳回值:返回自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到目前時間的秒數。

 

4、date — 格式化一個本地時間/日期  

格式:string date ( string $format [, int $timestamp] )

參數:format - 必需。規定時間戳記的格式。

   timestamp- 可選。規定時間戳記。預設是目前時間和日期。

注釋:時間戳記是一種字元序列,它表示具體事件發生的日期和事件。

下面列出了一些常用於日期的字元:  d - 表示月裡的某天(01-31)  m - 表示月(01-12)  Y - 表示年(四位元)  1 - 表示周裡的某天其他字元,比如 "/", "." 或 "-" 也可被插入字元中,以增加其他格式。下面的例子用三種不同方法格式今天的日期:<?phpecho "今天是 " . date("Y/m/d") . "<br>";echo "今天是 " . date("Y.m.d") . "<br>";echo "今天是 " . date("Y-m-d") . "<br>";echo "今天是 " . date("l");?>
下面是常用於時間的字元:  h - 帶有首位零的 12 小時小時格式  i - 帶有首位零的分鐘  s - 帶有首位零的秒(00 -59)  a - 小寫午前和午後(am 或 pm)下面的例子以指定的格式輸出目前時間:<?phpecho "現在時間是 " . date("h:i:sa");?>
通過 PHP mktime() 建立日期date() 函數中可選的時間戳記參數規定時間戳記。如果您未規定時間戳記,將使用當前日期和時間(正如上例中那樣)。mktime() 函數返回日期的 Unix 時間戳記。Unix 時間戳記包含 Unix 紀元(1970 年 1 月 1 日 00:00:00 GMT)與指定時間之間的秒數。文法:mktime(hour,minute,second,month,day,year)
通過 PHP strtotime() 用字串來建立日期PHP strtotime() 函數用於把人類可讀的字串轉換為 Unix 時間。文法:strtotime(time,now)執行個體:<?php$d=strtotime("tomorrow");echo date("Y-m-d h:i:sa", $d) . "<br>";$d=strtotime("next Saturday");echo date("Y-m-d h:i:sa", $d) . "<br>";$d=strtotime("+3 Months");echo date("Y-m-d h:i:sa", $d) . "<br>";?>

 

5、使用POST、COOKIE、SERVER資料

跨站指令碼過濾:$data = $this->input->xss_clean($data);

Note:此功能只應該處理提交的資料。而不應該用於其它情況,因為它要消耗很大的cpu資源。

CodeIgniter 有3個 helper方法可以讓使用者取得POST, COOKIE 或 SERVER 的內容,如下所示:

(1)$this->input->post()格式:$this->input->post(‘some_data‘, TRUE);參數:第一個參數是所要取得的post中的資料,如果資料不存在,方法將返回 FALSE (布爾值)。第二個參數是可選的,如果想讓取得的資料經過跨站指令碼過濾(XSS Filtering),把第二個參數設為TRUE。擴充:$this->input->get(‘some_data‘, TRUE);用來取得GET資料。     $this->input->get_post(‘some_data‘, TRUE);先搜尋POST資料、後搜尋GET資料。(2)$this->input->cookie()(3)$this->input->server() 

 

 6、裝載類

裝載,顧名思義,是用來裝載元素。這些元素可以是庫 (類) 視圖檔案, 輔助函數, 模型, 或者是你自己的檔案。

 (1)$this->load->vars($array);

說明:這個函數以一個關聯陣列作為輸入參數,將這個數組用PHP的extract函數,轉化成與這個數組對應的變數 。你之所以要單獨用這個函數也許是因為,你想在控制器的建構函式中設定一些全域變數,以使這些變數在任意函數調用的視圖(view)裡能夠用上。你能多次調用這個函數。數組資料被緩衝並被併入一個數組,用來轉化成變數。

 (2)$this->load->helper(‘file_name‘);

說明:這個函數的作用是載入輔助函數,file_name 是輔助函數對應的檔案名稱,不包括 _helper.php 副檔名。 

(3)$this->load->library(‘class_name‘,$config,‘object name‘);

說明:這個函數是用來載入核心類。

class_name是你要載入的類的名稱。提示: “類”和“庫”是可替換使用的。

比如,你想用 CodeIgniter 來發送郵件,第一步就是在你的控制器裡載入 email 類。$this->load->library(‘email‘);一旦被載入,就可以使用該類了, 使用 $this->email->some_function()。

第二個參數是可選的,作用是允許你有選擇性地傳遞配置參數。一般來說你可以將參數以數組的形式傳遞過去。配置參數通常也可以儲存在一個設定檔中。

$config = array (                  ‘mailtype‘ => ‘html‘,                  ‘charset‘  => ‘utf-8,                  ‘priority‘ => ‘1‘               );$this->load->library(‘email‘, $config);

第三個參數也是可選的,如果為空白,類庫通常就會被賦值給一個與類庫同名的對象。例如,如果類庫名為 Session, 它將會被賦值給一個名為 $this->session 的變數。如果你希望使用你的自訂名稱,你可以通過第三個參數把它傳遞過去。

$this->load->library(‘session‘, ‘‘, ‘my_session‘);// Session 類現在可以通過下面的方式訪問:$this->my_session

 (4)$this->load->file(‘filepath/filename‘,true/false);

 說明:這是一個通用的檔案載入函數。在第一個參數中給出檔案所在的路徑和檔案名稱,對應的檔案將會被開啟。預設情況下,資料會被發送給瀏覽器,就如同視圖檔案一樣,但如果你將第二個參數設定為 true (布爾型) 那麼資料就會以字串的形式被返回,而不是發送給瀏覽器。

 (5)$this->load->database(‘options‘,true/false);

這個函數的作用是載入資料庫類。這兩個參數都是可選的。請查看 資料庫 段落以擷取更多資訊。

 (6)$this->load->view(‘filename‘,$data,true/false);

這個函數是用來載入你的視圖檔案。

第一個參數是必須的。 指定你要載入的視圖檔案的名稱。 注意: 無需加上 .php 副檔名,除非你使用了其他的副檔名。

第二個參數 optional 允許你傳入數組或對象, 傳入的數組或對象將使用 php extract 函數匯出,你可以在視圖中任意使用這些匯出的變數。

第三個參數是可選的,作用是改變函數的運行方式,將資料以字串的形式返回,而不是發送給瀏覽器。當你希望用不同的方式處理資料時,這個參數就非常有用。如果你將這個參數設定為true (布爾型),函數就會返回資料。這個參數的預設值是 false, 也就是資料將會被發送給瀏覽器。如果你希望資料被返回,記得要將它賦值給一個變數:

$string = $this->load->view(‘myfile‘, ‘‘, true);

(7)$this->load->database(‘model_name‘);

這個函數是用來載入你的模型檔案。

 

7、URL輔助函數

redirect()函數:

通過發送HTTP頭,命令用戶端轉向到您指定的URL。您既可以指定一個完整的URL,也可以對於站內內容,指定基於網站根目錄的相對URL。本函數會自動根據您的設定檔,構造出完整的URL。

你可以設定第二個參數為 location 定位操作(預設)或者 refresh 重新整理操作。定位操作比重新整理操作執行速度快,但是在Windows伺服器上有時會報錯。可選的第3個參數允許你發送一個特定的HTTP請求返回碼 - 舉例來說這可以用來建立303請求重新導向來服務於搜尋引擎。 預設的請求返回碼是302(臨時重新導向)。第3個參數只使用於‘location‘重新導向,而不是用於‘refresh‘。範例:

//注意!!一定不要忘了載入 $this->load->helper(‘url‘);if ($logged_in == FALSE){     redirect(‘/login/form/‘, ‘refresh‘);}// with 301 redirectredirect(‘/article/13‘, ‘location‘, 301);
注意:由於此函數需要處理header標頭檔,因此它必須在向用戶端輸出任何內容之前調用。注意:如果您想對HTTP頭做更細緻的設定,您可以使用輸出類的 set_header() 函數。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.