php,一个嵌套的缩写名称,是英文超级文本预处理语言(php:hypertext preprocessor)的缩写。php 是一种 html 内嵌式的语言,php与微软的asp颇有几分相似,都是一种在服务器端执行的嵌入html文档的脚本语言,语言的风格有类似于c语言,现在被很多的网站编程人员广泛的运用。php 独特的语法混合了 c、java、perl 以及 php 自创新的语法。它可以比 cgi 或者 perl 更快速的执行动态网页。用php做出的动态页面与其他的编程语言相比,php是将程序嵌入到html文档中去执行,执行效率比完全生成html标记的cgi要高许多;与同样是嵌入html文档的脚本语言javascript相比,php在服务器端执行,充分利用了服务器的性能;php执行引擎还会将用户经常访问的php程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是php高效率的体现之一。php具有非常强大的功能,所有的cgi或者javascript的功能php都能实现,而且支持几乎所有流行的数据库以及操作系统。
php 最初是1994年rasmus lerdorf创建的,刚刚开始只是一个简单的用perl语言编写的程序,用来统计他自己网站的访问者。后来又用c语言重新编写,包括可以访问数据库。在1995年以personal home page tools (php tools) 开始对外发表第一个版本,lerdorf写了一些介绍此程序的文档,并且发布了php1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了php,并且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,php2.0发布了。第二版定名为php/fi(form interpreter)。php/fi加入了对msql的支持,从此建立了php在动态网页开发上的地位。到了1996年底,有15000个网站使用 php/fi;时间到了1997年中,使用php/fi的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 zeev suraski 及 andi gutmans,而第三版就定名为php3。2000年,php4.0又问世了,其中增加了许多新的 性。
php的特性包括:
开放的源代码:所有的php源代码事实上都可以得到。
php是免费的。
基于服务器端:由于php是运行在服务器端的脚本,可以运行在unix、linux、windows下。
嵌入html:因为php可以嵌入html语言,所以学习起来并不困难。
简单的语言:php坚持脚本语言为主,与java以c++不同。
效率高:php消耗相当少的系统资源。
图像处理:用php动态创建图像
php 3与php 4的比较
php3跟apache服务器紧密结合的特性;加上它不断的更新及加入新的功能;而且几乎支持所有主流与非主流数据库;再以它能高速的执行效率,使得php在1999年中的使用站点已经超过了150000万。加上它的源代码完全公开,在 open source意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新的活力,使得php无论在unix、linux或是windows的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。
php4.0整个脚本程序的核心大幅更动,让程序的执行速度,满足更快的要求。在最佳化之后的效率,已较传统cgi或者asp等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。无论您接不接受,php 都将在 web cgi 的领域上,掀起巅覆性的革命。对于一位专业的web master 而言,它将也是必修课程之一。
php 4.0是更有效的,更可靠的动态web页开发工具,在大多数情况运行比 php 3.0要快,其脚本描述更强大并且更复杂, 最显著的特征是速率比的增加。php4.0这些优异的性能是php 脚本引擎重新设计产生的结果:引擎由 andigutmans 和 zeev suraski从底层全面重写。php4.0 脚本引擎 ――zend 引擎,使用了一种更有效的编译――执行方式, 而不是php 3.0 采用的执行 ――当解析时模型。
php4在3.0版的基础上增加或增强了许多有用的特征,主要如下:
(1)别名:在php4中,可以利用引用为变量赋值,这给编程带来了很大的灵活性。
(2)扩充了api 模块:php 4.0 为扩展的 api 模块的提供了扩展php接口模块, 它比旧的 api 版本显著地快。 php 模块已有的及最常用的接口多数被转换到使用这个扩展的接口。
(3)自动资源释放:php4增加了引用计数功能,这种新技术的引入使php4具有了自动内存管理功能,减轻了开发人员的负担。
(4)布尔类型:php 4.0 支持布尔类型。
(5)进程生成:在 unix 环境下的 php 4.0 提供了一个很智能和通用的生成进程, 使用了一种名为基于automake/libtool的系统生成技术。
(6)com/dcom 支持:php 4.0 提供 com/dcom 支持 ( 仅用于windows 环境 ) 可以无缝地存取和访问 com 对象。
(7)与php 3.0 兼容性很好:php 4.0 是与 php 3.0 代码向后兼容性接近100% 。由于 php 4 的改进的体系结构,两者有一些细微的差别,但是大多数人将可能永远不可能遇上这种情况。
php介绍
(8)配置:php4重新设计和增强了php。ini文件,这使得用php。ini来配置php显得极为容易,这个文件可以在运行时被apache(unix系统)或由windows 注册(windows 环境)。
(9)加密支持:php4实现了完整的加密, 这些加密功能是一个完整的mycrypt库,并且 php 4.0 支持哈希函数。blowfish,tripledes,md5,并且sha1 也是可使用的一些加密算法。
(10)类型检查:php 4.0 支持同一操作符用于评类型检查:===( 3 等号运算符 ), 为在两个值和其类型之间作检查。例如, 3 ===3 将视为假 ( 类型是不同的 ), 而 3 ==3 ( 相等判断 ) 将视为真。
(11)ftp 支持:php 4.0 支持 ftp 。通常, 你会为通过一个调制解调器连接下载一个大文件提供一个接口。然而, 如果你确实有需要,可以使用php 。
(12)php4新增函数或功能增强函数:php 4.0 新增了许多函数,同时也将许多现有的函数功能进行了增强,以下是一些例子。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()
(13)here打印:php 4.0 的here打印是与perl类似的, 尽管完全不相同。here是打印大容量文章的一个有用的方法,例如在 html文件中,不会漏掉任何一个字符,例如目录标记。
(14)http session fallback 系统:为 http session管理的一个 fallback 系统在 php 4.0被实现 。缺省情况下,session标识符由cookies存储。如果没有cookies支持或一项cookies任务失败,session标识符自动被创建并在 url 的查询字符串中被携带。
(15)isapi 支持:php 4.0 能作为一个个性化的 isapi 模块作为 iis插件 。这比 php 3.0 更有效, 它作为一个外部的程序来运行。
(16)内存:php 4.0 能更有效的使用内存, 导致较少的内存占用消耗,这主要归功于引用计数技术的实现。
(17)其他类成员函数:在 php 4.0 你能在成员函数本身的作用域或全局范围内调用其他类的成员函数。例如,你能用一个子函数覆盖父函数,并在子函数中调用父函数。
(18)多维数组:在 php 4.0 ,利用get,post,cookies的进行的数据传输支持多维数组。
(19)个性化的 http session支持:http session处理, 包括 fallback 系统管理,在 php 4.0被它的新库函数实现 。在版本 3.0 中处理session要求使用 phplib 和第三方的库函数, 它比把session直接地由 php 支持慢了许多。
(20)个性化的 java 支持:php 4.0 支持和java的交互。这种个性化的java 支持为php 在 java 对象上创建和使用方法提供一个简单并且有效的工具。
21)对象和数嵌套组:php 4.0 实现了功能更加强大的对象, 移去了 php 3.0存在的种种句法限制。对象能在数组以内被嵌套并且反过来也如此, 可以根据你的需要实现嵌套。
(22)面向对象的编程:php 4.0 为面向对象的编程和构造类及对象提供扩展的功能和新特征。php4实现了对象重载,引用技术等新技术。
(23)对象重载支持:对象重载语法允许第三方的基于面向对象的类库使用 php4 的面向对象的特征存取他们自身的功能。使用这个特征的一个 com 模块已经被实现了。
(24)输出缓冲支持:php 提供了一个输出缓冲函数集合。输出缓冲支持允许你写包裹函数功能压缩缓冲区。在 php4 的输出缓冲支持允许 html 头信息存放, 无论 html的正文是否输出。头信息( (header(), content type, and cookies ) 不采用缓冲 。
(25)增加了pcre 库:php 4.0 包括一个 perl 兼容的正则表达式 (pcre ) 库, 和正常regex库一起与 php 绑定。split 和replace pcre 功能被支持。pcre 和 perl 正规表达式之间有一些细微差别。
(26)php.ini 文件:php.ini文件在 php4.0 被重新设计, 使用的 php 的配置php.ini是更容易并且更有效的。全部文件能被apache 在运行时间操作 ( 在 apache环境 下 ) 或由 windows 注册表 ( 在 windows 下面 ) 。被加入php.ini文件的配置指令自动地在所有相关的模块中被支持。
(27)引用计数:php 4.0 为系统中的每个数值提供了引用计数, 包括资源。一旦一个资源不再被任何变量引用,它自动地被释放以节省内存资源。利用这个特征的最明显的例子一个内置sql查询的循环语句。在php 3.0中 ,每次递归另外的 sql 结果集合重复申请内存,直到脚本执行完毕,这些结果集合占用的内存才被释放。
(28)支持引用:通过引用可以改变一个变量的值。
(29)函数的运行时绑定:php 4.0 的运行时间绑定功能允许你在他们被声明以前调用, 无论声明是否在代码以后或是在运行时间。
(30)类的运行时信息:php 4.0 支持在运行时刻存取下列类信息:一个对象的类名,一个对象的父类的类名字,以及对象函数所在的名字。
(31)服务器抽象层:为支持web服务器提供了增强型 sapi ( 服务器 api ) 接口,是 php 4。0 不可分的一部分。这个服务器抽象层,提供了通用的web服务器接口支持,支持多线程web服务器,为大多数的web服务器提供透明的支持, 这些服务器包括 apache ,iis ( isapi ), 以及 aol 服务器。
(32)语法的点亮显示:php 4.0 语法的点亮显示允许开发者看见源代码而不是脚本, 这个功能比php 3。0中的更有效。它跑得更快,更执行得更好,并且产生更紧凑的html代码。
(33)由引用改变变量的值:php 4.0 由引用支持可变的赋值, “关联”的2个变量之中个的任何一个的值被改变,另外的变量的值同样被改变,这类似与c中的指针类型。
(34)在引用字符串中的变量引用:php 4.0 增强了在引用字符串中的变量引用。
php 在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
・ adabas d
・ dba
・ dbase
・ dbm
・ filepro
・ informix
・ interbase
・ msql
・ microsoft sql server
・ mysql
・ solid
・ sybase
・ odbc
・ oracle 8
・ oracle
・ postgresql
而在 internet 上它也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 imap, pop3;网管系统 snmp;网络新闻 nntp;帐号共用 nis;全球信息网 http 及 apache 服务器;目录协议 ldap 以及其它网络的相关函数。
除此之外,用 php 写出来的 web 后端 cgi 程序,可以很轻易的移植到不同的操作系统上。例如,先以 linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 sun 工作站上,不用重新编译 cgi 程序。面对快速发展的 internet,这是长期规划的最好选择。
变数类型:
php有好多种变数; 主要有这些:
- 数字 (integer - 例: 32)
- 布林值 (boolean - 例: true)
- 字串 (string - 例: 'a string of text')
- null
- 资源(resource)
- 阵列 (array - 例: arrayname[2])
语法:
语法有三种:
//comment
/* comment */
# comment
基本的 "control structures":
* if ... else
if (condition == true) ;
* if ... else then
if (condition == true)
else if (condition2 == true) ;
一个php实例:
<html>
<head>
<title>first program</title>
</head>
<body>
<?php
echo "hello world";
?>
</body>
</html>
请看:
www.php.net
php对面向对象的支持
面向对象编程的概念:
不同的作者之间说法可能不一样,但是一个oop语言必须有以下几方面:
抽象数据类型和信息封装
继承
多态
在php中是通过类来完成封装的:
<?php
class something {
// 在oop类中,通常第一个字符为大写
var $x;
function setx($v) {
// 方法开始为小写单词,然后使用大写字母来分隔单词,例如getvalueofarea()
$this->x=$v;
}
function getx() {
return $this->x;
}
}
当然你可以按自己的喜好进行定义,但最好保持一种标准,这样会更有效。数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象。方法在类中被定义成函数形式,在方法中访问类成员变量时,你应该使用$this->name,否则对一个方法来说,它只能是局部变量。
使用new操作符来创建一个对象:
$obj=new something;
然后你可以使用成员函数通过:
$obj->setx(5);
$see=$obj->getx();
在这个例子中,setx成员函数将5赋值给对象的成员变量x(不是类的),然后getx返回它的值5。可以象:$obj->x=6那样通过类引用方式来存取数据成员,这不是一个很好的oop习惯。我强烈建议通过方法来存取成员变量。如果你把成员变量看成是不可处理的,并且只通过对象句柄来使用方法,你将是一个好的oop程序员。不幸的是,php不支持声明私有成员变量,所以不良代码在php中也是允许的。继承在php中很容易实现,只要使用extend关键字。
<?php
class another extends something {
var $y;
function sety($v) {
$this->y=$v;
}
function gety() {
return $this->y;
}
}
"another"类的对象现在拥有了父类(something)的全部的数据成员及方法,而且还加上了自己的数据成员和方法。
你可以使用
$obj2=new something;
$obj2->setx(6);
$obj2->sety(7);
php现在还不支持多重继承,所以你不能从两个或两个以上类派生出新的类来。你可以在派生类中重定义一个方法,如果我们在"another"类中重定义了getx方法,我们就不能使 用"something"中的getx方法了。如果你在派生类中声明了一个与基派同名的数据成员,那么当你处理它时, 它将“隐藏”基类的数据成员。
你可以在你的类中定义构造函数。构造函数是一个与类名同名的方法,当你创建一个类的对象时会被调用,例如:
<?php
class something {
var $x;
function something($y) {
$this->x=$y;
}
function setx($v) {
$this->x=$v;
}
function getx() {
return $this->x;
}
}
所以你可以创建一个对象,通过:
$obj=new something(6);
构造函数会自动地把6赋值给数据变量x。构造函数和方法都是普通的php函数,所以你可以使用缺省参数。
function something($x="3",$y="5")
接着:
$obj=new something(); // x=3 and y=5
$obj=new something(8); // x=8 and y=5
$obj=new something(8,9); // x=8 and y=9
缺省参数使用c++的方式,所以你不能忽略y的值,而给x一个缺省参数,参数是从左到右赋值的,如果传入的参数少于要求的参数时,其作的将使用缺省参数。
当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基类的构造函数,你必须要在派生类的构造函数中显示调用。可以这样做是因为在派生类中所有父类的方法都是可用的。
<?php
function another() {
$this->y=5;
$this->something();
//显示调用基类构造函数
}
oop的一个很好的机制是使用抽象类。抽象类是不能实例化,只能提供给派生类一个接口。设计者通常使用抽象类来强迫程序员从基类派生,这样可以确保新的类包含一些期待的功能。在php中没有标准的方法,但是:如果你需要这个特性,可以通过定义基类,并在它的构造函数后加上"die" 的调用,这样就可以保证基类是不可实例化的,现在在每一个方法(接口)后面加上"die" 语句,所以,如果一个程序员在派生类中没有覆盖方法,将引发一个错误。而且因为php 是无类型的,你可能需要确认一个对象是来自于你的基类的派生类,那么在基类中增加一个方法来实义类的身份(返回某种标识id),并且在你接收到一个对象参数时校验这个值。当然,如果一个邪恶不好的程序员在派生类中覆盖了这个方法,这种方法就不起作用了,不过一般问题多发现在懒惰的程序员身上,而不是邪恶的程序员。
当然,能够让基类对程序员无法看到是很好的,只要将接口打印出来做他们的工作就可以了。在php中没有析构函数。
重载(与覆盖不同)在php中不支持。在oop中,你可以重载一个方法来实现两个或重多的方法具有相同的名字,但是有不同数量或类型的参数(这要看语言)。php 是一种松散类型的语言,所以通过类型重载不起作用,然而通过参数的个数不同来重载也不起作用。
有时在oop中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在php中实现它的技巧是:
<?php
class myclass {
function myclass() {
$name="myclass".func_num_args();
$this->$name();
//注意$this->name()一般是错误的,但是在这里$name是一个将被调用方法的名字
}
function myclass1($x) {
code;
}
function myclass2($x,$y) {
code;
}
}
通过在类中的额外的处理,使用这个类对用户是透明的:
$obj1=new myclass('1'); //将调用myclass1
$obj2=new myclass('1','2'); //将调用myclass2
有时这个非常好用。
多态
多态是对象的一种能力,它可以在运行时刻根据传递的对象参数,决定调用哪一个对象的方法。例如,如果你有一个figure的类,它定义了一个draw的方法。并且派生了circle和rectangle 类,在派生类中你覆盖了draw方法,你可能还有一个函数,它希望使用一个参数x,并且可以调用$x->draw() 。如果你有多态性,调用哪个draw方法就依赖于你传递给这个函数的对象类型。
多态性在象php这样的解释语言(想象一下一个c++编译器生成这样的代码,你应该调用哪一个方法?你也不知道你拥有的对象是什么类型的,好,这不是重点)是非常容易和自然的。所以php当然支持多态性。
<?php
function nicedrawing($x) {
//假设这是board类的一个方法
$x->draw();
}
$obj=new circle(3,187);
$obj2=new rectangle(4,5);
$board->nicedrawing($obj);
//将调用circle的draw方法
$board->nicedrawing($obj2);
//将调用rectangle的draw方法
用php进行面向对象编程
一些"纯化论者(purists)"可能会说php不是一个真正的面向对象的语言,这是事实。php 是一个混合型语言,你可以使用oop,也可以使用传统的过程化编程。然而,对于大型项目,你可能想/需要在php 中使用纯的oop去声明类,而且在你的项目只用对象和类。
随着项目越来越大,使用oop可能会有帮助,oop代码很容易维护,容易理解和重用。这些就是软件工程的基础。在基于web的项目中应用这些概念就成为将来网站成功的关键。
php的高级oop技术
在看过基本的oop概念后,我就可以向你展示更高级的技术:
序列化(serializing)
php不支持永久对象,在oop中永久对象是可以在多个应用的引用中保持状态和功能的对象,这意味着拥有将对象保存到一个文件或数据库中的能力,而且可以在以后装入对象。这就是所谓的序列化机制。php 拥有序列化方法,它可以通过对象进行调用,序列化方法可以返回对象的字符串表示。然而,序列化只保存了对象的成员数据而不包话方法。
在php4中,如果你将对象序列化到字符串$s中,然后释放对象,接着反序列化对象到$obj,你可以继续使用对象的方法!我不建议这样去做,因为(a)文档中没有保证这种行为在以后的版本中仍然可以使用。(b) 这个可能导致一种误解,在你把一个序列化后的版本保存到磁盘并退出脚本时。当以后运行这个脚本时,你不能期待着在反序列化一个对象时,对象的方法也会在那里,因为字符串表示根本就不包括方法。
总而言之,php 进行序列化对于保存对象的成员变量非常有用。(你也可以将相关数组和数组序列化到一个文件中)。
例子 :
<?php
$obj=new classfoo();
$str=serialize($obj);
//保存$str到磁盘上
//几个月以后
//从磁盘中装入str
$obj2=unserialize($str)
你恢复了成员数据,但是不包括方法(根据文档所说)。这导致了只能通过类似于使用$obj2->x来存取成员变量(你没有别的方法!)的唯一办法,所以不要在家里试它。
有一些办法可以解决这个问题,我把它留着,因为对这篇简洁的文章来说,他们太不好。我会很高兴地欢迎在php的后续版本中有全序列化的特性。
使用类进行数据存储php和oop一件非常好的事情就是,你可以很容易地定义一个类来操作某件事情,并且无论何时你想用的时候都可以调用相应的类。假设你有一个html表单,用户可以通过选择产品id号来选择一个产品。在数据库中有产品的信息,你想把产品显示出来,显示它的价格等等。你拥有不同类型的产品,并且同一个动作可能对不同的产品具有不同的意思。例如,显示一个声音可能意味着播放它,但是对于其它种类的产品可能意味着显示一个存在数据库中的图片。你可以使用oop或php来减少编码并提高质量:
定义一个产品的类,定义它应该有的方法(例如:显示),然后定义对每一种类型的产品的类,从产品类派后出来(sounditem类,viewableitem类,等等),覆盖在产品类中的方法,使它们按你的想法动作。
根据数据库中每一种产品的类型(type)字段给类命名,一个典型的产品表可能有(id, type, price, description, 等等字段)...然后在处理脚本中,你可以从数据库中取出type值,然后实例化一个名为type的对象:
<?php
$obj=new $type();
$obj->action();
这是php的一个非常好的特性,你可以不用考虑对象的类型,调用$obj的显示方法或其它的方法。使用这个技术,你不需要修改脚本去增加一个新类型的对象,只是增加一个处理它的类。
这个功能很强大,只要定义方法,而不去考虑所有对象的类型,在不同的类中按不同的方法实现它们,然后在主脚本中对任意对象使用它们,没有if...else,也不需要两个程序员,只有高兴。
现在你同意编程是容易的,维护是便宜的,可重用是真的吗?
如果你管理一组程序员,分配工作就是很简单的了,每个人可能负责一个类型的对象和处理它的类。
可以通过这个技术实现国际化,根据用户所选的语言字段应用相应的类就可以了,等等。
拷贝和克隆
当你创建一个$obj的对象时,你可以通过$obj2=$obj来拷贝对象,新的对象是$obj的一个拷贝(不是一个引用),所以它具有$obj在当时的状态。有时候,你不想这样,你只是想生成一个象obj类一样的一个新的对象,可以通过使用new语句来调用类的构造函数。在php中也可以通过序列化,和一个基类来实现,但所有的其它类都要从基类派生出来。
进入危险区域
当你序列化一个对象,你会得到某种格式的字符串,如果你感兴趣,你可以调究它,其中,字符串中有类的名字(太好了!),你可以把它取出来,象:
<?php
$herring=serialize($obj);
$vec=explode(':',$herring);
$nam=str_replace("\"",'',$vec[2]);
所以假设你创建了一个"universe"的类,并且强制所有的类都必须从universe扩展,你可以在universe 中定义一个clone的方法,如下:
<?php
class universe {
function clone() {
$herring=serialize($this);
$vec=explode(':',$herring);
$nam=str_replace("\"",'',$vec[2]);
$ret=new $nam;
return $ret;
}
}
//然后
$obj=new something();
//从universe扩展
$other=$obj->clone();
你所得到的是一个新的something类的对象,它同使用new方法,调用构造函数创建出的对象一样。我不知道这个对你是否有用,但是universe类可以知道派生类的名字是一个好的经验。想象是唯一的限制。
php的最新版本是5.2.3(2007-07-01更新)
我给你提供一个表吧!自己慢慢看,挺详细的!!
扩展名 文件类型 打开方式
.aiff 声音文件 windows media player
.!!! netants 暂存文件 netants
.ani 动画鼠标
.arj 压缩文件 arj
.avi 电影文件 windows media player
.awd 传真文档
.bak 备份文件
.bas basic 语言 basic
.bat dos批处理文件
.bin mac 二进制码文件 stuffit expander
.bmp 图象文件 画图/看图软件
.cab 压缩文件 winzip
.cdr corel图画文件 corel draw
.chk scandisk检察后制作的文件 可以删掉
.com dos命令文件 自执行
.cpx cryptapix加密图片文件 cryptapix
.cur 静态鼠标
.dbf 数据库文件 dbase, foxbase, access
.dll 应用程序扩展
.doc 文档文件 word
.dwg autocad文件 autocad
.eps illustrator 图画文件 adobe illustrator
.exe 执行文件 自执行
.fon 字体文件
.gb 国标码文件 南极星文字处理
.get getright 暂存文件
.gif 256色图象文件 画图/看图软件
.gz 可供unix或linux使用的压缩文件 winzip
.hqx macintosh 文件 stuffit expander
.htm 网页 浏览器
.html 网页 浏览器
.ico 图标
.ini 配置设置 笔记本或wordpad
.ipx ipx演示文件 浏览器加装ipx 插件
.jiff 图象文件 画图/看图软件
.jpeg 压缩过的图象文件 画图/看图软件
.jpg 压缩过的图象文件 画图/看图软件
.js javascript
.lnk 快捷方式连接文件 连接文件的相应程序
.m3u winamp播放列表 winamp
.mid 声音文件 windows media player
.vod quicktime影像文件 quick time
.mp3 压缩音乐文件 winamp
.mpeg 影像 windows media player
.mpg 影像 windows media player
.njx 南极星文档 南极星文字处理
.pcb 电子电路图设计文件 protel pcb
.
pdf 便携式文档格式,内含图片文字等等 adobe acrobat, adobe acrobat reader
.pm5 pagemaker 5 排版文件 page maker
.ppt power point 文件 microsoft power point
.ps ghostscript
.psd photoshop文件 adobe photoshop
.pub publisher排版文件 microsoft publisher
.qt quicktime影像文件 quick time
.ra real audio声音文件 real audio
.ram real audio影像文件 real audio
.rar 压缩文件 winrar
.rsf richwin 字体文件
.sch 电子原理图设计文件 protel schematic
.scr 屏保文件
.sea macintosh 启动文件
.sit 压缩 stuffit expander
.swf flash动画文件 浏览器加装macromedia flash 插件
.sys 系统文件
.tar unix压缩文件 winzip
.tif 高质量图象文件 画图/看图软件
.tiff 高质量图象文件 画图/看图软件
.tmp 暂存文件 可以删掉
.ttf 字体文件
.txt 纯文本文件 笔记本或全部文字处理系统
.vbs visual basic 编程文件 microsoft viasual basic
.viv vivo影像文件 浏览器加装vivo 插件
.vqf 压缩声音文件 yamaha soundvq player
.wav 未压缩的声音文件 windows media player
.wk1 lotus 123 试算软件文件 lotus 123, excel
.wq1 q-pro 试算软件文件 q-pro, excel
.wri write文字文档 word
.xls excel 试算软件文件 microsoft excel
.z unix压缩文件 winzip
.zip 压缩文件 winzip
图像文件:
bmp windows or os/2 bitmap
clp windows clipboard
cup dr. halo
dib windows or os/2 dib
emf windows enhanced meta file
eps encapsulated postscript
fpx flash pix
gif compuserver
iff amiga
img gem paint
jpg jpeg - jfif compliant
lbm deluxe paint
mac mac paint
msp macrosoft paint
pbm potable bitmap
pct macintosh pict
pcx zsoft paintbrush
pic pc paint
png portable network graphics
ppm portable pixelmap
psd photoshop
psp paint shop pro image
ras sun raster image
raw eaw file format
rle windows or compuserver rle
sct scitex continuous tone
tga truevision targa
tif tagged image file format
wmf windows meta file
wpg wordpefect bitmap
.aca
microsoft的代理使用的角色文档
.ace
一种压缩格式文档,压缩率甚至超过winrar,可以使用winace等工具打开
.acf
系统管理配置
.acm
音频压缩管理驱动程序,为windows系统提供各种声音格式的编码和解码功能
.acs
同.acm,但保存于本地
.ade
microsoft access项目扩展
.adn
microsoft access的空白项目模板
.adp
microsoft access的项目
.aif
声音文件,支持压缩,可以使用windows media player和quicktime player播放
.aif
音频文件,使用windows media player播放
.aifc
音频文件,使用windows media player播放
.aiff
音频文件,使用windows media player播放
.ani
动画光标文件扩展名,例如动画沙漏。
.ans
ascii字符图形动画文件
.ap
应用文件,存在于dbase,foxbase,foxpro系统软件的环境下
.app
应用文件,存在于dbase,foxbase,foxpro系统软件的环境下
.arc
一种较早的压缩文件,可以使用winzip,winrar,pkarc等软件打开
.arj
压缩文件。可以使用winzip,winrar,pkarc等软件打开
.art
是美国在线最常使用的映象格式,如果使用windows 2000必须安装补丁才能查看
.asc
ascii文本文件,这些文本可以被所有类型的字处理构件处理。有些系统中也可能会使用这些文件扩展名
来表示文件中包含图象信息
.asf
数据文件或是莲花(lotus)1-2-3下的屏幕文件
.asf
微软的媒体播放器支持的视频流,可以使用windows media player播放
.ash
汇编语言包含文件,类似c/c++中的.h文件
.asm
汇编语言源程序文件,一般使用masm或者turbo asm编译
.asp
微软的视频流文件,可以使用windows media player打开
.asp
微软提出的active server page,是服务器端脚本,常用于大型网站开发,支持数据库连接,类似php。可
以使用visual interdev编写,是目前的大热门
.asx
windows media 媒体文件的快捷方式
.au
是internet中常用的声音文件格式,多由sun工作站创建,可使用软件waveform hold and modify 播放。
netscape navigator中的liveaudio也可以播放.au文件
.avi
一种使用microsoft riff规范的windows多媒体文件格式,用于存储声音和移动的图片
.awd
传真浏览文档,用于传真的显示
.awp
传真关键词浏览器
.aws
传真签名浏览器
.adm
adm_auto 文件
.b64
base64编码的文件,可以使用winzip编码
.bak
备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该
文件相同的文件名
.bas
basic 语言源程序文件,可编译成可执行文件,目前使用basic开发系统的是visual basic
.bat
批处理文件,在ms-dos中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用
.bbs
电子告示板系统文章信息文件
.bfc
windows的公文包文件
.bin
二进制文件,其用途依系统或应用而定
.bmp
bitmap位图文件,这是微软公司开发paint的自身格式,可以被多种windows和windows nt平台及许多应用
程序支持,支持32位颜色,用于为windows界面创建图标的资源文件格式。
.bw
是包含各种像素信息的一中黑白图形文件格式
.c
c 语言源程序文件,在c语言编译程序下编译使用
.cab
microsoft制订的压缩包格式,常用于软件的安装程序,使用windows自带的实用程序,extract.exe可以
对其解压缩,winzip,winrar等都支持这种格式
.cad
autocad 图形文件
.cal
windows 中的日历文件
.cbx
标签文件,存在于dbase,foxbase,foxpro系列软件的环境下
.cda
保存在audiocd上的cd音轨
.cdf
internet explorer的频道文件
.cdr
coreldraw中的一种图形文件格式,它是所有coreldraw应用程序中均能够使用的一种图形图像文件格式
.cdx
索引文件,存在于dbase,foxbase,foxpro系统软件环境下
.cfg
配置文件,系统或应用软件用于进行配置自己功能,特性的文件
.chm
编译过后的html文件,常用于制作帮助文件和电子文档
.clp
在windows下剪贴板中的文件格式
.cmd
用于windows nt/2000的批处理文件,其实与bat文件功能相同,只是为了与dos/windows 9x下的bat有所
区别
.cmf
声卡标准的音乐文件,fm合成器等可以回放
.cnf
netmeetting会议连接文件
.cnt
联机帮助文件目录索引文件,通常和同名的.hlp文件一起保存
.col
由autodesk animator,autodesk animator por等程序创建的一种调色板文件格式,其中存储的是调色板
中各种项目的rgb值
.com
dos可执行命令文件,一般小于64kb
.cpd
传真封面文件
.cpe
传真封面文件
.cpi
国际代码页,用于提供相应国家的代码页信息
.cpl
控制面板扩展文件,windows操作系统使用
.cpp
c++语言源程序,非常强大的语言,在各种平台中都有相应的开发系统
.crd
windows中的卡片文件
.crd
windows中的卡片文件
.crt
用于安全方面的证书认证文件
.csv
用逗号分割的文本文件,一般用于在不同应用程序之间进行数据交换
.cur
windows下的光标资源文件格式,可用光标编辑软件编辑
.css
text/css文件
.dat
数据文件,在应用程序中使用
.dat
vcd中的图象声音文件,vcd播放软件可调用,或是通过vcd机播放
.dbf
数据库文件,foxbase,dbase,visual foxpro,等数据库处理系统所产生的数据库文件
.dcx
传真浏览文档文件
.ddi
映象文件,dup,hd,img等工具可展开
.dev
设备驱动程序
.dib
设备无关位图文件,这是一种文件格式,其目的是为了保证用某个应用程序创建的位图图形可以被其它应
用程序装载或显示一样
.dir
目录文件
.dll
windows动态连接库,几乎无处不在,但有时由于不同版本dll冲突会造成败各种各样的问踢
.doc
是目前市场占有率最高的办公室软件microsoft office中的字处理软件word创建的文档
.dos
windows保留的ms-dos的某些系统文件
.dot
microsoft word的文档模板文件,通过模板可以简化一些常用格式文档的创建工作,而且可以内嵌vba程序
来实现某些自动化功能
.drv
设备驱动程序文件,用在各种系统中
.dwg
autocad的图纸文件,也是许多绘图软件都支持的格式,常用于共享数据
.dxb
autocad创建的一中图形文件格式
.dxf
图形交换格式,一种计算机辅助设计的文件格式,最初开发用来与autocad一起使用,以便于图形文件在
应用程序之间的传递,它以ascii方式储存图形,在表现图形的大小方面十分精确
.der
certiticate文件
.dic
txt文件
.emf
由microsoft公司开发的windows 32位扩展图元文件格式,其总体设计目标是要弥补在microsoft windows
3.1(win16)中用的*.wmf文件格式的不足,使得图元文件更加易于使用
.eps
用postscript语言描述的一种图形文件格式,以文本文件保存,在postscript图形打印机上能打印出高品
质的图形图象,最高能表示32位图形图象
.err
编译错误文件,存在于dbase,foxbase,foxpro系列软件环境下
.exe
可执行文件,虽然后缀名相同,但具有不同的格式和版本
.exp
3ds使用的显示卡驱动程序
.exc
txt文件
.fky
键宏文件,存在于dbase,foxbase,foxpro系列软件的环境下
.flc
autodesk animator和animatorpro的动画文件,支持256色,最大的图象象索是64000*64000,支持压缩,
广泛用于动画图形中的动画序列,计算机辅助设计和计算机游戏应用程序
.fnd
保存的搜索结果
.fon
点阵字库文件
.for
fortran语言程序
.fot
指向字体的快捷键
.fp
配置文件,存在于dbase,foxbase,foxpro系列软件的环境下
.fpt
备注字段文件,存在于dbase,foxbase,foxpro系列软件的环境下
.frt
报表文件,存在于dbase,foxbase,foxpro系列软件的环境下
.frx
报表文件,存在于dbase,foxbase,foxpro系列软件的环境下
.fxp
编译后的程序,存在于dbase,foxbase,foxpro系列软件的环境下
.h
c语言源程序头文件
.hlp
windows应用程序帮助文件
.hqx
macintosh中使用binhex将二进制文件编码为7位的文本文件,大多数macintosh文件皆以.hqx出现(.bin极
少使用),在macintosh中,可使用stuffit expander对.hqx解码,在windows中可使用binhex 13解码
.ht
超级终端
.htm
保存超文本描述语言的文本文件,用于描述各种各样的网页,使用各种浏览器打开
.html
同.htm文件
.icm
图象配色描述文件
.ico
windows中的图标文件,可以包含同一个图标的多种格式,使用图标编辑软件创建
.idf
midi乐器定义
.idx
索引文件,存在于dbase,foxbase,foxpro系列软件的环境下
.iff
文件交换格式文件,这种文件格式多用于amiga平台,在这种平台上它几乎可以存储各种类型的数据,在其
它平台上,iff文件格式多用于存储图象和声音文件
.image
macintosh磁盘映象文件,常见于萍果机的ftp网点,在macintosh中由shrink wrap处理
.ime
windows下的输入法文件
.img
磁盘映象文件,用hd-copy,winimage等工具打开后可以恢复到一张磁盘上
.inc
汇编语言包含文件,类似c/c++中的.h文件
.inf
windows下的软件安装信息,windows的标准安装程序根据此文件内的安装信息对软件,驱动程序等进行安
装
.ini
windows中的初始化信息文件,已经用的不多了,新的应用程序将设置保存在系统的注册表中
.jar
一种压缩文件,arj的新版本,不过不太流行,可以使用winjar,winrar等打开
.jpeg
一种图片压缩文件,同.jpg
.jpg
静态图象专家组制订的静态图象压缩标准,具有很高的压缩比,使用非常广泛,可使用photoshop等图象
处理软件创建
.job
jobobject
.jfif
jpeg文件
.kbd
键盘布局文件
.lmb
deluxe paint中使用的一种图形文件格式,其编码方式类似于*.iff
.lnk
快捷方式,这个文件指向另一个文件,开始菜单的程序文件夹下每条项目都是一个lnk文件
.log
日志文件,通常用来记录一些事件之类
.lzh
一种古老的压缩文件,可以使用winrar打开
.mac
macintosh中使用的一中灰度图形文件格式,在macintosh paintbrush中使用,其分辨率只能是720*567
.mag
图形文件格式
.mcc
dialer10callingcard(电话卡文件)
.mci
mci命令集
.mdb
microsoft access使用的数据库格式,是非常流行的桌面数据库
.men
内存应用文件,存在于dbase,foxbase,foxpro系列软件的环境下
.mid
音频压缩文件,曾经非常流行,不过在现在的软件中用的很少了
.mif
midi乐器
.mmf
microsoft 邮件,比较少见
.mnt
菜单文件,存在于dbase,foxbase,foxpro系列软件的环境下
.mnx
菜单文件,存在于dbase,foxbase,foxpro系列软件的环境下
.moov
quicktime或苹果机的影视格式,在macintosh中由sparkle,fastplayer,movieplayer等软件播放,在
windows中可由quicktime播放
.mov
使用apple's quicktime格式的电影文件,在macintosh中由sparkle,fastplayer,movieplayer等软件播放
,在windows中可由quicktime播放
.movie
quicktime或苹果机的影视格式,在macintosh中由sparkle,fastplayer,movieplayer等软件播放,在
windows中可由quicktime播放
.mp3
采用mpeg-1 layout 3标准压缩的音频文件,是网上主要的压缩音频文件,这种文件由于具有极高的压缩
率和失真低的特点,是目前音乐盗版的主要文件格式,但目前受到vqf,wma等新标准的挑战
.mpg
采用mpeg-1标准压缩的视频文件,与vcd使用的格式非常相近,提供cd质量的音频信号和320*240的视频分
辩率,目前的媒体播放软件大都能播放,microsoft的wmv8和mpeg-4压缩的avi文件是其强大的竞争对手
.mpt
macintosh中使用的一种图形文件格式
.msg
microsoft邮件文档
.msk
animator pro中的一种图形文件格式,其中包含一个位图图形
.msn
microsoft网络的文件
.mmm
mplayer
.mlv
mpeg文件
.mak
mak文件
.man
application/x-trof-man格式的文件
.mpa
mpeg文件
.mpe
mpeg文件
.nws
microsoft internet news message
.obj
对象代码
.opt
是animator pro创建的图形文件格式
.ovl
由于软件功能多,内存偏小,不能一次性全部调入内存的可执行文件可能有同文件名的ovl文件
.obd
office.binder.95
.obt
office.binder.template
.obz
office.binder.wizard
.ofn
office.file.new
.qic
microsoft备份策略
.qpr
查询文件,在dbase,foxbase,foxpro系列软件的环境下使用
.qpx
查询文件,在dbase,foxbase,foxpro系列软件的环境下使用
.qt
machintosh 的quicktime影视格式,在macintosh中由sparkle,fastplayer,movieplayer等软件播放,在
windows中可由quicktime播放
.qtm
动画文件,这种文件格式是由apple计算机公司开发,被apple macintosh和microsoft windows平台所支
持,支持25位颜色,最大图像分辩率是64000*64000,支持压缩,用于保存音频和运动视频信息
.que
queueobject
.rar
winrar提供的压缩文件格式,压缩率超过zip,同时提供的功能也更为丰富
.rec
windows下的记录器宏文件
.reg
windows 95的系统及应用程序注册文件,这种文件虽然以纯文本文件保存,但一样存在版本问题,不同的
操作系统使用的reg文件版本是不同的
.rif
rtf格式(rich text format)文件
.rle
一种压缩过的位图文件格式,rle压缩方案是一种极其成熟的压缩方案,特点是无损失压缩,既节省了磁
盘空间又不损失任何图像数据,但在打开这种压缩文件时,要花费更多时间,此外,一些兼容性不太好的
应用程序可能会搭不开
.rm
windows下的realplayer所支持的视频压缩文件,网上非常流行的流式视频文件,很多实时视频新闻等都
是采用这种格式的,不过,最新的windows media video v8已经对其发起了强大的攻势
.rmi
midi音序文件
.rtf
丰富文本格式文件,以纯文本描述内容,能够保存各种格式信息,可以用写字版,word等创建
.ra
readaudio文件
.ram
readaudio文件
.rnk
rnk文件
.rpm
audio/x-pn-realaudio-plugin格式文件
.sav
存档文件
.scp
用于windows系统中internet拨号用户,自动拨号登录用的脚本文件,可避免手动登录时繁琐的键盘输入
.scr
屏障保护文件
.sct
屏幕文件,在dbase,foxbase,foxpro系列软件的环境下使用
.scx
屏幕文件,在dbase,foxbase,foxpro系列软件的环境下使用
.set
microsoft备份集文件,用于保存要备份的内容,设置等信息
.shb
指向一个文档的快捷方式
.shs
碎片,可以从写字板中拖放一段文本到桌面上创建一个碎片,但使用价值不大
.snd
mac声音文件,apple计算机公司开发的声音文件格式,被macintosh平台和多种macintosh应用程序所支持
,支持某些压缩
.spd
postscript打印机描述文件
.sql
查询文件,在dbase,foxbase,foxpro系列软件的环境下使用
.svg
svg可以算是目前最火热的图像文件格式了,它是基于xml由worldwidewebconsortium联盟开发的,svg是
可缩放的矢量图形
.svx
amiga声音文件,commodore所开发的声音文件格式,被amiga平台和应用程序所支持,不支持压缩
.swf
flash是micromedia公司的产品,严格说它是一种动画编辑软件,实际上它是制作出一种后缀名为.swf的
动画,这种格式的动画能用比较小的体积来表现丰富的多媒体形式,并且还可以与html文件达到一种“水
乳交融”的境界
.swg
虚拟内存交换文件,由操作系统使用
.sys
系统文件,驱动程序等,在不同的操作系统中有不同的定义
.slk
excel.slk
.sit
application/x-stuffit格式文件
.taz
是以.z格式压缩的tar文件
.tbk
临时数据库文件,在dbase,foxbase,foxpro系列软件的环境下使用
.tga
图像文件,此文件格式的结构比较简单,属于一种图形,图像数据的通用格式,在多媒体领域有着很大影
响,是计算机生成图像向电视转换的一种首选格式
.tgz
winzip
.tif
同tiff
.tiff
图像文件,此图像格式复杂,存储内容多,占用存储空间大,其大小是gif图像的3倍,是相应的jpeg图像
的10倍,最早流行于macintosh,现在windows主流的图像应用程序都支持此格式
.tmp
临时文件,一般是系统和应用程序产生的临时使用的文件,当系统和应用程序退出时,会自动地删除其建
立的临时文件,如果是非正常退出,临时文件可能保留在磁盘上,在单任务系统下,可立即删除它们,在
多任务系统下,应删除那些不是正在使用的临时文件
.trn
翻译文件
.tsp
电话服务提供者
.ttf
truetype格式的字体文件,可以使用fontview.exe查看
.txt
文本文件
.ttc
ttc 文件
.tar
winzip
.url
internetshortcut(internet 上url地址的快捷方式)
.uls
uls文件
.vbx
microsoft 的visual basic语言的控件
.vcd
虚拟光驱工具制作的光盘镜像文件
.ver
版本描述,用于描述某个软件的版本信息的文件,内容因软件而异
.voc
声音文件,此文件格式由creative labs公司开发,被windows和dos平台所支持,支持压缩
.vxd
虚拟设备驱动程序,在windows操作系统中非常常见,是重要的系统文件
.vir
vir文件
.vsd
visio.drawing.4
.vss
visio.drawing.4
.vst
visio.drawing.4
.vsw
visio.drawing.4
.wab
通信簿文件,由系统中的通信簿程序使用
.wav
音频文件,此文件格式是在windows上用于保存音频信息的资源格式,windows中由waveform hold and
modify或navigator,或“媒体播放机”播放,存在许多编码方式,需要相应的解码程序才能播放
.win
窗口文件,在dbase,foxbase,foxpro系列软件的环境下使用
.wmf
microsoft windows中常见的一种图元文件格式,它具有文件短小,图案造型化的特点,整个图形常由各
个独立的组成部分拼接而成,但其图形往往较粗糙,并且只能在microsoft office中调用编辑
.wpc
写字板文档转换
.wps
wps文本文件,有多种版本,可以使用wps office,wps 2000等打开
.wri
windows写字板文档
.wll
word.addin
.wbk
work.backup
.wiz
word.wizard
.wht
whiteboard
.xab
microsoft邮件地址簿
.xbm
animator pro创建的一种图形文件格式,其中包含用来描述多边形的一系列点的信息
.xif
xifimage下产生的文档
.xla
excel.addim
.xlk
excel.backup
.xlc
excel.chart.5
.xlb
excel.sheet.5
.xlc
excel.chart.5
.xlt
excel.template
.xlv
excel.vbamodule
.xlw
excel.workspace
.xll
excel.xll
.xlm
excel.macro.sheet
.z
一种压缩文件
.zip
是dos/windows中最常见的一些文件后缀