使用ThinkPHP的一些小经验

一些常用的PHP小知识

nl2br(),php内置函数,可以将string中的\n替换为<br />,建议不要再入库的时候进行处理,而在向浏览器发送数据的之前再进行处理。

empty(),检测$_GET,$_POST中的某项是否不为空,使用empty函数而不是is_set函数,因为客户端提交空字符串的时候,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方法的回调函数的参数)

你可能感兴趣的:(thinkphp)