通过PHP发送邮件(带附件、HTML等)

用PHP发邮件,可以走sendmail,但是MIME方面,如果用内置的,非常麻烦。

我使用了SwiftMail

有兴趣的可以看看他们的文档,支持SMTP、Sendmail,对MIME的支持也很简单很强大,支持附件、html等。

一个例子:
<?php
require_once './lib/swift_required.php';

//E-Mail
$mail_title = "I'm Subject";
$mail_content = "I'm Conte[......]

继续阅读

关于webpy模板自动HTML转义的问题。

摘抄自:http://webpy.org/tutorial3.zh-cn

要注意 web.py 将会转义任何任何用到的变量,所以当你将 name 的值设为是一段 HTML 时,它会被转义显示成纯文本。如果要关闭该选项,可以写成 $:name 来代替 $name

如果我们想部分转移,怎么办?

webpy显然提供了转移函数,我们在应用层直接调用就可以了。
from web.net import htmlquote

htmlquote(raw_text)[......]

继续阅读

用Python正则表达式实现Snippet高亮

高亮的概念很简单:搜索引擎中,把匹配的关键词变色。

我们可以用Python的正则实现这个功能。

re.sub提供了替换全部的功能,在替换串repl中,可以用\g<0>表示找到的第一个组,代码如下:
text = re.sub("%s" % (w), "<em>\g<0></em>", text, re.IGNORECASE | re.MULTILINE)[......]

继续阅读

算法技术手册 – 查找 – 散列查找(Hash查找)

对于含有n个元素的集合C,我们先构造一个Hash函数,让n映射到b个桶内,当选择合理时,速度会很快,时间复杂度O(1)。

完美哈希函数:不会产生冲突,是存在的。

对于>=1个值映射到同一个桶的情况下,就会发生碰撞。处理方法:

  • 链表:每个桶拉一个链表,第一遍散列后,在链表中查找是否存在元素。
  • 开放定址:构造双变量散列函数h(u, j)。h(u, 0) = h(u),此时退化为原始散列函数。

开放定址,分两类: