首页 > php基础

Oracle Faq(Oracle的版本)

如需转载,请注明出处,谢谢!
以8.1.7.4.0为例说明:
8:版本号
1:新特性版本号
7:维护版本号
4:普通的补丁设置号码
0:特殊的平台补丁设置号码
另外有关Oracle是32bit/64bit的问题,说明如下:
在windows/linux系统中由于操作系统是32bit的,所以oracle肯定是32bit的;
在tru64中oracle肯定是64bit的;
在hpux/aix/solaris中要看具体情况了,如果是64bit的在server上启动sqlplus时会显示64bit的字样,你也可以通过
select * from v$version;或$ file $ORACLE_HOME/bin/oracle|more来查看,如:
<hpux>$ file $ORACLE_HOME/bin/oracle|more
/data1/app/oracle/product/8.1.7/bin/oracle: ELF-64 executable object file -
PA-RISC 2.0 (LP64)
如果希望支持大于1.75GB的SGA,那么建议使用64Bit oracle。32bit Oracle都有SGA的大小限制,虽然很多平台都有绕过去的办法,允许你开的大一些,终究不如直接用64Bit方便,而且即使绕过去,也还是不能开的很大。
 别的差别不大。

阅读全文

ldap+qmail+postaci 安装, 用户管理

ldap+qmail+postaci    安装, 用户管理
参考文献:
1. 建一个大容量的webmail系统(作者:谢顺华)
    目前唯一能找到的中文qmail+ldap资料
    http://www.linuxforum.net/doc/webmail.html
