惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
B
Blog RSS Feed
Vercel News
Vercel News
博客园 - 聂微东
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
GbyAI
GbyAI
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
B
Blog

博客园 - coderlee

SysListView32 的使用资料 Windows操作系统中的I/O(读/写 输入/输出) 记下来 关于InitCommonControls() windows内核对象 笔记 vc开发windows程序时的字符串问题的一个归纳(原创) ie6的一个css的BUG MSSQL 注入资料总结 sql 高级注入【转载 国外某牛人写的】 MYSQL 注入资料总结 Access SQL 注入指南 Ver0.2.1 上传文件与文本编辑器的那点破事:冗余与管理 xss,csrf入侵方式小结 站内的GET和POST 与 站外的GET与POST 记一次艰难的sql提权。 CSS需要注意的事项 PHP5的__get与__set 如何在web服务器或ftp服务器上开设VPN服务 - coderlee 有关javascript 有关xhtml和css 有关字符,字节以及编码
使用ThinkPHP的一些小经验
coderlee · 2009-10-18 · via 博客园 - coderlee

一些常用的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方法的回调函数的参数)