用PHP实现定时计划

文章分类:MySQL, PHP | 发表评论  查看次数:46 + 8

下面的这段代码,可以在当前文件夹下,生成一个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();
}

Read more

你不了解PHP的10件事情

文章分类:PHP | 发表评论  查看次数:155 + 16

这是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 地址。该函数的 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 “joeuser@wwwphp.net” 而不是 “joeuser@.net” 的家伙们,这个方法可以很方便的抓住他们。

我还没有见过哪个验证系统会用到这个,要么不验证,要么直接发邮箱

3.如果你使用的是 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的 mysqli_* 系列函数。一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。

我会选择PDO

4.学会爱上三元运算符。

不是很复杂的话,我会用

5.如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看 PEAR 中是否已经有了。很多 程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过 400 个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR 包。(参见 PECL)

不喜欢PEAR

Read more

smarty学习总结

文章分类:PHP | 只有1条评论  查看次数:457 + 31

花了半天的时间把手册大概翻了一下,总结了一些使用要点和技巧。

先来说说安装

安装也许要说?恩,其实还是有点小学问的,我是通过继承来实现安装的,看代码

//setup.

<?
require("libs/.class.");
class Smarty_C extends {
    function Smarty_C(){
        $this->();
        $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, &$) {
    return $content;
}

我觉得这样更方便管理,可以在类里面完成插件的注册,而不用实例化一个对象后再注册,使用方法还是类似

<?
require('setup.');
$ = new Smarty_C();
//$->assign('title','hello lzyy');
$->display('test.tpl');
 

Read more

[PHP]发一个错误处理的类

文章分类:PHP | 发表评论  查看次数:106 + 20

其实也不能算是一个类,只是将几个功能合并到了一块,方便使用

特点

  • 可以自定义错误显示文件
  • 可以建立错误日志
  • 可以设置为调试模式
  • 使用方便

看几个截图

debug模式下的错误显示

Read more

发一个支持utf-8的phpdocumentor

文章分类:PHP | 发表评论  查看次数:130 + 20

用来生成 API文档非常方便,官方网站

但是有一个问题就是不支持中文,内置编码都是iso-8859-1,这样一来,像中文这样的多字节语言必然产生乱码,修改了一下,现在支持utf-8了。(其实就是修改了一下模板)

ps:为了方便,我只保留了earthli一个主题,也就是上面看到的截图

文件下载

AS3+PHP+2DAYS = 许愿墙

文章分类:FLASH, PHP | 发表评论  查看次数:324 + 79

demo地址

花了两天时间做的,用来熟悉一下,界面比较丑陋,暂时定为v1.0,下次更新的时候,争取能够做的好看,花哨一点,哈哈

使用方法:
按回车出现输入框,按左右键翻页,就这么简单,嘿嘿。

源文件下载

共4页 1 2 3 4 下一页