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';
}
?>
如果只是需要读取包中某个文件的内容,需要文件名或者文件的索引值。
阅读剩余部分...
typecho已经移植到sina app engine上,commentToMail插件在sae没法直接应用,不过sae提供了mail类,实现原插件的功能还要简单些。做了个移植,简单测试应该没啥问题。对原插件做了简化。上传到sae应用上之后,激活插件后设置好smtp帐号和接收邮箱就能用了。
插件目录名CommentToMail,目录下有三个文件
Plugin.php 插件主文件
owner.html 发向博主的邮件主体模板
guest.html 发向评论者的邮件主体模板
阅读剩余部分...
悄悄的又把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的邮件发送方式改为异步,不用在前台等待邮件发送完毕才结束评论。PHP的异步很麻烦,google了不少时间才找到解决的办法,就是fsockopen()加自写header模仿post把发邮件的任务提交到另外一个页面。参考《PHP异步工作,提升用户体验》。
跨页面参数本来选取session传递,在本地测试没问题,但是一上服务器就出问题,后来就改为临时文件保存,发送成功后删除,作为小博客来讲应该没有多大影响。
插件下载:http://dl.dbank.com/c02z6im55x#
阅读剩余部分...