php的ZipArchive 类

php5.2开始支持ZipArchive类,php4只能使用zip函数。其实在官方实现zip类之前,已经有大牛贡献了打包解压zip文件的方法。现在php包含了ZipArchive类,当然优先使用。使用该类能创建和解压zip文件,也能直接读取zip压缩包内的内容,很方便,这里主要总结下读取和解压的过程。

解压一个包到指定目录

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?> 

如果只是需要读取包中某个文件的内容,需要文件名或者文件的索引值。

阅读剩余部分...

CommentToMail的sae版

typecho已经移植到sina app engine上,commentToMail插件在sae没法直接应用,不过sae提供了mail类,实现原插件的功能还要简单些。做了个移植,简单测试应该没啥问题。对原插件做了简化。上传到sae应用上之后,激活插件后设置好smtp帐号和接收邮箱就能用了。

插件目录名CommentToMail,目录下有三个文件

Plugin.php   插件主文件
owner.html  发向博主的邮件主体模板
guest.html   发向评论者的邮件主体模板

阅读剩余部分...

CommentToMail又升了点

悄悄的又把CommentToMail插件做了一点改动:

1、把更多的工作放到后台异步执行,让前台的等待时间趋近于0,本地测试都在毫秒级别。

2、添加了让评论者选择是否接收邮件的选项(当你评论我的时候就看到了)。

3、插件设置项添加了是否接收自己的回复提醒设置。

4、修正了当博主的评论被回复时,将发送两封邮件到博主邮箱的问题,改为仅发送作为博主的邮件,过滤了作为评论者的邮件。

5、增加了邮件的默认主体模板。

插件目录下log目录中的文件说明:

owner.html  发给博主或是文章作者的邮件正文模板,标题模板还是在插件设置中修改。

guest.html  发给访客的邮件正文模板

error_log.txt  发送邮件错误日志,自动生成,插件设置中无法修改控制。

mail_log.txt  邮件发送日志,由插件设置中“记录邮件发送日志”一项控制。

ban_xx.list  拒绝邮件提醒的评论ID即‘coid‘,以500为基数,自动生成。

好像就没啥了。

需保证log和cache目录权限755或者777

具体下载 http://dl.dbank.com/c02z6im55x   注意选择 CommentToMail.1.2.3.zip

历次版本下载 http://dl.dbank.com/c0024a1aef

差点搞忘了一个,如果要让评论者选择是否接收邮件需要在模板的comments.php文件中添加

<label><input type="checkbox" name="banmail" id="banmail" value="stop" />千万别勾我,否则我就不告诉你“伊妹儿”有人踩你。</label>

勾上为不发送邮件,默认没勾上,即当评论被回复时要向原评论者发送邮件。

CommentToMail更新1.2.2版,改用异步方式发送邮件

费了半天劲终于把CommentToMail的邮件发送方式改为异步,不用在前台等待邮件发送完毕才结束评论。PHP的异步很麻烦,google了不少时间才找到解决的办法,就是fsockopen()加自写header模仿post把发邮件的任务提交到另外一个页面。参考《PHP异步工作,提升用户体验》。

跨页面参数本来选取session传递,在本地测试没问题,但是一上服务器就出问题,后来就改为临时文件保存,发送成功后删除,作为小博客来讲应该没有多大影响。

插件下载:http://dl.dbank.com/c02z6im55x#

阅读剩余部分...