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

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 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方法的回调函数的参数)