2. Postaci Webmail
    基于php的webmail系统, 支持pop3, imap, 使用数据库做缓存.
    相对于imp和sqwebmail来说, 配置相当容易, 而且界面很好.
    (http://www.trlinux.com/)
3. Simple ldap user admin tool
    For Qmail的php版用户管理, 可以设置用户资料, 别名, maillist, 公司组织...
    http://sourceforge.net/projects/alldap/
4. Softerra LDAP Browser
    win32的ldap查看修改工具
    http://www.ldapbrowser.com
5. Life With qmail-ldap
    http://www.lifewithqmail.org/ldap/
6. Life With qmail
    http://www.lifewithqmail.org/
说明:
    考虑到qmail使用系统用户在管理上不大方便. 而使用mysql作为用户又会和mysql用户冲突, 而且mysql的局限性很大, 没有ldap的open和自由扩展特性. 使用ldap后, 利用php的ldap函数就可以实现用户管理, 用户可方便的自行编程解决用户管理.
    因为不是虚拟主机, 所以选用了配置简单, 好用的Postaci和Simple ldap user admin tool. 适合单一团体/公司使用.
安装:
1. openldap请参考文献1的步骤1.在/etc/openldap目录下是openldap的设置, 除了要按参考1中增加qmail的qmailUser类型外, 还要注意修改slapd.conf文件, 关键内容如下:
#你的公司名, 最好用站点名
suffix       "dc=test, dc=com"
#管理员名称, 类似于系统管理员. 很长, 但是很重要.
rootdn       "cn=Manager, dc=test, dc=com"
#管理员密码(这里用的是明文密码)
rootpw       secret
加入基本数据:
ldapadd -D "cn=Manager,dc=test, dc=com" -W

阅读全文

DOS下一些很有用的网络命令

DOS下常用网络相关命令解释
Arp
显示和修改“地址解析协议”(ARP) 所使用的到以太网的 IP 或令牌环物理地址翻译表。该命令只有在安装了 TCP/IP 协
议之后才可用。
arp -a [inet_addr] [-N ][if_addr]]
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
参数
-a
通过询问 TCP/IP 显示当前 ARP 项。如果指定了 inet_addr,则只显示指定计算机的 IP 和物理地址。
-g
与 -a 相同。
inet_addr
以加点的十进制标记指定 IP 地址。
-N
显示由 if_addr 指定的网络界面 ARP 项。
if_addr
指定需要修改其地址转换表接口的 IP 地址(如果有的话)。如果不存在,将使用第一个可适用的接口。
-d
删除由 inet_addr 指定的项。
-s
在 ARP 缓存中添加项,将 IP 地址 inet_addr 和物理地址 ether_addr 关联。物理地址由以连字符分隔的 6 个十六进制
字节给定。使用带点的十进制标记指定 IP 地址。项是永久性的,即在超时到期后项自动从缓存删除。
ether_addr
指定物理地址。
Finger
在运行 Finger 服务的指定系统上显示有关用户的信息。根据远程系统输出不同的变量。该命令只有在安装了 TCP/IP 协
议之后才可用。
finger [-l] [user]@computer[...]
参数
-l
以长列表格式显示信息。
user
指定要获得相关信息的用户。省略用户参数以显示指定计算机上所有用户的信息:
@computer
Ftp
将文件传送到正在运行 FTP 服务的远程计算机或从正在运行 FTP 服务的远程计算机传送文件(有时称作 daemon)。Ftp
可以交互使用。单击“相关主题”列表中的“ftp 命令”以获得可用的“ftp”子命令描述。该命令只有在安装了 TCP/IP
协议之后才可用。Ftp 是一种服务,一旦启动,将创建在其中可以使用 ftp 命令的子环境,通过键入 quit 子命令可以从
子环境返回到 Windows 2000 命令提示符。当 ftp 子环境运行时,它由 ftp 命令提示符代表。
ftp [-v] [-n] [-i] [-d] [-g] [-s:filename] [-a] [-w:windowsize] [computer]
参数
-v
禁止显示远程服务器响应。
-n
禁止自动登录到初始连接。
-i
多个文件传送时关闭交互提示。
-d
启用调试、显示在客户端和服务器之间传递的所有 ftp 命令。
-g
禁用文件名组,它允许在本地文件和路径名中使用通配符字符(* 和 ?)。(请参阅联机“命令参考”中的 glob 命

阅读全文

PHP3中文文档(续6)

字符串操作函数
    PHP3.0中的字符串操作功能是比较多的,重要的有以下这些:
    (1)echo,print,printf,sprintf
    用于输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数.
 
    (2)strchr, strlen, strtok, strrchr, strrev, strstr, strtolower, strtoupper, substr, ucfirst
    用的字符串操作函数,有些和C中的同名函数意义完全一致. strrev是把一个字符串翻转. strtolower和strtoupper是将字符串转换为小写和大写.ucfirst是把字符串的第一个字符变成大写. substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).头位置是 从0算起的.如果是负数,则是从尾部向前数的意思.
 
    (3)Chr,Ord
    同名函数.
 
    (4)explode,implode,join
    与数组有关的函数. explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组. implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串. join与implode意义相同.
 
    (5)Chop
    处理串尾部的空白.
 
    (6)htmlspecialchars
    将HTML特殊字符换成它们的名字,例如"<"变成"<".
 
    (7)nl2br
    在HTML中的每一个回车前面加上"<BR>".
 
    (8)AddSlashes,StripSlashes
    给字符串中按照需要加上""和去掉"",对于某些数据库,必须在要查询的字符加上和去掉""之后才能够查询.
 
    (9)parse_str
    将"name1=value1&name2=value2&..."类型的字符串分析成一些变量.
 
    例如: parse_str("a=1&b=2"); 生成$a与$b两个变量,值分别为1,2. 如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的. 如果这两对的名字尾部都有"[]",例如"a[]=1&a[]=2",则生成数组$a,两个元素分别为1,2.

阅读全文

PHP函数索引(3)

