使用ThinkPHP的一些小經驗

來源:互聯網
上載者:User

一些常用的PHP小知識

nl2br(),php內建函數,可以將string中的\n替換為<br />,建議不要再入庫的時候進行處理,而在向瀏覽器發送資料的之前再進行處理。

empty(),檢測$_GET,$_POST中的某項是否不為空白,使用empty函數而不是is_set函數,因為用戶端提交Null 字元串的時候,is_set函數會返回true。

 

ThinkPHP對RBAC的支援(Role-Based Access Control)

RBAC是Role-Based Access Control的簡寫,也就是角色型存取控制。

 

 

ThinkPHP中關於AJAX返回資料

Think.Core.Action.class.php中提供了ajaxReturn方法,可以根據設定檔中的DEFAULT_AJAX_RETURN參數,返回各種編碼的資料,使用ajax通訊時盡量調用該函數對資料進行編碼,以後想換資料編碼格式,可以很方便,另外返回編碼後的資料時,可以附加一個status狀態值,一個info資訊值。

protected function ajaxReturn($data,$info='',$status=1,$type='')
{
    // 保證AJAX返回後也能儲存日誌
    if(C('LOG_RECORD')) Log::save();
    $result  =  array();
    $result['status']  =  $status;
    $result['info'] =  $info;
    $result['data'] = $data;
    if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');
    if(strtoupper($type)=='JSON') {
        // 返回JSON資料格式到用戶端 包含狀態資訊
        header("Content-Type:text/html; charset=utf-8");
        exit(json_encode($result));
    }elseif(strtoupper($type)=='XML'){
        // 返回xml格式資料
        header("Content-Type:text/xml; charset=utf-8");
        exit(xml_encode($result));
    }elseif(strtoupper($type)=='EVAL'){
        // 返回可執行檔js指令碼
        header("Content-Type:text/html; charset=utf-8");
        exit($data);
    }else{
        // TODO 增加其它格式
    }
}

用戶端JS解析資料時,比如JQuery的getJSON方法,需要的實際資料是json.data(假設json為getJSON方法的回呼函數的參數)

聯繫我們

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