几个软件推荐~
1. 向日葵 远程控制系统 用 手机控制电脑
2. Bdrive 可以让你很轻松的在 Mac/Windows 下架设自己多私有云储存,并可以通过 PC、Mac、iOS、Android 获取/上传数据。
相比于商业性质的各大类 Dropbox 服务,Bdrive可以将数据完全掌握在自己手里!
http://www.bdrive.com/
3. 网站服务器是一个在 Android 平台上搭建 Web 环境的小工具。@Appinn
这坑爹名字……很不好介绍
S3C2440 ARM linux 网络穿透NAT web
搬宿舍哥们设置 ARM开发板ip 想通过外网访问arm WEB service
由于学校的ip 需要MAC地址绑定 通过 arm 的mac 地址 申请 ip 但一直无法连接上网关,只能内网ping通。
最后通过路由器 设置好 NAT透射即可实现外网访问ARM ,web服务器。
vi /etc/init.d/rcS
添加如下:
vsftpd&
boa&
ifconfig eth0 192.168.1.102 up
route add default gw 192.168.1.1
CentOS 5的PHP和MySQL升级到最新版本
CentOS 5的PHP和MySQL升级到最新版本
为了安全和稳定起见,CentOS的库中,PHP和MySQL都是比较老的版本。
如果需要更新的最新版(php 5.3, mysql 5.5),需要手工编译,比较麻烦且容易出错。
幸好,有第三方库 epel 提供了最新版本的php和mysql,remi库。
使用remi库的方法还算简单吧,centos 5.x i386 执行下述脚本就可以了:
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/5/remi/i386/remi-release-5-7.el5.remi.noarch.rpm sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm sudo echo -e "priority=1\n" >> /etc/yum.repos.d/remi.repo sudo echo -e "priority=1\n" >> /etc/yum.repos.d/epel.repo sudo echo -e "priority=1\n" >> /etc/yum.repos.d/epel-testing.repo
centos 6.x x64 ,只需将前面的2个wget地址换成:
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
centos的其他版本对应的rpm具体地址,参见:
安装remi库后,更新的时候,指定使用 remi ,就能将php和mysql升级到最新版本了:
yum --enablerepo=remi update php* mysql*
————————————–
关于epel库的更多信息,请访问 http://fedoraproject.org/wiki/EPEL
remi库中的RPM包:http://rpms.famillecollet.com/SRPMS/
Windows上安装Python2.6+MySQL-Python
下载地址:http://www.python.org/download/releases/2.6.1/
下载msi文件并安装
MySQLdb版本: MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe
参见:http://sourceforge.net/forum/forum.php?thread_id=2316047&forum_id=70460
常见问题:
1.ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
D:\Program Files\Python2.6>python
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “D:\Program Files\Python2.6\Lib\site-packages\MySQLdb\__init__.py”, line 19, in <module>
>>> import _mysql
ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
解决方法:下载libmmd.dll(附件)和libguide40.dll(附件)两个dll文件并复制到python安装目录的Lib\site-packages下。
参见:http://sourceforge.net/forum/message.php?msg_id=5613887
2.ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
D:\Program Files\Python2.6>python
Python 2.6 (r26:66721, Oct 2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
D:\Program Files\Python2.6\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet
—————————————————————————————————-
解决方法:
1) file “__init__”, replace:
#注释
#from sets import ImmutableSet
#class DBAPISet(ImmutableSet):
#修改成
class DBAPISet(frozenset)
2) file “converters.py”, remove:
#注释
line 37:#from sets import BaseSet, Set
3) file “converters.py” 修改一处即可
line 129: set: Set2Str,
以上修改根据自己当前版本所做
和网上其它人的有所不同 如有不同请查看其它网友资料^_^
参见:http://sourceforge.net/forum/message.php?msg_id=5808948
demo
- import MySQLdb
- conn=MySQLdb.connect(host=”127.0.0.1″,user=”root”,passwd=”",db=”demo”,charset=”utf8″)
- cursor=conn.cursor()
- name = ”jacky”
- sql = ”insert into users(name) values(%s)”
- param = (name)
- n = cursor.execute(sql,param)
- print n
- conn.commit()
- n = cursor.execute(“select * from users”)
- for row in cursor.fetchall():
- print row[1]
- cursor.close()
- conn.close()
- Mysqldb.rar (1.7 MB)
centos 快速安装 python
wget http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm rpm -ivh chl-release-5-3.noarch.rpm yum clean all yum -y install python26
介个,使用这种方法安装可能会出现找不到libffi包的情况,使用下列命令可以解决:
$ wget ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
$ rpm -i libffi-3.0.5-1.el5.kb.i386.rpm
yum install libffi
yum install python26
If you get a message saying “Error: Missing Dependency: libffi.so.5 is needed by package python26-2.6.2-2.i386 (chl)”,
$ wget ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
$ rpm -i libffi-3.0.5-1.el5.kb.i386.rpm
That’ll do it. Run ‘python26′ instead of ‘python’ to start python 2.6.
MySQL-python
$ easy_install MySQL-python
if it fails to compile, it’s probably because:
1. You don’t have python-devel. run:
$ yum install python-devel
2. You don’t have gcc or your gcc is outdated or corrupted.
$ yum install gcc
and MySQL-python should be able to install.
OK, if it still fails, try:
$ yum install MySQL-python
and
$ yum install mysql-devel.i386
and easy_install MySQL-python should work now.
Python中正则表达式
今天学习了Python中有关正则表达式的知识。关于正则表达式的语法,不作过多解释,网上有许多学习的资料。这里主要介绍Python中常用的正则表达式处理函数。
re.match
re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。
- import re
- text = ”JGood is a handsome boy, he is cool, clever, and so on…”
- m = re.match(r”(/w+)/s”, text)
- if m:
- print m.group(0), ’/n’, m.group(1)
- else:
- print ’not match’
re.match的函数原型为:re.match(pattern, string, flags)
第一个参数是正则表达式,这里为”(/w+)/s”,如果匹配成功,则返回一个Match,否则返回一个None;
第二个参数表示要匹配的字符串;
第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
re.search
re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。
- import re
- text = ”JGood is a handsome boy, he is cool, clever, and so on…”
- m = re.search(r’/shan(ds)ome/s’, text)
- if m:
- print m.group(0), m.group(1)
- else:
- print ’not search’
re.search的函数原型为: re.search(pattern, string, flags)
每个参数的含意与re.match一样。
re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
re.sub
re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ‘ ‘ 替换成 ‘-’ :
- import re
- text = ”JGood is a handsome boy, he is cool, clever, and so on…”
- print re.sub(r’/s+’, ’-', text)
re.sub的函数原型为:re.sub(pattern, repl, string, count)
其中第二个函数是替换后的字符串;本例中为’-’
第四个参数指替换个数。默认为0,表示每个匹配项都替换。
re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r’/s’, lambda m: ‘[' + m.group(0) + ']‘, text, 0);将字符串中的空格’ ‘替换为’[ ]‘。
re.split
可以使用re.split来分割字符串,如:re.split(r’/s+’, text);将字符串按空格分割成一个单词列表。
re.findall
re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r’/w*oo/w*’, text);获取字符串中,包含’oo’的所有单词。
re.compile
可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:
- import re
- text = ”JGood is a handsome boy, he is cool, clever, and so on…”
- regex = re.compile(r’/w*oo/w*’)
- print regex.findall(text) #查找所有包含’oo’的单词
- print regex.sub(lambda m: ’[' + m.group(0) + ']‘, text) #将字符串中含有’oo’的单词用[]括起来。
更详细的内容,可以参考Python手册。
python 中的re 模块
正则表达式
就个人而言,主要用它来做一些复杂字符串分析,提取想要的信息
学习原则:够用就行,需要的时候在深入
现总结如下:
正则表达式中特殊的符号:
“.” 表任意字符
“^ ” 表string起始
“$” 表string 结束
“*” “+” “?” 跟在字符后面表示,0个——多个, 1个——多个, 0个或者1个
*?, +?, ?? 符合条件的情况下,匹配的尽可能少//限制*,+,?匹配的贪婪性
{m} 匹配此前的字符,重复m次
{m,n} m到n次,m,n可以省略
举个例子 ‘a.*b’ 表示a开始,b结束的任意字符串
a{5} 匹配连续5个a
[] 表一系列字符 [abcd] 表a,b,c,d [^a] 表示非a
| A|B 表示A或者B , AB为任意的正则表达式 另外|是非贪婪的如果A匹配,则不找B
(…) 这个括号的作用要结合实例才能理解, 用于提取信息
\d [0-9]
\D 非 \d
\s 表示空字符
\S 非空字符
\w [a-zA-Z0-9_]
\W 非 \w
一:re的几个函数
1: compile(pattern, [flags])
根据正则表达式字符串 pattern 和可选的flags 生成正则表达式 对象
生成正则表达式 对象(见二)
其中flags有下面的定义:
I 表示大小写忽略
L 使一些特殊字符集,依赖于当前环境
M 多行模式 使 ^ $ 匹配除了string开始结束外,还匹配一行的开始和结束
S “.“ 匹配包括‘\n’在内的任意字符,否则 . 不包括‘\n’
U Make \w, \W, \b, \B, \d, \D, \s and \S dependent on the Unicode character properties database
X 这个主要是表示,为了写正则表达式,更可毒,会忽略一些空格和#后面的注释
其中S比较常用,
应用形式如下
import re
re.compile(……,re.S)
2: match(pattern,string,[,flags])
让string匹配,pattern,后面分flag同compile的参数一样
返回MatchObject 对象(见三)
3: split( pattern, string[, maxsplit = 0])
用pattern 把string 分开
>>> re.split(‘\W+’, ‘Words, words, words.’)
['Words', 'words', 'words', '']
括号‘()’在pattern内有特殊作用,请查手册
4:findall( pattern, string[, flags])
比较常用,
从string内查找不重叠的符合pattern的表达式,然后返回list列表
5:sub( pattern, repl, string[, count])
repl可以时候字符串,也可以式函数
当repl是字符串的时候,
就是把string 内符合pattern的子串,用repl替换了
当repl是函数的时候,对每一个在string内的,不重叠的,匹配pattern
的子串,调用repl(substring),然后用返回值替换substring
>>> re.sub(r’def\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(\s*\):’,
… r’static PyObject*\npy_\1(void)\n{‘,
… ‘def myfunc():’)
‘static PyObject*\npy_myfunc(void)\n{‘
>>> def dashrepl(matchobj):
… if matchobj.group(0) == ‘-’: return ‘ ‘
… else: return ‘-’
>>> re.sub(‘-{1,2}’, dashrepl, ‘pro—-gram-files’)
‘pro–gram files’
二:正则表达式对象 (Regular Expression Objects )
产生方式:通过 re.compile(pattern,[flags])回
match( string[, pos[, endpos]]) ;返回string[pos,endpos]匹配
pattern的MatchObject(见三)
split( string[, maxsplit = 0])
findall( string[, pos[, endpos]])
sub( repl, string[, count = 0])
这几个函数和re模块内的相同,只不过是调用形式有点差别
re.几个函数和 正则表达式对象的几个函数,功能相同,但同一程序如果
多次用的这些函数功能,正则表达式对象的几个函数效率高些
三:matchobject
通过 re.match(……) 和 re.compile(……).match返回
该对象有如下方法和属性:
方法:
group( [group1, ...])
groups( [default])
groupdict( [default])
start( [group])
end( [group])
说明这几个函数的最好方法,就是举个例子
matchObj = re.compile(r”(?P\d+)\.(\d*)”)
m = matchObj.match(’3.14sss’)
#m = re.match(r”(?P\d+)\.(\d*)”, ’3.14sss’)
print m.group()
print m.group(0)
print m.group(1)
print m.group(2)
print m.group(1,2)
print m.group(0,1,2)
print m.groups()
print m.groupdict()
print m.start(2)
print m.string
输出如下:
3.14
3.14
3
14
(’3′, ’14′)
(’3.14′, ’3′, ’14′)
(’3′, ’14′)
{‘int’: ’3′}
2
3.14sss
所以group() 和group(0)返回,匹配的整个表达式的字符串
另外group(i) 就是正则表达式中用第i个“()” 括起来的匹配内容
(’3.14′, ’3′, ’14′)最能说明问题了。
正则表达式 记住的要点
1. | 竖直分隔符代表选择。例如「gray|grey」可以匹配grey或gray。
- 2. 数量限定
- 某个字符后的数量限定符用来限定前面这个字符允许出现的个数。最常见的数量限定符包括“+”、“?”和“*”(不加数量限定则代表出现一次且仅出现一次):
- + 加号代表前面的字符必须至少出现一次。(1次、或多次)。例如,「
goo+gle」可以匹配google、gooogle、goooogle等;
- ? 问号代表前面的字符最多只可以出现一次。(0次、或1次)。例如,「
colou?r」可以匹配color或者colour;
- * 星号代表前面的字符可以不出现,也可以出现一次或者多次。(0次、或1次、或多次)。例如,「
0*42」可以匹配42、042、0042、00042等。
- 匹配
- 圆括号可以用来定义操作符的范围和优先度。例如,「
gr(a|e)y」等价于「gray|grey」,「(grand)?father」匹配father和grandfather。
上述这些构造子都可以自由组合,因此,「H(ae?|ä)ndel」和「H(a|ae|ä)ndel」是相同的
表达式全集
正则表达式有多種不同的风格。下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表:
| 字符 | 描述 |
|---|---|
| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,「n」匹配字符「n」。「\n」匹配一个换行符。序列「\\」匹配「\」而「\(」则匹配「(」。 |
| ^ | 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配「\n」或「\r」之后的位置。 |
| $ | 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配「\n」或「\r」之前的位置。 |
| * | 匹配前面的子表达式零次或多次。例如,zo*能匹配「z」以及「zoo」。*等价于{0,}。 |
| + | 匹配前面的子表达式一次或多次。例如,「zo+」能匹配「zo」以及「zoo」,但不能匹配「z」。+等价于{1,}。 |
| ? | 匹配前面的子表达式零次或一次。例如,「do(es)?」可以匹配「does」或「does」中的「do」。?等价于{0,1}。 |
| {n} | n是一个非负整数。匹配确定的n次。例如,「o{2}」不能匹配「Bob」中的「o」,但是能匹配「food」中的两个o。 |
| {n,} | n是一个非负整数。至少匹配n次。例如,「o{2,}」不能匹配「Bob」中的「o」,但能匹配「foooood」中的所有o。「o{1,}」等价于「o+」。「o{0,}」则等价于「o*」。 |
| {n,m} | m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,「o{1,3}」将匹配「fooooood」中的前三个o。「o{0,1}」等价于「o?」。请注意在逗号和两个数之间不能有空格。 |
| ? | 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串「oooo」,「o+?」将匹配单个「o」,而「o+」将匹配所有「o」。 |
| . | 匹配除「\n」之外的任何单个字符。要匹配包括「\n」在内的任何字符,请使用像「(.|\n)」的模式。 |
| (pattern) | 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括號字符,请使用「\(」或「\)」。 |
| (?:pattern) | 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符「(|)」来组合一个模式的各个部分是很有用。例如「industr(?:y|ies)」就是一个比「industry|industries」更简略的表达式。 |
| (?=pattern) | 正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,「Windows(?=95|98|NT|2000)」能匹配「Windows2000」中的「Windows」,但不能匹配「Windows3.1」中的「Windows」。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
| (?!pattern) | 正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如「Windows(?!95|98|NT|2000)」能匹配「Windows3.1」中的「Windows」,但不能匹配「Windows2000」中的「Windows」。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 |
| (?<=pattern) | 反向肯定预查,与正向肯定预查类似,只是方向相反。例如,「(?<=95|98|NT|2000)Windows」能匹配「2000Windows」中的「Windows」,但不能匹配「3.1Windows」中的「Windows」。 |
| (?<!pattern) | 反向否定预查,与正向否定预查类似,只是方向相反。例如「(?<!95|98|NT|2000)Windows」能匹配「3.1Windows」中的「Windows」,但不能匹配「2000Windows」中的「Windows」。 |
| x|y | 匹配x或y。例如,「z|food」能匹配「z」或「food」。「(z|f)ood」则匹配「zood」或「food」。 |
| [xyz] | 字符集合。匹配所包含的任意一个字符。例如,「[abc]」可以匹配「plain」中的「a」。 |
| [^xyz] | 负值字符集合。匹配未包含的任意字符。例如,「[^abc]」可以匹配「plain」中的「p」。 |
| [a-z] | 字符范围。匹配指定范围内的任意字符。例如,「[a-z]」可以匹配「a」到「z」范围内的任意小写字母字符。 |
| [^a-z] | 负值字符范围。匹配任何不在指定范围内的任意字符。例如,「[^a-z]」可以匹配任何不在「a」到「z」范围内的任意字符。 |
| \b | 匹配一个单词边界,也就是指单词和空格间的位置。例如,「er\b」可以匹配「never」中的「er」,但不能匹配「verb」中的「er」。 |
| \B | 匹配非单词边界。「er\B」能匹配「verb」中的「er」,但不能匹配「never」中的「er」。 |
| \cx | 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的「c」字符。 |
| \d | 匹配一个数字字符。等价于[0-9]。 |
| \D | 匹配一个非数字字符。等价于[^0-9]。 |
| \f | 匹配一个换页符。等价于\x0c和\cL。 |
| \n | 匹配一个换行符。等价于\x0a和\cJ。 |
| \r | 匹配一个回车符。等价于\x0d和\cM。 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 |
| \S | 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。 |
| \t | 匹配一个制表符。等价于\x09和\cI。 |
| \v | 匹配一个垂直制表符。等价于\x0b和\cK。 |
| \w | 匹配包括下划线的任何单词字符。等价于「[A-Za-z0-9_]」。 |
| \W | 匹配任何非单词字符。等价于「[^A-Za-z0-9_]」。 |
| \xn | 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,「\x41」匹配「A」。「\x041」则等价于「\x04&1」。正則表达式中可以使用ASCII编码。. |
| \num | 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,「(.)\1」匹配两个连续的相同字符。 |
| \n | 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。 |
| \nm | 标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。 |
| \nml | 如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。 |
| \un | 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。
|
常用正则表达式
用户名
/^[a-z0-9_-]{3,16}$/
密码
/^[a-z0-9_-]{6,18}$/
十六进制值
/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
电子邮箱
/^([\w\d_\.-]+)@([\w\d_-]+\.)+\w{2,4}$/
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
URL
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
/^(https?:\/\/)?([\w\d_-]+\.)+\w{2,4}(\/[\w\d\.\?-_%=&]+)*$/
IP 地址
/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
或
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
HTML 标签
/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
/^[\u4E00-\u9FA5]+$/
正则表达式30分钟入门教程
http://deerchao.net/tutorials/regex/regex.htm
常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件
bsddb3:BerkeleyDB的连接组件
Cheetah-1.0:我比较喜欢这个版本的cheetah
cherrypy:一个WEB framework
ctypes:用来调用动态链接库
DBUtils:数据库连接池
django:一个WEB framework
docutils:用来写文档的
dpkt:数据包的解包和组包
MySQLdb:连接MySQL数据库的
py2exe:用来生成windows可执行文件
Pylons:我们领导推荐的web framework
pysqlite2:SQLite的连接组件
pythonwin:Python的Windows扩展
setuptools:无奈,PEAK的一套python包管理机制
sqlalchemy:数据库连接池
SQLObject:数据库连接池
twisted:巨无霸的网络编程框架
wxPython-2.6:因为需要保持与linux相同的版本才没用最新的,GUI编程框架
pypcap:抓包的
python-dnet:控制网络安全的其他设备
pyevent:Python的事件支持
pydot:画图的,graphiz
sendpkt:Python发包
simplejson:JSON的支持
DPKT:raw-scoket网络编程
Cx-oracle:连接oracle的好东东
Mechanize:爬虫连接网站常用
PIL:图像处理工具包
reportlab for PDF 文件。
PyQt4 for GUI界面
feedparser: rss解析
chardet:编码检测
scons: 项目构建工具,写好了模板用起来还是很方便的
scapy: 网络包构建分析框架,可编程的wireshark,有兴趣的google “Silver Needle in the Skype”
pefile: windows pe文件解析器
winpdb: 自己的程序或者用别的库不太明白的时候就靠它了
pywmi: 省了好多折腾功夫
pylint: 培养良好的编码习惯
下面是准备用的,不做评论:
pygccxml
pyparsing
pymacs
idapython
paimei
pysvn
pyLucene
wikidpad
1.Karrigell http://karrigell.sourceforge.net/
1.The Standard Python Libary http://effbot.org/librarybook/
1.Python操作PDF的Libary http://reportlab.org/
1.Python cURL Libary http://pycurl.sourceforge.net/
1.urlgrabber http://linux.duke.edu/projects/urlgrabber/
1.MySQL-Python http://mysql-python.sourceforge.net/
1.pyScripter
2.Python for Delphi http://mmm-experts.com/Products.aspx
1.Python Cookbook http://aspn.activestate.com/ASPN/Python/Cookbook/
1.pygame http://www.pygame.org/news.html
1.pymedia http://www.pymedia.org
1.pydbf http://dbfpy.sourceforge.net/
1.Pexpect http://pexpect.sourceforge.net/
1.dabo
desktop application frameworks http://dabodev.com/
1.pySerial
http://pyserial.sourceforge.net/
http://wiki.woodpecker.org.cn/moin/PySerial
1.python’s doc
http://wiki.woodpecker.org.cn/moin/PythonZhDoc
1.The Visual Module of VPython(3D)
http://vpython.org/index.html
1.PyLucene
http://pylucene.osafoundation.org/
1.DBUils
http://www.webwareforpython.org/DBUtils
1.http://happyiww.popo.blog.163.com/blog/
a good people’s blog
1.AppleScript,OSAComponents,HtmlCalendar
http://freespace.virgin.net/hamish.sanderson/index.html
1.Pypcap
http://code.google.com/p/pypcap/
http://monkey.org/~dugsong/dpkt/
http://www.winpcap.org/install/default.htm
python-memcached client module for memcached
Kodos,python的正则表达式调试工具,
PLY (Python Lex-Yacc)
http://www.dabeaz.com/ply/
正在用它写汇编器.
wxPython – GUI Framework
omniORBpy – CORBA Library
ZODB3 – an OODB implement
ReportLab – PDF generating solution
numpy+scipy+matplotlib
hachoir 各种多媒体元数据解析
python-orge 演示用
数据库的:
sqlalchemy
sqlobject
MySQL-python (easy_install的时候就是这个名字)
routes
beaker
两个模板引擎:
genshi
mako
paster
另外还有知道的
PyCrypto 加密的
paramiko 这个可以帮你写sftp,比twisted里面的那个好用一些
twisted 写服务器玩的
PyOpenGL
PyGame
Psyco 传说可以加速你的python程序
PIL (Python Image Library) 处理图片
PyObjC 这个是苹果上用的,写Cocoa程序
Python desktop client GUI application:
wxPython
PyOpenGL
PyXML
ZSI
davlib.py
ChartDirector
一个支持多种语言的图表库,无论是效果还是效率,都比jfreechart高。
############### 自己补充一下 ##################
游戏3D pyglet、pythonOgre、 blender(c),k-3d(c++),vpython,panda3d
===============================================
python包包收集 catswhocode.com 的 jbj
Graphical interface wxPython http://wxpython.org
Graphical interface pyGtk http://www.pygtk.org
Graphical interface pyQT http://www.riverbankcomputing.co.uk/pyqt/
Graphical interface Pmw http://pmw.sourceforge.net/
Graphical interface Tkinter 3000 http://effbot.org/zone/wck.htm
Graphical interface Tix http://tix.sourceforge.net/
Database MySQLdb http://sourceforge.net/projects/mysql-python
Database PyGreSQL http://www.pygresql.org/
Database Gadfly http://gadfly.sourceforge.net/
Database SQLAlchemy http://www.sqlalchemy.org/
Database psycopg http://www.initd.org/pub/software/psycopg/
Database kinterbasdb http://kinterbasdb.sourceforge.net/
Database cx_Oracle http://www.cxtools.net/default.aspx?nav=downloads
Database pySQLite http://initd.org/tracker/pysqlite
MSN Messenger msnlib http://auriga.wearlab.de/~alb/msnlib/
MSN Messenger pymsn http://telepathy.freedesktop.org/wiki/Pymsn
MSN Messenger msnp http://msnp.sourceforge.net/
Network Twisted http://twistedmatrix.com/
Images PIL http://www.pythonware.com/products/pil/
Images gdmodule http://newcenturycomputers.net/projects/gdmodule.html
Images VideoCapture http://videocapture.sourceforge.net/
Sciences and Maths scipy http://www.scipy.org/
Sciences and Maths NumPy http://numpy.scipy.org//
Sciences and Maths numarray http://www.stsci.edu/resources/software_hardware/numarray
Sciences and Maths matplotlib http://matplotlib.sourceforge.net/
Games Pygame http://www.pygame.org/news.html
Games Pyglet http://www.pyglet.org/
Games PySoy http://www.pysoy.org/
Games pyOpenGL http://pyopengl.sourceforge.net/
Jabber jabberpy http://jabberpy.sourceforge.net/
Web scrape http://zesty.ca/python/scrape.html
Web Beautiful Soup http://crummy.com/software/BeautifulSoup
Web pythonweb http://www.pythonweb.org/
Web mechanize http://wwwsearch.sourceforge.net/mechanize/
Localisation geoname.py http://www.zindep.com/blog-zindep/Geoname-python/
Serial port pySerial http://pyserial.sourceforge.net/
Serial port USPP http://ibarona.googlepages.com/uspp
Parallel Port pyParallel http://pyserial.sourceforge.net/pyparallel.html
USB Port pyUSB http://bleyer.org/pyusb/
Windows ctypes http://starship.python.net/crew/theller/ctypes/
Windows pywin32 http://sourceforge.net/projects/pywin32/
Windows pywinauto http://www.openqa.org/pywinauto/
Windows pyrtf http://pyrtf.sourceforge.net/
Windows wmi http://timgolden.me.uk/python/wmi.html
PDA/GSM/Mobiles pymo http://www.awaretek.com/pymo.html
PDA/GSM/Mobiles pyS60 http://sourceforge.net/projects/pys60
Sound pySoundic http://pysonic.sourceforge.net/
Sound pyMedia http://pymedia.org/
Sound FMOD http://www.fmod.org/
Sound pyMIDI http://www.cs.unc.edu/Research/assist/developer.shtml
GMail libgmail http://libgmail.sourceforge.net/
Google pyGoogle http://pygoogle.sourceforge.net/
Expect pyExpect http://pexpect.sourceforge.net/
WordNet pyWordNet http://osteele.com/projects/pywordnet/
Command line cmd http://blog.doughellmann.com/2008/05/pymotw-cmd.html
Compiler backend llvm-py http://mdevan.nfshost.com/llvm-py/
3D VPython http://vpython.org
encryption
pyDes DES加密解密模块http://twhiteman.netfirms.com/des.html
parsing pyparsing 类似lex/yacc但更简单的词法/语法分析器pyparsing.wikispaces.com
Tkinter———— Python默认的图形界面接口。
Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对 Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的, 目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开 发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。
Python Imaging Library(PIL)————python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进 行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。
Pmw(Python megawidgets)Python超级GUI组件集————一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。
PyXML———— 用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:
xmlproc: 一个符合规范的XML解析器。
Expat: 一个快速的,非验证的XML解析器。 还有其他
和他同级别的还有 PyHtml PySGML
PyGame———— 用于多媒体开发和游戏软件开发的模块。
PyOpenGL———— 模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。
NumPy、NumArray和SAGE———— NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的低层代码使用C来编写,所以速度的优势很 明显。NumPy是Numarray的后继者,用来代替NumArray。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代 Magma, Maple, Mathematica和Matlab 这类工具。
MySQLdb模块———— 用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。
PyGTK ———— 用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的那个库。有了它,你完全可以自信的尝试自己制造Photoshop
PyQt ———— 用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是 Scintillar编辑器类的Qt接口。
PyMedia ———— 用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
Psyco ———— 一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。
Python-ldap ———— 提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。
smtplib模块 ———— 发送电子邮件。
ftplib模块 ———— 定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自己的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959。
xmpppy模块 ———— Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。
原文地址:http://xinsync.xju.edu.cn/index.php/archives/4401
============================================
我常用的几个第三方 Python 库收藏 作者:赖勇浩(http://blog.csdn.net/lanphaday)
xPython
如果你之前是 windows 程序员,用 MFC 或者 WIN32API 开发界面程序,那进入 Python 国度最好的 GUI 选择应该是 wxPython。它是 wxWidgets 的 Python Bind,与 wxWidgets 的开发完美同步,最为重要的一点是它的消息机制与 MFC 颇为相似,以前在 MFC 的经验完全可以稍作变化就套用在 wxPython 上面。在 WIN32 开发中,最讨厌的一环肯定有 WM_SIZE 消息的处,在主窗口大小变化的时候,保持控件布局在 WIN32 是一件麻烦事。这件事情 wx 解决得非常完美,它的sizer 概念可以让我轻松地在不同窗口尺寸的情况下保持完美的控件布局。另外如果你已经讨厌了 MFC 的 doc-view 模型,wx 也可以给你一个新的选择;如果你非常喜欢 doc-view 模型,放心,在 wx 中仍然可以轻松实现,以前的思想依然可以在这里发挥余热。
wxPython 有两个封装,一个 PythonCard,另一个是 dabo。前者是 wxPython 的有限封装,不支持 wxPython 的全部特性,它的目标是让 wxPython 更加 Pythonic。后者比 PythonCard 要庞大不少,确切来说,它应该是一个三层架构的 C/S 模式的开发框架。如果你想开发基于数据库的应用(如 MIS、ERP 等)用 dabo 是一个不错的选择;另外,如果你之前习惯了 VB、VFP、Delphi 等 RAD 开发环境,dabo 并不比这些昂贵的工具差多少哦!
py2exe
按照邪恶的 windows 思维,编写的应用如果不编译出一个 .exe 文件恐怕是算不得“软件”的,py2exe 作用正是把你的 .py 脚本变成 .exe 文件,通常它会把脚本打包到一个 .zip 文件中去,但也你可以通过修改 setup.py 脚本把所有的脚本、依赖的 dll 等全部打包到一个 exe 中去,看起来跟 VC、VB 编译出来的程序没有什么两样!
如果你的客户需要在 windows 下使用你的应用程序,py2exe 是你不可或缺的工具。我就是用它打包由 wxPython 写的小工具给公司里的游戏策划用的。
psyco
脚本的执行效率多少有点差强人意,虽然优化起来并不是难事,但如果有简单的方法,近乎不用修改源代码,那当然值得去关注一下。psyco 的神奇在于它只需要在代码的入口处调用短短两行代码,性能就能提升 40% 或更多,真可谓是立竿见影!
如果你的客户觉得你的程序有点慢,敬请不要急着去优化代码,psyco 或许能让他立即改变看法。psyco 堪称 Python 的 jit,有许多潜力可以挖掘,如果剩下来给你优化性能的时间已经不多,请马上去阅读它的手册,有许多招儿轻松优化性能。
PIL
PIL 是 Python 的图像处理库,我的看法是强到没得说,简单到没得说。它可以打开数十种图像格式,常见的 jpg/png/bmp 等当然不在话下;此外还提供许多图像处理函数,如图像增强、滤波算法等,详情可以参考我以前的一篇文章《用Python 做图像处理》(http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx)和《计算图像相似度》(http://blog.csdn.net/lanphaday/archive/2008/04/24/2325027.aspx)。
MySQLdb
这是 Python 对开源数据库 Mysql 的支持,官网在http://sourceforge.net/projects/mysql-python。支持 Mysql 3.23-5.1 全系列版本,Python 版本的要求是 2.3-2.5。MySQLdb 是 Python DB API-2.0 的实现,现在已经很成熟了。最新的版本是 1.2.2 。
如果从事服务器开发,那少不得跟数据库连接池打交道,这时你可以使用 DBUtils 或 jonpy 两个开源程序库。其中 DBUtils 是一套数据库连接池库,而 jonpy 则包括了 CGI 以及数据库连接池等多个功能,请在阅读手册后选择合适的自己库。
pyprocessing
Python 解释器里的 GIL(全局解释器锁)使得 Python 在多核时代有点尴尬——这个支持原生线程的脚本语言竟然不能通过多线程利用多个 CPU 内核同时并发计算。pyprocessing 没有尝试去除 GIL,而是剑走偏锋,尝试从多进程的方式来帮助 Python 走出困境。结果就是使用 pyprocessing 创建进程和进程间通信不仅像使用内置的 threading 模块那么简单,甚至还更加简单。pyprocessing 不仅可以通过本机 socket 和管道进行通信,而且封装得极为完美,它的 Queue 实现用起来跟内置的 Queue 没啥两样,但它是一个进程间共享的队列哦!
pyprocessing 在 py2.6 和 py3.0 中已经作为内置模块了,也算是开发社区对 pyprocessing 项目的肯定吧。如果你用 Python 开发服务器应用,特别是网络游戏这样的应用,pyprocessing 怎么可以不去关注一下!
=============================================================================
Python模块安装
1. 单文件模块
直接把文件拷贝到$python_dir/lib
2. 多文件模块,带setup.py
python setup.py install
3. egg文件
1) 下载ez_setup.py,运行python ez_setup
2) easy_install *.egg
虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。
setup.py文件的使用:
% python setup.py build #编译
% python setup.py install #安装
% python setup.py sdist #制作分发包
% python setup.py bdist_wininst #制作windows下的分发包
% python setup.py bdist_rpm
setup.py文件的编写
setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。
简单的例子:
setup.py文件
from setuptools import setup, find_packages
setup(
name = ” mytest ” ,
version = ” 0.10 ” ,
description = ” My test module ” ,
author = ” Robin Hood ” ,
url = “ http://www.csdn.net ” ,
license = ” LGPL ” ,
packages = find_packages(),
scripts = [ " scripts/test.py " ],
)
mytest.py
import sys
def get():
return sys.path
scripts/test.py
import os
print os.environ.keys()
setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。
OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。
本机测试成功(win32-python25)!
==============================================================
setuptools它可以自动的安装模块,只需要你提供给它一个模块名字就可以,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里。
首先,安装setuptools这个东西,先去下载一个脚本: http://peak.telecommunity.com/dist/ez_setup.py 下载完后直接执行它就会帮你把setuptools给装好。
之后,安装模块的使用方法就是使用一个叫easy_install的命令,在Windows里,这个命令在python安装目录下的scripts里面,所以需要把scripts加到环境变量的PATH里,这样用起来就更方便,linux下不需要注意这个问题。
安装软件只需要执行:easy_install 模块名
===================================================
pyinstaller 来建立linux下的python独立执行文件
以下内容假定已安装好Python 2.4/2.5
一、下载并编译pyinstaller(只需做一次,以后可直接做第二步)
1.下载pyinstaller,现在的版本是1.3
(1)wget http://pyinstaller.hpcf.upr.edu/source/1.3/pyinstaller_1.3.tar.gz
2.解包进入源码目录
(1)tar zxv pyinstaller_1.3.tar.gz
(2)cd pyinstaller-1.3/source/linux
3.编译源代码
(1)python Make.py 生成python的 .pyc文件
如无错误,则出现如下提示(只有一行):
Now run “make” to build the targets: http://www.cnblogs.com/support/loader/run http://www.cnblogs.com/support/loader/run_d
(2)make 连接生成linux的 .o 文件
4.生成编译配置文件
(1)python Configure.py 生成config.dat配置文件
二、编译独立运行的python可执行文件
1.生成spec文件
python pyinstaller-1.3/Makespec.py –onefile –upx linuxlaptop.py
参数说明:
–onefile 生成单文件
–upx 生成压缩的文件(可减小执行文件体积,需先安装upx软件包)
2.生成最终的可执行文件
python pyinstaller-1.3/Build.py linuxlaptop.spec
执行完成后将在当前目录生成可执行的linuxlaptop文件,如有问题欢迎与我交流:linuxlaptop.cn。
========================================================================
用cx_Freeze把python打包成exe可执行文件
以前从来没有试过把Python打包,昨天试了试,发现打包也是一件挺容易的事情.Python打包有很多种选择.cx_Freeze是一种, py2exe也可以,还有一个pyinstaller.我用的是cx_Freeze,而py2exe因为sf实在太慢连不上.所以没办法,只好先用可以下载的.cx_Freeze的资料比较少,不过不是太痛苦,因为好像cx会比py2exe简便易用,而且好像是跨平台的,不错不错.
cx_Freeze的用法就一个命令FreezePython.exe,打包也很快捷:
FreezePython.exe –install-dir=”/your/path/to/install” app.py
然后就会把app.py以及其依赖的所有模块,包和库全部归整后放到–install-dir 所指的路径下.
碰到两个问题,一个是文件编码,一开始总是说找不到gb2312的编码,后面google了一下,发现要这么做:
在app.py中添加from encodings import gbk 一句,然后就可以了.
如果用到了gettext,要注意po文件中的
“Content-Type: text/plain; charset=gbk\n”
“Content-Transfer-Encoding: cp936\n”
这两句要这样写,字符集要用gbk,不要用gb2312.
另一个问题是控制台隐藏:
默认cx_Freeze打包后都是控制台程序,就算你打包一个wxPython程序,也会有一个黑黑的控制台在后面做背景,要去掉控制台就要这样:
FreezePython.exe –install-dir=”\your\install\path” –base-binary=Win32GUI.exe app.py
加了–bash-binary 后就可以只运行前台的界面了,不过如果程序出错,会弹出一个错误对话框,说找不到traceback模块.
这就要在app.py文件中加一句:
import traceback
把错误反馈以对话框形式弹出.
—————————————————————————
Web开发学习的资源
学习HTML 5编程和设计

- ★ HTML5 Rocks : Major Feature Groups 的学习 HTML5 的资源 (HTML5 演示, 教程 ). 源码
- 很不错的 HTML5 Dashboard – Mozilla,效果很炫。
- WhatWG Developers, 一个清楚的 HTML5 技术规格说明书。
- ★ StackOverflow : 大名鼎鼎的技术问答式论坛。
- ★ Addyosmani, jQuery 和 JavaScript 文章教程
- Sohtanaka, jQuery 和 JavaScript 文章和教程
- ★ Nettuts+ 是一个面对Web开发人员和设计人员的网站,提供各种技术教程和文章,覆盖 HTML, CSS, Javascript, CMS’s, PHP 和 Ruby on Rails.
- Codrops, 教程和 web 资源
- WebAppers, 最好的开源资源
- Tutorialzine – PHP MySQL jQuery CSS 教程, 资源和赠品
- Mozilla JavaScript guide
- codes snippets, 作者自己收集的一些代码片段
服务器端的软件

- ★ Node.js 是服务器端的 JavaScript 环境,其使用了异步事件驱动模式。其让Node.js在很多互联网应用体系结构下获得非常不错的性能。 源码 和 实时演示。
- PhantomJS 也是一个服务器端的 JavaScript API的WebKit。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG
- Lighttpd 一个轻量级的开源Web服务器。新闻,文档,benchmarks, bugs, 和 download. Lighttpd 支撑了几个非常著名的 Web 2.0 网站,如:YouTube, wikipedia 和 meebo.
- NGinx, 性能巨高无比的轻量级的Web服务器。比Apache高多了。花了6年的时间,终于走到了1.0版。
- Apache HTTP Server 是一个很流行的并支持多个流行的操作系统的Web服务器。
- ★ PHP 可能是最流行的服务器端的Web脚本动态处理语言。
- 当然,还有 Ruby, Python, Erlang, Perl, Java, .NET, Android, C++, Go,Fantom,CoffeeScript, D, …
PHP 框架和工具

- ★ WordPress 是一个基于博客系统的开源软件。参看《WordPress是怎么赢的?》
- Drupal 是一个内容管理系统 (CMS).
- Centurion 是一个新出现的开源 CMS ,一个灵然的 PHP5 Content Management Framework. 使用 Zend Framework, 其组件坚持通用,简单,清楚和可重用的设计原则。
- phpBB 一个开源的论坛(国内的Discuz!更多)
- ★ SimplePie : 超快的,易用的, RSS 和 Atom feed PHP解析。
- ★ PHPthumb, PHP 图片处理库
- ★ PHPMailer 强大的全功能的PHP邮件库
- PubSubHubbub协议,一个简单,开放, server-to-server 的 pubsub (publish/subscribe) 协议——Atom and RSS的扩展。
- 更多的请参看 – 20个你应该知道PHP库 和 9个强大免费的PHP库
数据库

- ★ Apache CouchDB 是一个面向文档的数据库管理系统。它提供以JSON 作为数据格式的REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。.源码.
- MonoQL 是一个采用PHP+ExtJS开发的MySQL数据库管理工具。界面极像一个桌面应用程序,支持大部分常用的功能包括:表格设计,数据浏览/编辑,数据导入/导出和高级查询等。
- MariaDB 是MySQL的一个分支,由MySQL 创始人Monty Widenius 所开发。GPL,用来对抗Oracle所有的MySQL的license的不测。自Oracle收购SUN以来,整个社区对于MySQL前途的担忧就没有停止过。
- ★ SQLite 不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。库实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。
- SQL 在线设计编辑器,这一节的那个图片就是这个在线编辑器的样子了。一个画数据库图表的在线工具。很强大。
API 和 在线数据

- ProgrammableWeb, 最流行的Web Services 和 API 目录大全。
- Google Data Protocol 一组Google服务的数据服务API。
- Yahoo! Developer Network – APIs 和 Tools
- Yahoo! Pipes 可视化在线编程工具,它是一个用于过滤、转换和聚合网页内容的服务。
- ★ The Yahoo! Query Language 一个很像 SQL的网页查询工具。
在线代码和媒体编辑器

- ★ CodeRun Studio一个基于JavaScript语言开发的跨平台的集成开发环境,它立足于云计算的设计思路,方便开发者在浏览器端便可以轻松开发、调试和部署网络应用程序。(参看《Coderun.com 在线开发IDE》)
- Cloud9 IDE – 一个基于Node.JS构建的JavaScript程序开发Web IDE。它拥有一个非常快的文本编辑器支持为JS, HTML, CSS和这几种的混合代码进行着色显示。
- ★ jsFiddle – Javascript的在线运行展示框架,这个工具可以有效的帮助web前端开发人员来有效分享和演示前端效果,其简单而强大 (JavaScript, MooTools, jQuery, Prototype, YUI, Glow and Dojo, HTML, CSS)
- Akshell,一种云服务,它使用服务端的JavaScript和在线的IDE帮助开发者进行快速应用程序开发。 它还提供云托管,所以部署是即时的。
- JSONeditor, 一个好用的JSON 编辑器
- ★ TinyMCE 一个轻量级的基于浏览器的所见即所得编辑器,支持目前流行的各种浏览器,由JavaScript写成。
- Ext Designer 是一个桌面应用工具,帮助你快速开发基于ExtJS 的用户界面。
- ★ LucidChart,一款基于最新的html5技术的在线图表绘制软件,功能强大,速度快捷,运行此软件需要支持html5的浏览器。
- Balsamiq Mockups, 产品设计师绘制线框图或产品原型界面的利器。
- Color Scheme Designer 3 - 一个免费的线上调色工具
- ★ Pixlr, 是一个来自瑞典基于Flash的免费在线图片处理网站。除了操作介面和功能接近Photoshop,还是多语言版本,支持简体中文。(以前酷壳介绍过)
- Aviary, 是一个基于HTML5 的在线图片处理工具,可以很容易的对图片进行后期处理。 Aviary API
- Favicon Generator, 线上favicon(16×16)制作工具。
代码资源和版本控制

- ★ GitHub 是一个用于使用Git版本控制系统的项目的基于互联网的存取服务。
- Git 是一个由Linus为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。其巨快无比,高效,采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。
- Google Code 谷歌公司官方的开发者网站,包含各种开发技术的API、开发工具、以及开发技术参考资料。
- Google Libraries API Google 将优秀的 JavaScript 框架部署在其 CDN 上,在我们的网站上使用 Google Libraries API 可以加速 JavaScript 框架的加载速度。
- Snipplr 一个开放的源代码技巧分享社区,号称Code 2.0。和一般的源码分享网站不同,它针对的并不是大型网站源码,而是一些编程的代码技巧。
JavaScript 桌面应用框架

- ★ jQuery 是一个快速、简单的JavaScript library, 它简化了HTML 文件的traversing,事件处理、动画、Ajax 互动,从而方便了网页制作的快速发展。 源码, API, API浏览, 很不错的文档.
- ★ 官方的 jQuery User Interface (UI) library (演示和文档). 源码,Themes Roller, Download.
- YUI 2 — Yahoo! User Interface Library
- Mootools, 一个超级轻量级的 web2.0 JavaScript framework
- Prototype 提供面向对象的Javascript和AJAX
- Dojo The Dojo Toolkit,一个强大的无法被打败的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX。Core提供Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。Dijit是一个可更换皮肤,基于模板的WEB UI控件库。DojoX包括一些创新/新颖的代码和控件:DateGrid,charts,离线应用,跨浏览器矢量绘图等。
- ★ Ext JS 4, 业内最强大的 JavaScript framework。
- PHP.js, 一个开源的JavaScript 库,它尝试在JavaScript 中实现PHP 函数。在你的项目中导入PHP.JS 库,可以在静态页面使用你喜欢的PHP 函数。
JavaScript 移动和触摸框架

- ★ jQuery Mobile : 是 jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。我们将尽全力去满足这样的需求。 Sources.
- Zepto.js Zepto.js 是支持移动WebKit浏览器的JavaScript框架,具有与jQuery兼容的语法。2-5k的库,通过不错的API处理绝大多数的基本工作。 Sources.
- MicroJS : Microjs网站应用列出了很多轻量的Javascript类库和框架,它们都很小,大部分小于5kb。这样你不需要因为只需要一个功能就要加载一个JS的框架。
- ★ PhoneGap :是一款开源的手机应用开发平台,它仅仅只用HTML和JavaScript语言就可以制作出能在多个移动设备上运行的应用。 Sources.
- ★ Sencha Touch Sencha Touch 是一个支持多种智能手机平台(iPhone, Android, 和BlackBerry)的 HTML5 框架。Sencha Touch可以让你的Web App看起来像Native App。美丽的用户界面组件和丰富的数据管理,全部基于最新的HTML5和CSS3的 WEB标准,全面兼容Android和Apple iOS设备。
- JQtouch, 是一个jQuery 的插件,主要用于手机上的Webkit 浏览器上实现一些包括动画、列表导航、默认应用样式等各种常见UI效果的JavaScript 库。 Sources.
- DHTMLX Touch 针对移动和触摸设备的JavaScript 框架。DHTMLX Touch基于HTML5,创建移动web应用。它不只是一组UI 小工具,而是一个完整的框架,可以针对移动和触摸设备创建跨平台的web应用。它兼容主流的web浏览器,用DHTMLX Touch创建的应用,可以在iPad、iPhone、Android智能手机等上面运行流畅。
jQuery 插件

- Waypoints 是一个jQuery 用来实现捕获各种滚动事件的插件,例如实现无翻页的内容浏览,或者固定某个元素不让滚动等等。支持主流浏览器版本。
- Lazy loader 插件可以实现图片的延迟加载,当网页比较长的时候,会先只加载用户视窗内的图片,视窗外的图片会等到你拖动滚动条至后面才加载,这样有效的避免了因图片过多而加载慢的弊端。
- TweenJS : 一个简单和强大的 tweening / animation 的Javascript库。
- Easings 类Css3的jQuery 动画插件
- Spritely 这个插件可以创建出如flash一样的动画效果,比如:在页面上有一只飞动的小鸟,一个动态滚动的背景等。
- File Upload, jQuery 文件上传插件4.4.1
- Slideshow/Carousel 插件. Sources.
- Supersized – 全屏式的背景/幻灯片插件
- Masonry i一款非常酷的自动排版插件,这款jQuery工具可以根据网格来自动排列水平和垂直元素,超越原来的css. Sources.
- jQuery 简单 Layout 演示,管理各种边栏式,可改变大小式的布局。
- Flexigrid – jQuery 数据表插件
- Isotope绝对是一个令人难以置信的jQuery插件,你可以用它来创建动态和智能布局。你可以隐藏和显示与过滤项目,重新排序和整理甚至更多。
- Super Gestures jQuery 插件可以实现鼠标手势的功能。
- MouseWheel 是由Brandon Aaron开发的jQuery插件,用于添加跨浏览器的鼠标滚轮支持。
- AutoSuggest jQuery 插件可以让你添加一些自动完成的功能。
- qTip 一个漂亮的jQuery 的工具提示插件,这个插件功能相当强大。
- jQuery Charts and graphic 用来制作图表。
- jQuery Tools– The missing UI library
其它 jQuery 资源
- http://www.smashingmagazine.com/2011/04/07/useful-javascript-and-jquery-tools-libraries-plugins
- http://webdesigneraid.com/weekly-html5-news-and-inspirations-%E2%80%93-tutorials-tools-resources-and-freebies-v-2/
- http://www.designer-daily.com/15-useful-jquery-plugins-and-tutorials-5207
- http://www.julien-verkest.fr/22/11/2007/240-plugins-jquery
- http://www.hotscripts.com/blog/10-great-html5-experiments-apps/
- http://www.noupe.com/jquery/excellent-jquery-navigation-menu-tutorials.html
- http://www.noupe.com/php/20-useful-php-jquery-tutorials.html
- http://aext.net/2010/04/excellent-jquery-plugins-resources-for-data-presentation-and-grid-layout/
- http://webdesigneraid.com/html5-canvas-graphing-solutions-every-web-developers-must-know/
- http://gestureworks.com/features/open-source-gestures/
- http://edtechdev.wordpress.com/2011/01/14/some-exciting-new-html5javascript-projects/
- http://net.tutsplus.com/articles/web-roundups/30-developers-you-must-subscribe-to-as-a-javascript-junkie/
HTML5 视频播放器

- ★ Popcorn.js 是一个HTML5 Video框架,它提供了易于使用的API来同步交互式内容,让操作HTML5 Video元素的属性,方法和事件变得简单易用。 (来自Mozilla)
- LeanBack Player HTML5视频播放器,没有依赖任何JavaScript框架。支持全屏播放,音量控制,在同一个页面中播放多个视频。 (来自Google)
- Vid.ly 为你上传的视频提供转换功能,并且为转换后的视频创建一个短网址。通过Vid.ly,让你的视频可以在14种不同的浏览器和设备上播放,不需要再去考虑将要浏览视频的人使用什么设备了,以避免各各软件巨头之间的利益之争带来了不兼容,给用户带来了巨大的困扰,短网址让你可以通过Twitter、Facebook等方式方便分享视频。Vid.ly还可以通过html代码嵌入到其他网页中。Vid.ly免费帐户空间为1GB,免费帐户也没有播放或浏览限制。
JavaScript 音频处理与可视化效果

- ★ 使用HTML5 和 Flash, SoundManager V2 只用单一API的提供了可靠,简单和强大的跨平台的音频处理。
- DSP, JavaScript的声音Digital Signal Processing
- The Radiolab Hyper Audio Player v1, 带给你 WNYC Radiolab, SoundCloud 和 Mozilla Drumbeat
- jPlayer, 一个 jQuery HTML5 音频/ 视频库,功能齐全的API
JavaScript 图形 和 3D

- ★ Processing.js是一个开放的编程语言,在不使用Flash或Java小程序的前提下, 可以实现程序图像、动画和互动的应用。其使用Web标准,无需任何插件。
- ★ Javascript 3D 引擎: ThreeJS 由 Mr Doob 开发,一个轻量级的 3D 引擎,不需要了解细节,傻瓜都能使用。这个引擎可以使用<canvas>, <svg> 和 WebGL.
- Shader Toy, 一款使用WebGL的在线着色器编辑器(2D/3D). 基于在线的应用架构使您无需下载任何软件即可开始体验. Shader Toy包含大量实用着色器, 诸如光线追踪, 场景距离渲染, 球体, 隧道, 变形, 后期处理特效等.
- PhiloGL, Sencha的PhiloGL是首个WebGL开发工具之一,提供了高水准的功能,来构建WebGL应用。Sencha创建了几个演示,来描述框架交互式3D虚拟化的能力,比如3D view of global temperature changes。
- WebGL Inspector 你就Firebug等Web调试工具一样,这个是 WebGL的调试工具。
- WebGL frameworks 由 Khronos Group 收集的一个WebGL框架列表。
- EaselJS, 一个使用html5的canvas的 JavaScript 库. Sources.
- JavaScript Game Frameworks 免费的JS游戏框架列表。另,可参看 JS游戏框架列表。
- Raphaël是一个小型的JavaScript 库,用来简化在页面上显示向量图的工作。你可以用它在页面上绘制各种图表、并进行图片的剪切、旋转等操作。参看Javascript向量图Lib–Raphaël
- jQuery SVG 插件让你可以了 SVG canvas 进行交互。
- Google chart tools – 参看本站的使用Google API做统计图
- Arbor.js, 是一个利用webworkers和jQuery创建的数据图形可视化JavaScript框架。它为图形组织和屏幕刷新处理提供了一个高效、力导向布局算法。
JavaScript 浏览器接口 (HTML5)

- ★ Modernizr – 是一个专为HTML5 和CSS3 开发的功能检测类库,可以根据浏览器对HTML5 和CSS3 的支持程度提供更加便捷的前端优化方案.Sources. 一个有用的列表 cross-browser Polyfills
- HTML5Shiv : 该项目的目的是为了让IE 能识别HTML5 的元素。
- Polyfills : 这个项目收集了一些代码片段其用Javascript支持不同的浏览器的特别功能,有些代码需要Flash。
- YepNopeJS : 一个异步的条件式的加载器。Sources.
- jQuery CSS3 Finalise : 是否厌倦了为每一个浏览器的CSS3属性加前缀?
- ★ Amplify.js :一套用于web应用数据管理和应用程序通讯的 jQuery 组件库。提供简单易用的API接口。Amplify的目标是通过为各种数据源提供一个统一的程序接口简化各种格式数据的数据处理。Amplify的存储组件使用localStorage 和 sessionStorage标准处理客户端的存储信息,对一些老的浏览器支持可能有问题。Amplify’为jQuery的ajax方法request增加了一些额外的特性。 Sources.
- History.js 优美地支持了HTML5 History/State APIs
- Socket.IO Web的socket编程。
JavaScript 工具

- ★ {{mustaches}} 小型的 JavaScript 模板引擎。
- json:select(), CSS式的JSON选择器
- HeadJS, 异步JavaScript装载。其最大特点就是不仅可以按顺序执行还可以并发装载载js。
- JsDoc Toolkit是一款辅助工具,你只需要根据约定在JavaScript 代码中添加相应的注释,它就可以根据这些注释来自动生成API文档。
- Responsive image, 一个试验性的项目,用来处理responsive layouts 式的图片。
- UglifyJS是基于NodeJS的Javascript语法解析/压缩/格式化工具,它支持任何CommonJS模块系统的Javascript平台。
- Dhteumeuleu, 交互式的 DOM 脚本和DHTML 的开源演示。
- Backbone是一个前端 JS 代码 MVC 框架,被著名的 37signals 用来构建他们的移动客户端。它不可取代 Jquery,不可取代现有的Template 库。而是和这些结合起来构建复杂的 web 前端交互应用。如果项目涉及大量的 javascript 代码,实现很多复杂的前端交互功能,首先你会想到把数据和展示分离。使用 Jquery 的 selector 和 callback 可以轻松做到这点。但是对于富客户端的WEB应用大量代码的结构化组织非常必要。Backbone 就提供了 javascript 代码的组织的功能。Backbone 主要包括 models, collections, views 和 events, controller 。
客户端和模拟器

- BrowserShot, 检查浏览器的兼容性,跨浏览器平器的测试
- Test everything… 输入一个你想要测试的URL……
- Android browser 模拟器
- iPhone browser 模拟器
- Opera browser 模拟器
- ★ Firebug 与 Firefox 集成,可以查看和调试你的Web页面。
CSS3 和 字库

- ★ CSS3 Maker CCS3的生成器
- 容易地创建 CSS3 animations。 Sencha Animator 是一个桌面应用可以为WebKit浏览器和触摸式移动设备创建 CSS3 animations 。
- CSSwarp – CSS 文本扭曲生成器
- Gradient Editor, 一个强大的Photoshop式的CSS 渐变编译器。来自 ColorZilla
- ★ Google Web Fonts 通过Google Web Fonts API 可以浏览所有的字体
- @font-face Kit Generator, 为Web转换字体
- Typetester, 比较字体。
- Media Queries. 一组 responsive web 设计。
- Pattern TAP, UI组件。
Website (FULL) 模板

- ★ HTML5 Boilerplate 是一个HTML5 / CSS / js模板,是实现跨浏览器正常化、性能优化,稳定的可选功能如跨域Ajax和Flash的最佳实践。 项目的开发商称之为技巧集合,目的是满足您开发一个跨浏览器,并且面向未来的网站的需求。 Sources.
- HTML5 starter pack 是一个干净的和有组织的目录结构,其可适合很多项目,还有一些很常用的文件,以及简单的Photoshop设计模板。
- ★ Initializr 是一个HTML5 模板生成器,其可以帮你在15秒内创建一个HTML5的项目。
- Animated Portfolio Gallery (教程)
- Slick MobileApp Website 如果通过 jQuery 和 CSS 制作一个手机应用的网站。
- RSS Reader 如果通过 jQuery Mobile 创建一个RSS Reader
- ★ Single Page Applications 使用jQuery的朋友们 (Backbone, Underscore, …)创建单一页面。
- Google TV Optimized Templates, 传统电视已经开始和网路融合,但现阶段产业仍然正在摸索之中,为此将来的网页亦会有结构上的改变。Google TV Optimized Templates是一个用HTML/JavaScript制成的开源软体,一如其名是一个对Google TV作出了最佳化的的网页范本,其特色是以遥控器作为操作的前提,令使用者无需输入任何文字就可以进行控制。未来除了会有专用遥控器外,还会采用智能手机透过W-iFi控制Google TV的方法。Optimized Templates的界面中左方会展示分类,右方会显示该分类下的影片截图,影片播放、切换、全画面表示都可透过键盘上的方向键、Backspace或Enter等键完成,方便今后的网站开发人员借镜。HTML5 版的模板使用了 Google TV UI library, jQuery 和 Closure 。
转自http://coolshell.cn/articles/4795.htmlhtt
另外一个寻找提供类似功能网站的方法
-
另外一个寻找提供类似功能网站的方法是利用 moreofit 比如搜索有哪些网站提供与feedity类似的功能
-
http://www.moreofit.com/similar-to/

近期评论