mcrypt_ecb: 使用 ECB 将资料加/解密。
mcrypt_get_block_size: 取得编码方式的区块大小。
mcrypt_get_cipher_name: 取得编码方式的名称。
mcrypt_get_key_size: 取得编码钥匙大小。
mcrypt_ofb: 使用 OFB 将资料加/解密。
md5: 计算字符串的 MD5 哈稀。
mhash: 计算哈稀值。
mhash_count: 取得哈稀 ID 的最大值。
mhash_get_block_size: 取得哈稀方式的区块大小。
mhash_get_hash_name: 取得哈稀演算法名称。
microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值。
min: 取得最小值。
mkdir: 建立目录。
mktime: 取得 UNIX 时间戳记。
msql: 送出 query 字符串。
msql_affected_rows: 得到 mSQL 最后操作影响的列数目。
msql_close: 关闭 mSQL 数据库连接。
msql_connect: 打开 mSQL 数据库连接。
msql_createdb: 建立一个新的 mSQL 数据库。
msql_create_db: 建立一个新的 mSQL 数据库。
msql_data_seek: 移动内部返回指针。
msql_dbname: 取得目前所在数据库名称。
msql_dropdb: 删除指定的 mSQL 数据库。
msql_drop_db: 删除指定的 mSQL 数据库。
msql_error: 取得最后错误信息。
msql_fetch_array: 返回数组资料。
msql_fetch_field: 取得字段信息。
msql_fetch_object: 返回类资料。
msql_fetch_row: 返回单列的各字段。
msql_fieldflags: 获得字段的标志。
msql_fieldlen: 获得字段的长度。
msql_fieldname: 返回指定字段的名称。
msql_fieldtable: 获得字段的资料表 (table) 名称。
msql_fieldtype: 获得字段的类型。
msql_field_seek: 配置指针到返回值的

阅读全文

PHP 4.1.0 出版公告(中英对照版)2

