NeatCN(NeatStudio工作室) NeatStudio工作室

Archive for the ‘PHP开发’ Category

Enterprise Caching Summary[using asp.net]

06.26.2010 · Posted in PHP开发

Original page url is:http://www.cnblogs.com/teddyma/archive/2010/02/23/1672295.html ,Author is Teddy. let’s read the file… Background Caching is an very important topic in enterprise-level multi-tier application, especially for web application. A general rule for applying caching is you should consider do necessary caching at each tier of your application if possible. The other basic rule for applying caching is ...

Using Bloom Filters

06.21.2010 · Posted in PHP开发

前段时间,yhustc问群里的人说是,如果有两个4G的文件,怎么样把其中相同的URL取出来?(文件大小4G,每行一个URL,每个URL64个字节),一下子迷惘了。后来他说了这个Bloom Filters,于是找了点资料 。 以下为部分资料,下次贴带图片(公式)的。。【文中有图片,但事实上原文并没有图片,来源于http://www.chinaunix.net/jh/25/601028.html,由于不知道如何在这里粘贴图片,因此本文中没有包含图片说明,请对照原文档来阅读,原文档在:http://www.perl.com/pub/a/2004/04/08】 ...

Yii framework documentation and api manual

05.06.2010 · Posted in PHP开发

When you wrote your php code with yii framewok,you must look the reference.so i try to find yii framework documentation and api manual. Yii api manual is a chm file,so you can download it ,and you can write code for the reference.(又在乱写了。。。) Yii documentation that gives the definitive description of every feature of Yii and ...

php-curl manual

04.29.2010 · Posted in PHP开发

curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧。详见参考手册。 以下关于此函数各项使用参数: bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。 下列选项的值将被作为长整形使用(在option参数中指定): * CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 * CURLOPT_VERBOSE: 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。 * CURLOPT_HEADER: 如果你想把一个头包含在输出中,设置这个选项为一个非零值。 * CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。 * CURLOPT_NOBODY: 如果你不想在输出中包含body部分,设置这个选项为一个非零值。 * CURLOPT_FAILONERROR: 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。 * CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。 * CURLOPT_POST: 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。 * CURLOPT_FTPLISTONLY: 设置这个选项为非零值,PHP将列出FTP的目录名列表。 ...

try to use Yii framework

04.26.2010 · Posted in PHP开发

i want to try use the framework named Yii,so i downloaded it . It’s so easy to create a new project. First,please edit yiic.bat on framework directory,and set PHP_COMMAND path. Second.open yiic.bat on command line.if no paramters ,it will be show: Yii command runner (based on Yii v1.1.1) Usage: E:\www\htdocs\travel\yii\framework\yiic [parameters...] The following commands are ...

array search

04.08.2010 · Posted in PHP开发

其实这是并不能算是一个search的方法,但我写这个方法是为了快速定位到数组里的key,以返回相应的值。 例如: $arr = array( 'a' => array( 'b' => array( 'c' => array( 'd' ) ) ), 'e' => array( 'f' => array( 'g' => array( 'h' ), 'i' => array( 'j' ) ) ) ); 象这样的数组,如果要取$arr['a']['b']['c']这样的值,写起来有点复杂,于是我这样写了一个函数 function search( $keys , $arr ){ if(!is_array($arr) && !is_object($arr)){ return ; } $keys = explode("." , $keys ...

根据日期取得当前的星期

03.30.2010 · Posted in PHP开发

PHP的date函数是有时间范围区间的,即只能从1970~2038年,因此在这个区间范围之外的算法都是不准的。那倒底怎么算呢?其实是有一个公式的: 蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公 式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的 13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。) 算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。【膘叔备注,如果小于0,则先+7再取余数】 以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下: 蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1 =49+[12.25]+5-40+[28.6] =49+12+5-40+28 =54 (除以7余5) 即2049年10月1日(100周年国庆)是星期5。 你的生日(出生时、今年、明年)是星期几?不妨试一试。 但其实上面的并不是特别准,我根据上面的公式写了一段代码。。。 //蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 function getDayofWeek ( $datetime , $delimiter = '-' ) { //其实这个explode,可以参考split函数,它的分隔支持类似正则的批量处理,比如split("[/.-]",$datetime),可以查一下手册 list($year,$month,$day) = explode( $delimiter, $datetime ); if(strLen( $year ) == 2 && $year < 50){ $century = 20; //世纪数为当前世纪数-1 }else{ $century = subStr( $year, ...

为Zend的table加上prefix

03.24.2010 · Posted in PHP开发

我不知道别人是怎么做的。我做的很累啊。。。明明在继承Zend_Db_Table_Abstract的类中打印getAdapter方法时,有_config变量,但是,它是protected的,没有找到合适的方法调用。 于是没办法。到bootstrap.php文件里加了一个方法。 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected $_bootConfig; public function __construct( $application ) { parent::__construct($application); $this->_bootConfig = new Zend_Config_Ini( APPLICATION_PATH . '/configs/application.ini' ); Zend_Registry::set('config', $this->_bootConfig); } } 这样。我在bootstrap中也能直接使用 $this->_bootConfig 的变量。因为我使用了smarty,而且用的不是继承的方法。所以直接在__construct方法中把config变量赋值出来也有一定的方便之处。 就象这样: public function _initView() { require_once ('Smarty/Smarty.class.php'); $tpl = new Smarty(); $tplSettings = $this->_bootConfig->staging->smarty->toArray(); foreach( $tplSettings as $key=>$value){ $tpl->$key = $value; } Zend_Registry::set( 'tpl', ...

简单学习一下Zend_ACL

03.24.2010 · Posted in PHP开发

如果不想用rbac那么,简单权限管理ACL,应该是最方便的了。简要说一下原理吧。。 这个文件是放在/application/models/目录下的Acl.php,调用的时候就直接 $identity = Zend_Auth::getInstance()->getIdentity(); $acl = new Application_Model_Acl(); //然后判断 if( $acl->isAllowed( $identity['Role'] , 'xxxxx' ,'yyyy' )); //xxxx是controller名,yyyy是controller里的action名称。不用额外加action。。。 class Application_Model_Acl extends Zend_Acl { public function __construct() { /* * 第一次添加权限 "guest" ,支持查看所有的内容 */ $this->addRole(new Zend_Acl_Role('guest')); /* * 添加 'user' 组权限,权限大于 guest * 用户组能够发表回复 */ $this->addRole(new Zend_Acl_Role('user'), 'guest'); /* * 添加一个auth组 * auth用户权限基于user,并且可以发表文章 */ $this->addRole(new Zend_Acl_Role('auth'), ...

QeePHP中的优秀函数(三)

03.22.2010 · Posted in PHP开发

这几个函数还是来自于QeePHP的核心类Q中。不过,我是自认为,我的configure类有部分写的比他好,不过我没有考虑删除之类的。呵呵。 /** * 获取指定的设置内容 * * $option 参数指定要获取的设置名。 * 如果设置中找不到指定的选项,则返回由 $default 参数指定的值。 * * @code php * $option_value = Q::ini('my_option'); * @endcode * * 对于层次化的设置信息,可以通过在 $option 中使用“/”符号来指定。 * * 例如有一个名为 option_group 的设置项,其中包含三个子项目。 * 现在要查询其中的 my_option 设置项的内容。 * * @code php * // +--- option_group * // +-- my_option = this is my_option * // +-- ...