摘要: 入口文件 ThinkPHP.php-> 定义了APP_PATH,Think_PATH runtime.php-> 再次定义常用常量,如CORE_PATH 生成app(本项目)相关目录(build_app_dir()方法完成的) 接下来runtime开始调用Think.class.php Think::Start();//调用Think类的Start静态方法 Think.class.php -> Think::start(); 声明错误处理句柄 声明异常处理句柄 声明类的自动加... 阅读全文
posted @ 2012-12-03 16:37 睡着的糖葫芦 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 一、调试模式如何开启在入口文件中define('APP_DEBUG',true); //显示调试模式 在配置项里面加入'SHOW_PAGE_TRACE'=> true,二、开启调试模式,有什么作用?(默认关闭,在ThinkPHP.php 33行左右)答:1/非法调用的时候,有详细的报错信息,便于调试2.APP_DEBUG为true并且缓存文件存在,走缓存文件,否则加载Common文件夹下runtime.php (代码如下 Think.php)3.同时不产生缓存文件 APP_DEBUG为true 会删除RUNTIME_FILE(缓存)文件 (runtime. 阅读全文
posted @ 2012-12-03 16:22 睡着的糖葫芦 阅读(10076) 评论(0) 推荐(0) 编辑
摘要: 一,获取指定日期的unix时间戳strtotime("2009-1-22") 示例如下:1.echo strtotime("2009-1-22")结果:1232553600说明:返回2009年1月22日0点0分0秒时间戳二,获取英文文本日期时间示例如下:便于比较,使用date将当时间戳与指定时间戳转换成系统时间(1)打印明天此时的时间戳strtotime("+1 day")当前时间:1.echo date("Y-m-d H:i:s",time())结果:2009-01-22 09:40:25指定时间:1.echo 阅读全文
posted @ 2012-11-30 10:33 睡着的糖葫芦 阅读(234) 评论(0) 推荐(0) 编辑
摘要: php下intval()和(int)转换使用与区别没啥区别,一般用(int),另外还有 float, string, array 等intval()而言,如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。如果字符串第一个是‘-',则从第二个开始算起。如果参数是符点数,则返回他取整之后的值。例:intval("A")=0; intval(12.3223)=12; intval("1123Asdfka3243")=1123;$a=0.99;$b=(int)$a; //$b=0;$a=1.99;$b=(int)$a; // 阅读全文
posted @ 2012-11-27 14:35 睡着的糖葫芦 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1、PHP中set_magic_quotes_runtime()函数的作用:此函数来修改PHP.ini文件中的 magic_quotes_runtime 变量的状态,如果想获得magic_quotes_runtime 变量的状态用get_magic_quotes_runtime这个函数如果返回0表示本功能被关闭,如果返回1表示本功能已经开启。 magic_quotes_runtime的功能是当它被开启的时候所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。比如: 用户向数据库提交的数据中含有\" '这些符号的时候它就会在这些符号的前面自动加上" 阅读全文
posted @ 2012-11-26 15:53 睡着的糖葫芦 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 在Discuz代码中有这么一段:if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {exit('Request tainting attempted.');}register_globals 是php中的一个控制选项,可以设置成off或者on ,默认为off,决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。如果 register_globals打开的话, 客户端提交的数据中含有GLOBALS变量名, 就会覆盖 阅读全文
posted @ 2012-11-26 15:29 睡着的糖葫芦 阅读(1539) 评论(0) 推荐(0) 编辑
摘要: 看到很多的源码上面都用str_replace把路径转换了一下如:str_replace("\\", '/', dirname(__FILE__))); //用 \替换成/查了下主要原因:1.因为Linux系统不支持 \ 号作为目录分隔符,为了程序具有可移植性..2.而且某些处理文件或目录路径的函数遇到 \ 这个分隔符不认3.比如你有这样一个路径(待测)subdir\noname\rname如果你这样传进去 fopen("subdir\noname\rname")虽然我没试过,但我估计 \n \r 部分会被解释成换行符啥的 阅读全文
posted @ 2012-11-26 15:00 睡着的糖葫芦 阅读(202) 评论(0) 推荐(0) 编辑
摘要: function Pinyin($_String, $_Code='UTF8'){ //GBK页面可改为gb2312,其他随意填写为UTF8 $_DataKey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha". "|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chu 阅读全文
posted @ 2012-11-26 09:27 睡着的糖葫芦 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 刚开始学tp,一直纠结字段映射后,自动验证里的字段该怎么填。以下分析源码所得结论:1.当执行$model->create()方法时,如果没有传参数过来,$data=$_POST;2.先执行字段映射,后执行自动验证。3.字段验证其实就是替换数组的字段(把映射的字段替换成表中的真实字段)4.自动验证里的字段填写表中的真实字段自己写一个字段映射功能<?phpif(isset($_GET['action'])){ $data=array(); $data=$_POST; //字段映射 username和pasword为表中的真实字段 $arr=array('us&# 阅读全文
posted @ 2012-11-24 12:45 睡着的糖葫芦 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 今天遇到了php的cookie必须刷新再生效的问题,可用一下方法解决://PHP COOKIE设置函数立即生效,支持数组function cookie($var, $value = '', $time = 0, $path = '', $domain = '', $s = false){ $_COOKIE[$var] = $value; if (is_array($value)) { foreach ($value as $k => $v) { setcookie($var . '[' . $k . ']', 阅读全文
posted @ 2012-11-22 13:32 睡着的糖葫芦 阅读(6099) 评论(0) 推荐(0) 编辑