PHP 4.1.0 Release Announcement
PHP 4.1.0 出版公告(2)
- Added support for single dimensional SafeArrays and Enumerations. Added an is_enum() function to check if a
component implements an enumeration. (Alan, Harald)
增加了支持一维 SafeArray 和 Enumerations.增加了 is_enum(0 来去定一个部件是否来自一个 enumeration
- Fixed a bug in dbase_get_record() and dbase_get_record_with_names(). boolean fields are now returned correctly.
Patch by Lawrence E. Widman (Jani)
修正了 dbase_get_record() 和 dbase_get_record_with_names() 的错误。现在能正确的返回 boolean 字段。
- Added --version option to php-config. (Stig)
增加了 --version 的配置选项
- Improved support for thttpd-2.21b by incorporating patches for all known bugs. (Sascha)
通过增加已知错误的补丁增强了对 thttpd-2.21b 的支持
- Added ircg_get_username, a roomkey argument to ircg_join, error fetching infrastructure, a tokenizer to speed up
message processing, and fixed a lot of bugs in the IRCG extension. (Sascha)
增加了 ircg_get_username,一个 ircg_join 的参数,错误取得机构,一个tokenizer 来加快信息处理,修正了 IRCG 扩展里面的许多
错误。
- Improved speed of the serializer/deserializer. (Thies, Sascha)
加快了序列化/反序列化的速度
- Floating point numbers are better detected when converting from strings. (Zeev, Zend Engine)
更好的检测从字符串到浮点数的转换
- Replaced php.ini-optimized with php.ini-recommended. As the name implies, it's warmly recommended to use this
file as the basis for your PHP configuration, rather than php.ini-dist. (Zeev)
把 php.ini-optimized 改名为 php.ini-recommended. 名字暗示着,他只是热心的推荐用户使用这个文件作为 PHP 的基础配置文件,
而不是使用 php.ini.dist
- Restore xpath_eval() and php_xpathptr_eval() for 4.0.7. There are still some known leaks. (Joey)
修复了 xpatch_eval()和 php_xpatchptr_eval(), 他们还有一些已知的漏洞
- Added import_request_variables(), to allow users to safely import form variables to the global scope (Zeev)

阅读全文

PHP函数索引(2)

hw_GetParents: 取得父类的 ID。
hw_GetParentsObj: 取得父类的资料。
hw_GetRemote: 取得远端文件。
hw_GetRemoteChildren: 取得远端的子文件。
hw_GetSrcByDestObj: 取得指定目的的文件内容。
hw_GetText: 取得纯文字档宁。
hw_GetUsername: 目前使用者名字。
hw_Identify: 使用者身份确认。
hw_InCollections: 检查类聚集。
hw_Info: 连接信息。
hw_InsColl: 插入聚集。
hw_InsDoc: 插入文件。
hw_InsertDocument: 上传文件。
hw_InsertObject: 插入类记录。
hw_Modifyobject: 修改类记录。
hw_Mv: 移动类。
hw_New_Document: 建立新文件。
hw_Objrec2Array: 类记录转为数组。
hw_OutputDocument: 输出文件。
hw_pConnect: 连上 Hyperwave 服务器。
hw_PipeDocument: 取得文件。
hw_Root: 取得根类代码。
hw_Unlock: 取消锁定。
hw_Who: 列出目前使用者。
ibase_bind: 链接 PHP 变量到 InterBase 参数。
ibase_close: 关闭 InterBase 服务器连接。
ibase_connect: 打开 InterBase 服务器连接。
ibase_execute: 执行 SQL 的指令部分。
ibase_fetch_row: 返回单列的各字段。
ibase_free_query: 释放查询指令占用内存。
ibase_free_result: 释放返回占用内存。
ibase_pconnect: 保持 InterBase 服务器连接。
ibase_prepare: 分析 SQL 语法。
ibase_query: 送出一个 query 字符串。
ibase_timefmt: 配置时间格式。
ifxus_close_slob: 删除 slob 类。
ifxus_create_slob: 建立 slob 类。
ifxus_open_slob: 打开 slob 类。
ifxus_read_slob: 读取指定数目的 slob 类。
ifxus_seek_slob: 配置目前文件或找寻位置。
ifxus_tell_slob: 返回目前文件或找寻位置。
ifxus_write_slob: 将字符串写入 slob 类中。
ifx_affected_rows: 得到 Informix 最后操作影响的列数目。
ifx_blobinfile_mode: 配置长位类模式。
ifx_byteasvarchar: 配置位组模式默认值。
ifx_close: 关闭 Informix 服务器连接。
ifx_connect: 打开 Informix 服务器连接。
ifx_copy_blob: 复制长位类。
ifx_create_blob: 建立长位类。
ifx_create_char: 建立字符类。
ifx_do: 执行已准备 query 字符串。
ifx_error: 取得 Informix 最后的错误。

阅读全文

PHP函数索引(4)

PDF_open_jpeg: 打开 JPEG 图文件。
PDF_open_memory_image: 打开内存图文件。
PDF_place_image: 放置图片到 PDF 文件指定位置。
PDF_put_image: 放置图片到 PDF 文件。
PDF_rect: 绘长方形。
PDF_restore: 还原环境变量。
PDF_rotate: 旋转类。
PDF_save: 储存环境变量。
PDF_scale: 缩放类。
PDF_setdash: 配置虚线样式。
PDF_setflat: 配置平滑值。
PDF_setgray: 指定绘图的颜色为灰阶并填入。
PDF_setgray_fill: 指定填入的颜色为灰阶。
PDF_setgray_stroke: 指定绘图的颜色为灰阶。
PDF_setlinecap: 配置 linecap 参数。
PDF_setlinejoin: 配置连接参数。
PDF_setlinewidth: 配置线宽。
PDF_setmiterlimit: 配置斜边界限。
PDF_setrgbcolor: 指定绘图的颜色为彩色并填入。
PDF_setrgbcolor_fill: 指定填入的颜色为彩色。
PDF_setrgbcolor_stroke: 指定绘图的颜色为彩色。
PDF_set_char_spacing: 配置字符间距。
PDF_set_duration: 配置二页的切换时间。
PDF_set_font: 配置使用的字型及大小。
PDF_set_horiz_scaling: 配置文字水平间距。
PDF_set_info_author: 配置文件作者。
PDF_set_info_creator: 配置建文件者字符串。
PDF_set_info_keywords: 配置文件的关键字。
PDF_set_info_subject: 配置文件主题。
PDF_set_info_title: 配置文件标题。
PDF_set_leading: 配置行距。
PDF_set_text_matrix: 配置文字矩阵。
PDF_set_text_pos: 配置文字位置。
PDF_set_text_rendering: 配置文字表现方式。
PDF_set_text_rise: 配置文字高度。
PDF_set_transition: 配置页的转换。
PDF_set_word_spacing: 配置字间距。
PDF_show: 输出字符串到 PDF 文件。
PDF_show_xy: 输出字符串到指定坐标。
PDF_stringwidth: 计算字符串的宽度。
PDF_stroke: 沿向量绘线。
PDF_translate: 移动原点。
pfsockopen: 打开网络的 Socket 持续链接。
pg_Close: 关闭 PostgreSQL 服务器连接。
pg_cmdTuples: 取得被 SQL 指令影响的资料笔数。
pg_Connect: 打开 PostgreSQL 服务器连接。
pg_DBname: 取得目前的数据库名称。
pg_ErrorMessage: 返回错误信息。
pg_Exec: 执行 query 指令。
pg_Fetch_Array: 返回数组资料。

阅读全文

先做点好事,转点东东来,用PHP和MySQL构建一个数据库驱动的网站(-)

摘要
  在这篇文章中,我们会着手解决在构建一个数据库驱动的网站的过程中将会遇到的问题。而我们只会使用两个新的工具,PHP和MySQL。如果你的Web主机支持PHP/MySQL,那么你会省掉不少麻烦。如果不是这样,你也不用提心,我们也会学习如何在Unix和Windows下安装相应程序。
  这篇文章是提供给那些有可能学会服务器端程序开发的中高级的网页设计者的。我们会认为我们的读者熟悉HTML,所以我们在使用HTML时不会给出什么解释。另外,在有些地方我们可能还会用到少量的JavaScript,但是我们会尽量保证这即使对于未入门者也是足够简单的。
(2002-08-29 14:10:35)
--------------------------------------------------------------------------------
By Wing, 出处:Linuxaid
原著:Kevin Yank 翻译:处处
  对于今天的Web来说,内容是最重要的。当你熟练掌握了HTML,而且也学到了一些JavaScript和DHTML的小决窍后,你现在也许可能设计一个漂亮的能让人“一见钟情”的网站了。下一步的工作是向网页中添加一些真实的信息。许多站点不得不通过不断地更新来成功地吸引回头客。在传统的网站建设中,这意味着不断地更新众多的HTML文件。
  现在问题出来了,在更多的情况下,提供内容给站点的人并不是设计网页的人。内容的提供者甚至还不知道HTML。那么内容的提供者怎么把内容添加到网站中去呢?不是所有的公司都有一个全职的Webmaster的,而且,让一个Webmasters整天忙着将Word文件拷贝到HTML模板中也实在是一种浪费。
  要唯护一个文本驱动的站点实在是件很痛苦的事。许多站点(是不是也包括你的站点?)被过时的信息所困扰。因为要保证信息的正常更新,你将不得不重写数以百计的HTML文件。服务器端包含技术(SSI:HTML文件中,可以通过注释行调用的命令或指针)也许能稍微减轻一些麻烦。但是你还是得面对数以百计的HTML文件,即使你只是想对你的站点作一些基本的变动。
  解决这些头疼问题是设计一个数据库的站点。通过把你的站点的内容和设置完全分开,你可以对其中的一项进行处理,而不会对另一项发生影响。你将不再需要为每一条信息写一个HTML页面,你只需要为一类信息写一个HTML页面就足够了。你再也不需要不断地添加新的内容到你的页面中去了,你现在所要做的只是建立一个简单的信息管理系统,通过这个系统,作者可以不通过HTML就自行添加新的内容。
  在这篇文章中,我们会着手解决在构建一个数据库驱动的网站的过程中将会遇到的问题。而我们只会使用两个新的工具,PHP和MySQL。如果你的Web主机支持PHP/MySQL,那么你会省掉不少麻烦。如果不是这样,你也不用提心,我们也会学习如何在Unix和Windows下安装相应程序。

阅读全文

用PHP和MySQL构建一个数据库驱动的网站(八)

摘要
  在这一章中,我们会对我们的例子进行扩充,学习一些有关MySQL的新知识,并试图理解并掌握关系型数据库所能提供的功能。
(2002-08-29 14:11:39)
--------------------------------------------------------------------------------
By Wing, 出处:Linuxaid
第五章:关系型数据库设计
  在这篇文章的第二章中,我们已经建立了一个供我们使用的非常简单的笑话数据库,这个库中只包括了一个名叫Jokes的数据表。这作为我们使用MySQL数据库的入门已经是足够了,但是在关系型数据库的设计中还有很多其它的东西。在这一章中,我们会对我们的例子进行扩充,学习一些有关MySQL的新知识,并试图理解并掌握关系型数据库所能提供的功能。
  首先,我们得说明我们对许多问题的解决只是不正规的(也就是说非正式的)。正如你在许多计算机科学专业中了解的那样,数据库设计是一个严肃的领域,数据库设计必须包括对它的测试并会涉及到一些数学的原理。但这些可能是超过我们这篇文章的范围了。要得到更多的信息,你可以停下来到http://www.datamodel.org/去看看,在那儿你可以看到许多好的书籍,并得到一些关于这个问题的有用的资源。
给予应有的权限
  在开始之前,让我们回忆一下我们的Jokes数据表的结构,这个表包含三个列:ID、JokeText和 JokeDate。这些列可以使我们标识笑话(ID),明了他们的内容(JokeText)以及他们被加入的时间(JokeDate)。
  现在我们想要保存我们的笑话中的其它一些信息:提交者的姓名。这看上去很自然,我们需要在我们的Jokes数据表中添加一个新的列。SQL的ALTER命令(我们在之前没看到过这个命令)可以帮助我们完成这件事。使用mysql命令行程序登录到MySQL服务器,选择你的数据库(如果你使用我们在第二章中的命名,数据库名应该是joke),然后输入下面的命令:
mysql>
ALTER TABLE Jokes ADD COLUMN
    -> AuthorName VARCHAR(100);

  这将会在我们的数据表中增加一个叫AuthorName的列。其数据类型是一个可变长度的字符串,其最大长度是100个字符(这对于最复杂的名字应该也是足够了)。让我们再添加一列用来保存作者的e-mail地址:
mysql> ALTER TABLE Jokes ADD COLUMN
    -> AuthorEMail VARCHAR(100);

  要得到更多的有关ALTER命令的信息,请参看MySQL参考手册。要确认我们是不是正确地添加了两列,你可以要求MySQL为我们对这个表进行描述:

阅读全文

用PHP和MySQL构建一个数据库驱动的网站(六)

摘要
  在这一章内我们会学习到如何在一个Web页面中向数据库中存储信息并显示它。
(2002-08-29 14:11:25)
--------------------------------------------------------------------------------
By Wing, 出处:Linuxaid
第四章: 用PHP访问MySQL数据库
  在这一章内我们会学习到如何在一个Web页面中向数据库中存储信息并显示它。之前我们已经安装了MySQL这个关系型数据库引擎以及PHP这个服务器端脚本语言,并学习了有关它们的基本知识。在学完这一章后,我们将明白如何综合利用这两个新的工具来构建一个数据库驱动的网站!
对前一部分的回顾
  在我们往下继续之前,回顾一下我们学习的目的应该是件有价值的事。现在有我们的系统中有了两个强有力的新的工具:脚本语言PHP和数据库引擎MySQL。搞清楚两者是如果协同工作是很重要的。
  数据库驱动的网站的实质就是允许站点的内容存在于一个数据库中,并且可以通过这个数据库来动态地产生Web页面来让我们的访问者通过标准的Web浏览器来显示它。所以在你的系统的一端是一个访问你的站点的浏览者,他通过访问http://www.yoursite.com/来获得一个标准的HTML格式的Web页面并在Web浏览器中显示它。在你的系统的另一端是通过一个或几个数据表存储在一个只理解如何响应SQL查询(命令)的MySQL数据库中的你的站点的内容。
  PHP脚本语言承担了两者之间的联络员的角色,使用PHP,你可以编写一个标准HTML的“模板”,这个“模板”决定了你的站点的外观(包括图画和页面设计)。这时内容是属于这个“模板”的,你可以使用一些PHP代码来连接MySQL数据库并且使用SQL查询来获得数据并在其相应位置显示它,这里的SQL查询是和我们在第二章中用来建立笑话数据表时一样的。
  现在对于访问者在访问你的数据库驱动的网站的一个页面时,到底会发生什么事,你应该有个明确的认识了:
  访问者的Web浏览器使用一个标准的URL请求这个页面。
  Web服务器软件(Apache、IIS或其他)认定被请求的页面是一个PHP脚本,因而在响应这个页面请求之前用它的PHP插件来解释它。
  一些PHP命令(我们还没学到)会连接MySQL数据库并向数据库请求属于这个Web页面的内容。
  MySQL数据库作出响应并且向PHP脚本发出被请求的内容。
  PHP脚本将内容存储到一个或几个PHP变量中,并使用我们熟悉的echo函数将其作为Web页面的一部分输出。
  PHP插件完成处理并将生成的HTML副本返回到Web服务器。

阅读全文

PHP是什么?

PHP 是一种服务器端的,嵌入HTML的脚本语言。PHP区别其他像客户端Javascript的地方是它的代码在服务器端执行.PHP能做什么?
  最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格数据,生成动态页面内容,或者收发cookies.可能最强大,最有意义的特性是PHP支持大范围的数据库.书写一个支持数据库的Web 页面是难以置信的简单.
  下面是当前支持的数据库:
  Adabas D InterBase Solid
  dBase mSQL Sybase
  Empress MySQL Velocis
  FilePro Oracle Unix dbm
  Informix PostgreSQL
  PHP通过协议也支持与其他服务的"交谈",像IMAP, SNMP, NNTP, POP3, 甚至是 HTTP. 你也可以打开晦涩的 网络接口和其他协议交互.
PHP的简要历史
  1994年秋季, Rasmus Lerdorf 开始构思 PHP. 早期的非发行版本被用在他的主页上,以追踪谁在看他的在线简历. 1995年年初第一版本出台,当时PHP只被认为是个人主页开发工具.它由一个非常单纯的只能理解很少数特殊宏的分析引擎和 一些用在主页后端通用的工具组成.如留言簿,计数器和其他一些东西.这个分析器在1995年年中被重写并被命名为 PHP/FI 第二版. FI来自 Rasmus 写的另外一个包, 用于解释 html 形式的数据.他结合了个人主页工具脚本和形式解析器,并加 上mSQL支持.这样就产生 PHP/FI 了. PHP/FI以令人惊奇的步调成长,人们开始把自己的代码贡献给它.
  很难给出它的硬统计表,但可以估计在1996年末,整个世界至少有15,000个网站在用PHP/FI.到1997年年中,这个 数字已经超过50,000了. 而在此时PHP的发展也发生了变化.由Rasmus自己偏爱的和几个人开发的项目变成一个更有组织的团 体成就.Zeev Suraski和Andi Gutmans重写了解析器.这个新的解析器成为PHP版本3的基础.许多有用的代码从PHP/FI 继承到PHP3,并且很多是完全重写的.
  今天(1999年年中)不管是PHP/FI或PHP3与很多商业产品捆绑在一块,例如C2级强度的Web服务器和红帽子Linux. 根据NetCraft提供的数据推断,保守估计全世界应用PHP的网站已超过150,000个.由此看来,它比在因特网上运行Netscape 的旗舰企业服务器的站点还多.

阅读全文