Posted by 淡水河边 on 2010-08-19
先检讨。比较浮躁,先前帖的Codeigniter ACL library 有较大的bug。配置和使用方法也没有说太多。今天正好用到,调试了一下。重新发布。嗯,这个也是淡水在ci在官网论坛上挖到的。还有个autoacl的,也是基于这个修改的。不过淡水觉得太耦合了,而且繁琐了。还是没有采用。 先来library: <?php if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);/** * MX_ACL – Access Control Library PHP5 * * Notes: * $config['cache_path'] must be set * * Install this file as application/libraries/MX_ACL.php * * @copyright Copyright (c) Wiredesignz & Maxximus 2009-11-03 * @version 1.1 * * Permission is hereby granted, free of charge, to any person obtaining [...]
Posted by 淡水河边 on 2010-06-26
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) <= 1 7天 SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名) 近30天 SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名) 本月 SELECT * FROM 表名 WHERE DATE_FORMAT( [...]
Posted by 淡水河边 on 2010-06-23
First you have to install XAMPP development package (http://www.apachefriends.org/en/xampp-linux.html) for your XAMPP installation. This package provides the necessary source files needed to compile the extra stuff Download ‘xdebug’ source from http://www.xdebug.com/ , uncompress it in a suitable directory, cd to that directory. Now run phpize [bruce@bruce-laptop xdebug-2.1.0RC1]$ /opt/lampp/bin/phpize if had errors: Cannot find autoconf. Please [...]
Posted by 淡水河边 on 2010-06-11
首先说明,这是淡水的牢骚,看不惯不要看。 老华仔歌里唱的应景“总逃不开工作表,做完了又来了,怎样也甩不掉……”。淡水手头的项目还没有完全结束,新的项目又要上马。于是前期就框架选择开大会,开小会。 有.net高手就开始在网上搜索合适框架。结果他得出的结论是Zend Framework,理由:官方。 不推荐Codeigniter是因为,一家小公司做的,后期支持跟不上。而且ci是轻量级的,功能不强。 php本身就是草根出身,如果看公司大小,那么为什么不用.net? ci是轻量级的,但是php能做的,他都能做,没有内置的功能,可以自己加阿?非得一定要和zend framework一样,几乎把所有能想到用到的功能都整合进去变成皇家内裤(类库)? 窃以为,做大型应用时应用框架快速开发是可取的,但是要考虑到代码的执行效率,和开发的灵活度。 zend framework能做到的, ci扩展一下也能做到,麻烦一点了。但是zend framwork有ci灵活么,ci2天可以掌握,zend framework可以么(太NB的天才不算)。 这些主流框架的评比本身没有太大的意义。框架只是工具,各有其特点(Yii高效;ci上手容易,代码优雅;thinkphp代码全中文注释,文档齐全;qee……),人才是重点。 如果理由是: zend framework是官方出品,支持应该比其他(ci)公司长久。 zend framework是官方出品,使用人数较多,人力资源丰富。 zend framework内置许多类库,扩展类库的时间可以节省不少。 zend framework内置许多类库,规范了代码(尽量使用内置类库)。 还有最具分量的理由:这是高层主管决定的。 这些我可以接受,但是说ci不行,以否定ci来肯定zend framwork,那就有些牵强了。 滔滔不绝的,连绵不断,就是要表明“zend framework是php官方出品,功能强大。ci一家小公司做的,后期支持跟不上。而且ci是轻量级的,功能不强。”。但是,zend framework哪些方面强大,ci又是哪里功能不强,都没有说出个一二三来。 嗯,滔滔不绝但也要言之有物才行吧!
Posted by 淡水河边 on 2010-04-16
名词解释: 修订版(revision):可以认为是某个文件在其生命周期内各个保存的快照,每个快照和一个时间区间对应。 版本库(Repository):存放修订版的数据库 本地工作拷贝(Local working copy):修订版在本地的副本 版本的检入(Check in):本地副本提交到服务器的版本库 检出(Check out):从服务器的版本库中取出修订版成为本地副本 版本号的来源:有两种策略,基于文件的计数和基于仓库的计数,subversion使用后者 标签(Tags):为版本加一个名字,便于检出 分支(Branches):修订版打分支,以后可以平行修改,互不干扰 合并(Merging):将分支的修订版合并为一个新的修订版 锁(Locking):为修订版枷锁 冲突(Conflict):并发版本控制时防止修订版混乱的错误机制 创建版本库 创建服务器端版本库 命令行: svnadmin create file_path/repo_name 初始导入(import) 通过命令行导入: svn import -m “init import” http://10.0.0.6/svn/teaching/ 该命令可将当前路径下文件导入到版本库中。 检出(checkout) 通过命令行检入: svn co http://10.0.0.6/svn/teaching/ mysvntest 或者: svn checkout http://10.0.0.6/svn/teaching/ mysvntest 最后取出来的新目录名,不给定就会用路径的最后一个目录名(如这里的teaching,这里给了就是mysvntest) 保持更新(update) 命令行: svn update 或者 svn up 多人合作时: 更新要经常频繁的做,尽量让问题及早暴露,便于处理。 提交代码前要更新,否则容易产生版本冲突。 通过第一步import后的那个目录并没有默认建立svn与远程的关系,需要手动从服务器checkout回服务器的版本到本地, 才算正式建立与远程的关系,才能直接 [...]
Posted by 淡水河边 on 2010-03-14
php5.3被放弃的函数有: ereg();//直接用mb_ereg代替,或是preg_match代替,但是匹配规则需要用/包括起来 eregi();//preg_match代替,在规则后加上i,如:preg_match(“/^(style|style_)(.*)*/i”, $file); ereg_replace(); set_magic_quotes_runtime(); split(); mysql_close(); // 将不支持全部关闭, 需要改为:mysql_close($link);
Posted by 淡水河边 on 2010-03-09
asp.net的md5加密貌似是16位的 而php的md5加密是32位的 这样解决 echo substr(md5("admin"),8,16); // 16位MD5加密效果等同于asp.net的md5echo "<hr>";echo md5("admin"); // 32位MD5加密 另:php的md5函数,按官方的说法,第二个参数设为true,可以生成16位的,但是淡水测试下来是乱码。淡水没空深究了,有心人可以找找缘由。
Posted by 淡水河边 on 2010-03-08
select distinct可以去掉重复记录。 disctinct将重复的记录忽略,但它忽略的是完全一致的重复记录,而不是其中某个字段重复的记录,或者说,distinct查询一个字段时好使,多个字段就不好使。 所以用聚合函数和group by实现 注意:group by只能跟聚合函数搭配使用 例表 ID username password TRDESC …………………… 1 A abcdef QR 2 A abcdef W34 3 A bbbbbb AD 4 B aaaaaa asdf 查询username和password组合起来的条件不能重复的查询结果(这个都能重复,不能不说这是个烂摊子) 当username和password重复时,取ID最大的记录: select * from mytable where ID in(select max(ID) from mytable group by username,password) 当username和password重复时,取ID最小的记录: select * from mytable where ID in(select min(ID) from mytable [...]
Posted by 淡水河边 on 2010-03-08
<?php if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);/*** MX_ACL – Access Control Library PHP5** Notes:* $config['cache_path'] must be set** Install this file as application/libraries/MX_ACL.php** @copyright Copyright (c) Wiredesignz & Maxximus 2009-11-03* @version 1.1** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation [...]
Posted by 淡水河边 on 2010-03-07
有用,记录一下。from:http://txm3217.blog.163.com/blog/static/21986987200762131027970/ 以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了。就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。 格式: ./ab [options] [http://]hostname[:port]/path 参数: -n requests Number of requests to perform //在测试会话中所执行的请求个数。默认时,仅执行一个请求 -c concurrency Number of multiple requests to make //一次产生的请求个数。默认是一次一个。 -t timelimit Seconds to max. wait for responses //测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。 -p postfile File containing data to POST //包含了需要POST的数据的文件. -T content-type Content-type header for POSTing //POST数据所使用的Content-type头信息。 -v verbosity How much troubleshooting [...]