May
9
下面的这段代码,可以在当前文件夹下,生成一个test.txt,并每隔20秒,往里面写入一个时间戳,无论客户端是否关闭浏览器。
ignore_user_abort(true);
set_time_limit(0);
function write_txt(){
if(!file_exists("test.txt")){
$fp = fopen("test.txt","wb");
fclose($fp);
}
$str = file_get_contents('test.txt');
$str .= "\r\n".date("H:i:s");
$fp = fopen("test.txt","wb");
fwrite($fp,$str);
fclose($fp);
}
function do_cron(){
usleep(20000000);
write_txt();
}
while(1){
do_cron();
}
Apr
26
这是2006年老外发的一篇文章,转过来品一品
原文地址——10 things you (probably) didn’t know about PHP
转载地址——http://www.ccvita.com/index.php/302.html
1.使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。
想起了之前客齐集面试的一道题,问的是如果有100万个ip地址,如何存储能够比较节约空间。当时想了近半个小时,最后还是投降,今天才知道,原来这两个函数就可以搞定啦。
2.在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 “joeuser@wwwphp.net” 而不是 “joeuser@php.net” 的家伙们,这个方法可以很方便的抓住他们。
我还没有见过哪个验证系统会用到这个,要么不验证,要么直接发邮箱
3.如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的 mysqli_* 系列函数。一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。
我会选择PDO
4.学会爱上三元运算符。
不是很复杂的话,我会用
5.如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看 PEAR 中是否已经有了。很多 PHP 程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过 400 个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR 包。(参见 PECL)
不喜欢PEAR
Apr
21
花了半天的时间把smarty手册大概翻了一下,总结了一些使用要点和技巧。
先来说说安装
安装也许要说?恩,其实还是有点小学问的,我是通过继承来实现安装的,看代码
//setup.php
require("libs/Smarty.class.php");
class Smarty_C extends Smarty{
function Smarty_C(){
$this->smarty();
$this->template_dir = 'templates';
$this->compile_dir = 'templates_c';
$this->cache_dir = 'cache';
$this->left_delimiter = '<{';
$this->right_delimiter = '}>';
$this->caching = 1;
$this->cache_lifetime = 1800;
$this->config_dir = 'config';
//regist functions
$this->register_block('dynamic','smarty_block_dynamic',false);
}
}
function smarty_block_dynamic($param, $content, &$smarty) {
return $content;
}
我觉得这样更方便管理,可以在类里面完成插件的注册,而不用实例化一个对象后再注册,使用方法还是类似
require('setup.php');
$smarty = new Smarty_C();
//$smarty->assign('title','hello lzyy');
$smarty->display('test.tpl');
Apr
20
其实也不能算是一个类,只是将几个功能合并到了一块,方便使用
特点
- 可以自定义错误显示文件
- 可以建立错误日志
- 可以设置为调试模式
- 使用方便
看几个截图
debug模式下的错误显示
Apr
19
phpdocumentor用来生成php API文档非常方便,官方网站
但是有一个问题就是不支持中文,内置编码都是iso-8859-1,这样一来,像中文这样的多字节语言必然产生乱码,修改了一下,现在支持utf-8了。(其实就是修改了一下模板)
ps:为了方便,我只保留了earthli一个主题,也就是上面看到的截图
Mar
13
花了两天时间做的,用来熟悉一下AS3,界面比较丑陋,暂时定为v1.0,下次更新的时候,争取能够做的好看,花哨一点,哈哈
使用方法:
按回车出现输入框,按左右键翻页,就这么简单,嘿嘿。


