怎么用IE来判断电脑装了NET环境没有???????????

hc8513589 2008-11-19 09:51:33
IE的格式是HTML页面.....
...全文
175 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjbx 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 huangshihu1 的回复:]
http://msdn.microsoft.com/zh-cn/vstudio/ms749404.aspx

HTML code<HTML>
<HEAD>
<TITLE>Test for the .NET Framework 3.0</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
<SCRIPT LANGUAGE="JavaScript">
<!--
var dotNETRuntimeVersion = "3.0.04425.00";

function window::onload()
{
if (HasRuntimeVersion(dotNETRuntimeVersion…
[/Quote]

正解
leayh 2008-11-19
  • 打赏
  • 举报
回复
这个要撒泡尿,作个记号,以后有用。
KKND2006 2008-11-19
  • 打赏
  • 举报
回复
不错不错,mark收藏
jack20080808 2008-11-19
  • 打赏
  • 举报
回复
This machine does not have the correct version of the .NET Framework 3.0.

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727).

楼上的执行效果,很全了. good
Robin 2008-11-19
  • 打赏
  • 举报
回复
var dotNETRuntimeVersion = "2.0.50727";

要懂得变通
hc8513589 2008-11-19
  • 打赏
  • 举报
回复
楼上的朋友,你那个只可以看是不是装了3.0,我这个是2.0的.他里面的规则好象不同
hc8513589 2008-11-19
  • 打赏
  • 举报
回复
要是想装是不是给安装包一个连接就可以了
clever_newlearning 2008-11-19
  • 打赏
  • 举报
回复
可以在iis里看一下有没装了.NET FrameWork
Eagle_ice 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 huangshihu1 的回复:]
JScript codefunction hasDotNetFramework(){return navigator.userAgent.indexOf(".NET CLR") > -1;}
[/Quote]
还真没考虑这个问题 如果可以的话 那么10的就行了...
应该可以 如果装了.NET FrameWork 浏览器的头信息应该包含...
Robin 2008-11-19
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/vstudio/ms749404.aspx
<HTML>
<HEAD>
<TITLE>Test for the .NET Framework 3.0</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
<SCRIPT LANGUAGE="JavaScript">
<!--
var dotNETRuntimeVersion = "3.0.04425.00";

function window::onload()
{
if (HasRuntimeVersion(dotNETRuntimeVersion))
{
result.innerText =
"This machine has the correct version of the .NET Framework 3.0: "
+ dotNETRuntimeVersion
}
else
{
result.innerText =
"This machine does not have the correct version of the .NET Framework 3.0."
}
result.innerText += "\n\nThis machine's userAgent string is: " +
navigator.userAgent + ".";
}

//
// Retrieve the version from the user agent string and
// compare with the specified version.
//
function HasRuntimeVersion(versionToCheck)
{
var userAgentString =
navigator.userAgent.match(/.NET CLR [0-9.]+/g);

if (userAgentString != null)
{
var i;

for (i = 0; i < userAgentString.length; ++i)
{
if (CompareVersions(GetVersion(versionToCheck),
GetVersion(userAgentString[i])) <= 0)
return true;
}
}

return false;
}

//
// Extract the numeric part of the version string.
//
function GetVersion(versionString)
{
var numericString =
versionString.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
return numericString.slice(1);
}

//
// Compare the 2 version strings by converting them to numeric format.
//
function CompareVersions(version1, version2)
{
for (i = 0; i < version1.length; ++i)
{
var number1 = new Number(version1[i]);
var number2 = new Number(version2[i]);

if (number1 < number2)
return -1;

if (number1 > number2)
return 1;
}

return 0;
}

-->
</SCRIPT>
</HEAD>

<BODY>
<div id="result" />
</BODY>
</HTML>
Robin 2008-11-19
  • 打赏
  • 举报
回复
function hasDotNetFramework(){return navigator.userAgent.indexOf(".NET CLR") > -1;}
hc8513589 2008-11-19
  • 打赏
  • 举报
回复
我的情况是这样的,我们的程序是一个WIN,但是客户不想安装安装包,我们的程序全部在一个光盘里面,一开始是一个静态页面,
我系统可以判断客户装了NET环境没有.
fxxyz 2008-11-19
  • 打赏
  • 举报
回复
up
ITOfficeBoy 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mdh_zl 的回复:]
Page.Request.Browse.ClrVersion
获取客户端安装的 .NET 公共语言运行库的版本号。


只有在用户代理为 Internet Explorer 5.0 版或更高版本时才支持此属性。

如果客户端未安装公共语言运行库,则属性值为 0, 0,-1,-1。

如果客户端上安装了多个版本的公共语言运行库,ClrVersion 将返回最新的版本

[/Quote]
是不是查看Framework????
看不懂~~~
qinhl99 2008-11-19
  • 打赏
  • 举报
回复
up
huayiluo 2008-11-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mdh_zl 的回复:]
Page.Request.Browse.ClrVersion
获取客户端安装的 .NET 公共语言运行库的版本号。


只有在用户代理为 Internet Explorer 5.0 版或更高版本时才支持此属性。

如果客户端未安装公共语言运行库,则属性值为 0, 0,-1,-1。

如果客户端上安装了多个版本的公共语言运行库,ClrVersion 将返回最新的版本

[/Quote]


学习了。我说错了。。
huayiluo 2008-11-19
  • 打赏
  • 举报
回复
没有做过,如果使用插件就应该可以做到。如果没有插件一定做不到。
mdh_zl 2008-11-19
  • 打赏
  • 举报
回复
Page.Request.Browse.ClrVersion
获取客户端安装的 .NET 公共语言运行库的版本号。


只有在用户代理为 Internet Explorer 5.0 版或更高版本时才支持此属性。

如果客户端未安装公共语言运行库,则属性值为 0, 0,-1,-1。

如果客户端上安装了多个版本的公共语言运行库,ClrVersion 将返回最新的版本
hc8513589 2008-11-19
  • 打赏
  • 举报
回复
都没人会吗?
hc8513589 2008-11-19
  • 打赏
  • 举报
回复
自己先定一下
上兴远程控制5.0版说明: 专业超级远程控制,超强的管理功能,适用于电脑爱好者、家庭、学校、公司、单位远程管理计算机! ------------------------------------------------------------------------------------------ 5.0版的特性: 服务端不用释放文件,不用生成DLL文件,无驱动。 服务端不但能插入IE进程穿防火墙,又可选随意插系统目录的文件; 屏幕高速传输,CPU只占用10-30%,网络传输最高达到每秒20帧; 服务,注册表,进程,CMD管理完全模似操作系统,象操作自已的电脑一样; 超级记录有数据包捕获,内存捕获,键盘英文输入捕获; 批量命令有DDos攻击,代理、发送窗口、字幕等功能; ------------------------------------------------------------------------------------------------------------------ 更新日志: 增加声音保存 增加自定标识 更新进程监控 更新服务端 ..... 5.0不兼容之前所有版本,请独立使用 ------------------------------------------------------------------------------------------------------------------ 软件使用环境: Windows XP/Win2000/Win2003/WIN7版本下,不能在Windows9X下使用 CPU:Pentium 350以上,内存:128MB以上, 磁盘空间1G以上, 56K以上调制解调器/ADSL/Cable modem或其它宽带网络 ------------------------------------------------------------------------------------------------------------------ 安包说明: configure文件夹:历史配置记录; ICO文件夹:几个常用ICO图标,服务端更改图标时可选择; Server文件夹:原始服务端放置在Server文件夹(注:Server文件夹必须要与主程序同一目录下!原始服务端*.Dat不能重命名!); skins文件夹:放置皮肤文件; sound:放置上下线提示声音文件; QQWry.Dat:IP数据库纯真精简版(www.cz88.net),请定期更新最新的IP数据库; Help.chm:CHM帮助文档; 以上文件(文件夹)必须要与主程序rejoice.exe同一目录下。 注意:如果你使用不是官方版本被捆了其它程序或安了网站过滤软件造成官方网站不能登陆更新软件,后果自负! ------------------------------------------------------------------------------------------------------------------ 免责声明: 如果您需要使用本软件,则必须无条件同意以下所列举的所有声明款项: 上兴远控是提供给使用者管理个人电脑或企业管理员工电脑之用,在安服务端前请先征询该电脑使用者的同意。 凡是将本软件用于非法用途的,由使用者承担由此带来的一切损失和后果,作者无需负任何责任。 软件开发:上兴 QQ:7698705 QQ:1855254 软件主页:WWW.98exe.com ------------------------------------------------------------------------------------------ 最新常见问题: ------------------------------------------------------------------------------------------ 3、为什么上线速度很慢? 你可以跟据你的网速设置上线监听线程,在设置-系统设置中设置监听连接线程数,设越大就越快。 ------------------------------------------------------------------------------------------ 4、为什么显示对方有视频可我怎也看不对方? 显示对方有视频是跟据对方是否安有视频驱动判断的,如何对方没有插USB是打不开视频的; 如何对方在使用视频中也不能打开视频的,只能从进程管理结束视频的进程再连接; 另一个是服务端假死了,你可重启服务端重新开对方视频。 ------------------------------------------------------------------------------------------ 5、为什么会显示不能打开端口? 1、可能端口被其它程序占用,你可以更改一下默认端口,如使用DNS上线不能更改,就关掉占用端口的程序,也可以重启电脑; 2、关闭防火墙或设置防火墙充许你设置的上线端口。 --------------------------------------------------- 6、为什么打开控制端会连接一个IP的80端口? 答:查找升级,找到会提示升级,如不想要升级提示,‘设置’下拉在‘升级提示’选项去勾! ------------------------------------------------------------------------------------------ 7、为什么我有时全部会'连接超时'? 答:按Esc或重启客户端能解决 ------------------------------------------------------------------------------------------ 8、为什看到对方屏幕是白屏的? 答:1、系统处于锁定或未登陆桌面(多数是2000、2003服务器版的系统) 2、处于屏幕保护桌面,这时候要将当前桌面切换。 这个只能重新启动一下服务端或重启对方主机。 ------------------------------------------------------------------------------------------ 9、为什么打开控制端就出现错误? 答:1、这前以经打开了一个控制端,再打开多个控制端可能会产生错误。 2、打开控制端就要打开默认端口,有的防火墙会阻止,因此产生错误。 ------------------------------------------------------------------------------------------ 10、为什么打开控制端上线机器不显示地区? 答:1、IP数据库QQWry.Dat被删除或毁坏了,到官方下载或从QQ目录复制一个到控制端目录下。 2、打开控制端没有成功打开IP数据库或读取出错,可以重启控制端再试。 ------------------------------------------------------------------------------------------ 一、为什么我配置正确并运行服务端后没有上线? 答:问题出现有几种可能: 1、你在内网中、网吧使用,必须进入路由映射端口,或使用端口映射工具,或使用收费动态解析 2、XPSP2系统自带防火墙或其它类型防火墙,客户端不能打开端口监听服务端上线 3、配置服务端的端口要和控制端监听端口一致 4、没有更新ip到FTP或没打开动态域名解析客户端 6、服务端运行后被杀毒查杀了。 ------------------------------------------------------------------------------------------ 二、肉鸡为什么上线后控制一会后就下线不见了? 答:1、网速慢或不正常,有时很慢或掉线。 2、控制端出错,在文件下拉点击重启客启端,或关闭重新运行控制端。 3、由于服务端插入IE启动,系统出错或被对方终止了IE进程,但对方重启后还能再上线 4、使用DDOS功能或多文件下载不适度当会造成对方掉线 5、对方安的是新版主动杀毒,监视CMD,注册表等,一但管理,对方杀毒就会提示并结束服务端运行 6、服务端被杀毒查杀了 ------------------------------------------------------------------------------------------ 三、为什么第二天上网后,肉鸡一个都没上线? 答:问题出现有几种可能: 1、拨号上网,动态IP的用户第二天上网后IP会变的,所以必需再次更新IP到FTP或DNS域名。 2、安服务名与其它相同服务名复盖或冲突(最好自定义安服务名)。 3、服务端被杀毒查杀了。 ------------------------------------------------------------------------------------------ 四、怎样申请域名或FTP空间啊? 答:打开 http://www.hao123.com 搜索'DNS域名解析' '虚似主机' 你会找到很多服务商。 ------------------------------------------------------------------------------------------ 五、为什么使用某些功能时对方会掉线? 答:默认安的XpSP2系统自带防火墙,并限制了连接, 如你进行DDOS攻击或同时操作N个管理功能,有可能对方会掉线。 ------------------------------------------------------------------------------------------ 六、这个软件有后门或捆绑木马吗? 答:没有!刚入门无基础的朋友最好到官方网站下载,最好在相关技术人员指导下使用。 1、本软件各种功能真实可靠,不属于欺骗性质的假软件。 2、本软件作者不是低能儿,抓肉鸡无须在自已的劳动成果里放马害自已。 3、本软件生成服务端运行只有一个EXE程序,不释放其它可执行程序; 4、本软件不提供专用上线,所以作者在用户使用后无法控制用户的肉鸡; 5、本软件是远程控制,有的朋友下载后回去配置后捆绑其它程序或图片的方法抓鸡,是很正常的, 所以,使用此类工具的朋友要注意自身安全。 ------------------------------------------------------------------------------------------ 七、运行服务端没上线,怎样手工删除? 答:用三方工具终止插入的进程, 再进入服务管理删除服务项, 最后进入 C:\Program Files\Common Files\Microsoft Shared\MSInfo\ C:\WINDOWS C:\WINDOWS\system32 删除文件。 ------------------------------------------------------------------------------------------ 八、我是内网怎样上线? 答:进入路由映射端口或申请内网域名解析,或者用VIDC等工具用跳板进行端口映射。 ------------------------------------------------------------------------------------------ 九、购买注册vip版有什么好处? 答:能够支持作者继续开发;一年提供免杀升级,技术支持,功能更多 。 ------------------------------------------------------------------------------------------ 十、键盘记录功能记录各大银行密码吗? 答:不能。 ------------------------------------------------------------------------------------------ 十一、为什么我下载了新版有的功能不能正常使用? 答:必须要重新配置安服务端,只要换一个安名和服务名,运行上线后再删了旧的版本。
专业超级远程控制,超强的管理功能,适用于电脑爱好者、家庭、学校、公司、单位远程管理计算机! 软件使用环境: Windows XP/Win2000/Win2003/WIN7版本下,不能在Windows9X下使用 CPU:Pentium 350以上,内存:128MB以上, 磁盘空间1G以上, 56K以上调制解调器/ADSL/Cable modem或其它宽带网络 ------------------------------------------------------------------------------------------------------------------ 安包说明: configure文件夹:历史配置记录; ICO文件夹:几个常用ICO图标,服务端更改图标时可选择; Server文件夹:原始服务端放置在Server文件夹(注:Server文件夹必须要与主程序同一目录下!原始服务端*.Dat不能重命名!); skins文件夹:放置皮肤文件; sound:放置上下线提示声音文件; QQWry.Dat:IP数据库纯真精简版(www.cz88.net),请定期更新最新的IP数据库; Help.chm:CHM帮助文档; 以上文件(文件夹)必须要与主程序rejoice.exe同一目录下。 注意:如果你使用不是官方版本被捆了其它程序或安了网站过滤软件造成官方网站不能登陆更新软件,后果自负! ------------------------------------------------------------------------------------------------------------------ 免责声明: 如果您需要使用本软件,则必须无条件同意以下所列举的所有声明款项: 上兴远控是提供给使用者管理个人电脑或企业管理员工电脑之用,在安服务端前请先征询该电脑使用者的同意。 凡是将本软件用于非法用途的,由使用者承担由此带来的一切损失和后果,作者无需负任何责任。 软件开发:上兴 QQ:7698705 QQ:1855254 软件主页:WWW.98exe.com ------------------------------------------------------------------------------------------ 最新常见问题: ------------------------------------------------------------------------------------------ 3、为什么上线速度很慢? 你可以跟据你的网速设置上线监听线程,在设置-系统设置中设置监听连接线程数,设越大就越快。 ------------------------------------------------------------------------------------------ 4、为什么显示对方有视频可我怎也看不对方? 显示对方有视频是跟据对方是否安有视频驱动判断的,如何对方没有插USB是打不开视频的; 如何对方在使用视频中也不能打开视频的,只能从进程管理结束视频的进程再连接; 另一个是服务端假死了,你可重启服务端重新开对方视频。 ------------------------------------------------------------------------------------------ 5、为什么会显示不能打开端口? 1、可能端口被其它程序占用,你可以更改一下默认端口,如使用DNS上线不能更改,就关掉占用端口的程序,也可以重启电脑; 2、关闭防火墙或设置防火墙充许你设置的上线端口。 --------------------------------------------------- 6、为什么打开控制端会连接一个IP的80端口? 答:查找升级,找到会提示升级,如不想要升级提示,‘设置’下拉在‘升级提示’选项去勾! ------------------------------------------------------------------------------------------ 7、为什么我有时全部会'连接超时'? 答:按Esc或重启客户端能解决 ------------------------------------------------------------------------------------------ 8、为什看到对方屏幕是白屏的? 答:1、系统处于锁定或未登陆桌面(多数是2000、2003服务器版的系统) 2、处于屏幕保护桌面,这时候要将当前桌面切换。 这个只能重新启动一下服务端或重启对方主机。 ------------------------------------------------------------------------------------------ 9、为什么打开控制端就出现错误? 答:1、这前以经打开了一个控制端,再打开多个控制端可能会产生错误。 2、打开控制端就要打开默认端口,有的防火墙会阻止,因此产生错误。 ------------------------------------------------------------------------------------------ 10、为什么打开控制端上线机器不显示地区? 答:1、IP数据库QQWry.Dat被删除或毁坏了,到官方下载或从QQ目录复制一个到控制端目录下。 2、打开控制端没有成功打开IP数据库或读取出错,可以重启控制端再试。 ------------------------------------------------------------------------------------------ 一、为什么我配置正确并运行服务端后没有上线? 答:问题出现有几种可能: 1、你在内网中、网吧使用,必须进入路由映射端口,或使用端口映射工具,或使用收费动态解析 2、XPSP2系统自带防火墙或其它类型防火墙,客户端不能打开端口监听服务端上线 3、配置服务端的端口要和控制端监听端口一致 4、没有更新ip到FTP或没打开动态域名解析客户端 6、服务端运行后被杀毒查杀了。 ------------------------------------------------------------------------------------------ 二、肉鸡为什么上线后控制一会后就下线不见了? 答:1、网速慢或不正常,有时很慢或掉线。 2、控制端出错,在文件下拉点击重启客启端,或关闭重新运行控制端。 3、由于服务端插入IE启动,系统出错或被对方终止了IE进程,但对方重启后还能再上线 4、使用DDOS功能或多文件下载不适度当会造成对方掉线 5、对方安的是新版主动杀毒,监视CMD,注册表等,一但管理,对方杀毒就会提示并结束服务端运行 6、服务端被杀毒查杀了 ------------------------------------------------------------------------------------------ 三、为什么第二天上网后,肉鸡一个都没上线? 答:问题出现有几种可能: 1、拨号上网,动态IP的用户第二天上网后IP会变的,所以必需再次更新IP到FTP或DNS域名。 2、安服务名与其它相同服务名复盖或冲突(最好自定义安服务名)。 3、服务端被杀毒查杀了。 ------------------------------------------------------------------------------------------ 四、怎样申请域名或FTP空间啊? 答:打开 http://www.hao123.com 搜索'DNS域名解析' '虚似主机' 你会找到很多服务商。 ------------------------------------------------------------------------------------------ 五、为什么使用某些功能时对方会掉线? 答:默认安的XpSP2系统自带防火墙,并限制了连接, 如你进行DDOS攻击或同时操作N个管理功能,有可能对方会掉线。 ------------------------------------------------------------------------------------------ 六、这个软件有后门或捆绑木马吗? 答:没有!刚入门无基础的朋友最好到官方网站下载,最好在相关技术人员指导下使用。 1、本软件各种功能真实可靠,不属于欺骗性质的假软件。 2、本软件作者不是低能儿,抓肉鸡无须在自已的劳动成果里放马害自已。 3、本软件生成服务端运行只有一个EXE程序,不释放其它可执行程序; 4、本软件不提供专用上线,所以作者在用户使用后无法控制用户的肉鸡; 5、本软件是远程控制,有的朋友下载后回去配置后捆绑其它程序或图片的方法抓鸡,是很正常的, 所以,使用此类工具的朋友要注意自身安全。 ------------------------------------------------------------------------------------------ 七、运行服务端没上线,怎样手工删除? 答:用三方工具终止插入的进程, 再进入服务管理删除服务项, 最后进入 C:\Program Files\Common Files\Microsoft Shared\MSInfo\ C:\WINDOWS C:\WINDOWS\system32 删除文件。 ------------------------------------------------------------------------------------------ 八、我是内网怎样上线? 答:进入路由映射端口或申请内网域名解析,或者用VIDC等工具用跳板进行端口映射。 ------------------------------------------------------------------------------------------ 九、购买注册vip版有什么好处? 答:能够支持作者继续开发;一年提供免杀升级,技术支持,功能更多 。 ------------------------------------------------------------------------------------------ 十、键盘记录功能记录各大银行密码吗? 答:不能。 ------------------------------------------------------------------------------------------ 十一、为什么我下载了新版有的功能不能正常使用? 答:必须要重新配置安服务端,只要换一个安名和服务名,运行上线后再删了旧的版本。
标题:PHP基础教程 出处:风流的CG网络日志 时间:Mon, 28 Aug 2006 07:24:34 +0000 作者:yufeng 地址:http:///read.php?38 内容: 提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1.简介 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。 PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安PHP的资料可以在PHP官方站点上找到。安过程很简单。 如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题! 1.1 历史 三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://www.zend.com)了解更多。 PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点: - 学习过程 我个人更喜欢PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。 PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。 你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。 - 数据库连接 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 - 可扩展性 就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。 - 面向对象编程 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安,虽然很少有人愿意这样以CGI方式安它。内嵌的PHP可以具有更高的可伸缩性。 - 更多特点 PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:ASP,mod_perl,JSP 我当然不清楚ASP/JSP能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。 2.1 首要条件 你首先必须要有一个正在工作着的支持PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。 2.2 PHP的安 生成一个名为test.php3的文件,含有以下内容: 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: . . . 语句 与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。 注释 PHP支持C,C++和Unix风格的注释方式: /* C,C++风格多行注释 */ // C++风格单行注释 # Unix风格单行注释 Hello,World! 通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语: First PHP page 2.4 数据类型 PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值: $a = 1234; # 十进制数 $a = -123; # 负数 $a = 0123; # 八进制数 (等于十进制数的83) $a = 0x12; # 十六进制数(等于十进制数的18) $a = 1.234; # 浮点数"双精度数" $a = 1.2e3; # 双精度数的指数形式 字符串 字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的使用多维数组。 // 一个包含两个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的简单方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个元素 $myphonebook["dean"] = "5397"; // 你定义的carale元素错了,让我们更正它 $myphonebook["carole"] => "4522" // 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看 echo "$myphonebook[0]"; // sbabu echo "$myphonebook[1]"; // 5348 其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。 对象 使用new语句产生一个对象: class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); 改变变量类型 在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo现在是整数(2) $foo = $foo + 1.3; // $foo是一个双精度数(3.3) $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15) $foo = 5 + "10 Small Pigs"; // $foo是一个整数(15) 如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样就可以声明全局变量了 } 更先进一些的是变量的变量表示。请参考PHP手册。这在有时会显得很有用。 PHP内置了许多已定义的变量。你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。 2.6 运算符 PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用"="。 算术和字符 以下只有一种运算符是有关字符的: $a + $b :加 $a - $b :减 $a * $b :乘 $a / $b :除 $a % $b :取模(余数) $a . $b :字符串连接 逻辑和比较 逻辑运算符有: $a || $b :或 $a or $b :或 $a && $b :与 $a and $b :与 $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a < $b :小于 $a $b :大于 $a >= $b :大于等于 与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。 优先权 就和C以及Java一样! 2.7 控制流程结构 PHP有着与C一样的流程控制。我将在下面大概介绍。 if, else, elseif, if(): endif if (表达式一) { . . . } elseif (表达式二) { . . . } else { . . . } // 或者像Python一样 if (表达式一) : . . . . . . elseif (表达式二) : . . . else : . . . endif ; Loops. while, do..while, for while (表达式) { . . . } do { . . . } while (表达式); for (表达式一; 表达式二; 表达式三) { . . . } //或者像Python一样 while (expr) : . . . endwhile ; switch switch是对多重if-elseif-else结构的最好的替换: switch ($i) { case 0: print "i equals 0"; case 1: print "i equals 1"; case 2: print "i equals 2"; } break, continue break中断当前的循环控制结构。 continue被用来跳出剩下的当前循环并继续执行下一次循环。 require, include 就像C中的#include预处理一样。你在require中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件时,可以使用include()。这样就使得你可以将复杂的PHP文件分割成多个文件并且在不同需要时分别引用它们。 2.8 函数 你可以像以下的例子一样定义自己的函数。函数的返回值可以是任何数据类型: function foo (变量名一, 变量名二, . . . , 变量名n) { echo "Example function.\n"; return $retval; } 所有PHP代码都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。 2.9 类 利用类模型建立类。可以参考PHP手册中对类的详细解释。 class Employee { var $empno; // 员工人数 var $empnm; // 员工姓名 function add_employee($in_num, $in_name) { $this->empno = $in_num; $this->empnm = $in_name; } function show() { echo "$this->empno, $this->empnm"; return; } function changenm($in_name) { $this->empnm = $in_name; } } $sbabu = new Employee; $sbabu->add_employee(10,"sbabu"); $sbabu->changenm("babu"); $sbabu->show(); 三、从实例入手  PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。 3.1 计划一个站点 一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。 标题页面--front.html 这里我们有一个非常简单的html文件: 我的个人主页--欢迎 我的个人主页 欢迎 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 Copyright ? 我自己,1999 联系信息页面--count.html 同样我们又有了一个简单页面: 我的个人主页--联系信息 我的个人主页 联系信息 你可以通过1-800-PHP-INFO联系我 Copyright ? 我自己,1999 3.2 HTML到PHP 从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。 全站通用变量设定:common.inc 通用页面头部:header.inc 通用页面底部:footer.inc Copyright ? by , 1999 新的页面front.php3: 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 新的cont.php3: 你可以通过1-800-PHP-INFO联系我 现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。 3.3 计数器 让我们在首页上加上一个计数器。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码: 然后我们更改front.php3文件以显示这个计数器: 看看我们的新front.php3 3.4 反馈表单 让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很简单的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。 PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。 在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。 根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。 表单:form.php3 Your feedback on my home page. 处理表单:sendfdbk.php3 3.5 简单的站内搜索引擎 PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。
没有查询结果 echo "Sorry. Search on $searchstr returned no results.\n"; } pclose($fp); } ?> 注释: PHP_SELF是PHP内建的变量。包含当前文件名。 fgets()按行读取文件,最多4096(指定)字符长度。 fgetss()与fgets()相似,只是解析输出的HTML标记。 split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。 each()是一个数组操作函数,用来更方便的遍历整个数组。 popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。 请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索 四、与数据库链接 通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。 PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP安选项应该可以支持两者的使用。 想获得更多有关在Microsoft Windows平台上安支持PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:www.csoft.net/~vsbabu/articles/oraphp.html。 4.1 连接 以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。 4.2 查询 假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子: (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.3 显示结果 以下代码演示了怎样查询数据库并将结果输出: (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.4 基于HTTP的Oracle登录 将以下代码加在PHP页面代码之前以确认Oracle登录。注意你必须正确设定$ SID。 五、其它功能 5.1 生成图像 PHP可以操作处理图像。如果你已经安了GD库,你甚至可以利用PHP生成图像。 (译者注:以上代码段缺少注释,请读者参考PHP Manual的图像处理函数部分) 这段代码在其他页面中通过以下标记调用,然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值--在以上的代码中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中使用图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样简单的方法动态生成图像文件。 5.2 Cookies PHP支持基于HTTP的cookies。在需要时你可以像使用一般变量一样方便的使用cookie。Cookies是浏览器保存于客户端的一些信息片段,由此你可以知道是否一台特定PC上的任何人都访问过你的站点,浏览者者在你的站点上的踪迹等等。使用cookies的典型例子就是对浏览者偏好的甄别。Cookies由函数setcookie()设定。与输出HTTP标头的函数header()一样,setcookie()必须在任何实际内容杯输出到浏览器之前调用。以下是一个简单例子: 没有设定cookie,为cookie赋上当前时间值 // 函数中的最后一个参数声明了该cookie保存的时间 // 在这个例子中是1年 // time()函数返回自1970年1月1日以来的以秒数计的时间 SetCookie("VisitedBefore",time(), time()+(60*60*24*365)); } else { // 欢迎浏览者再次光临 echo "Hello there, welcome back"; // 读取cookie并判断 if ( (time() - $VisitedBefore) >= "(60*60*24*7)" ) echo "Why did you take a week to come back. You should be here more often!? "; } ?> 5.3 基于HTTP验证 基于HTTP验证当PHP以CGI模式运行时不能实现。我们可以使用函数header()发送HTTP标头强制验证,客户端浏览器则弹出供输入用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以使用这两个变量验证合法并允许进入。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录: 事实上再实际引用中不大可能如上面使用代码段明显的用户名称/密码对,而是利用数据库或者加密的密码文件存取它们。 5.4 文件上传 你可以利用PHP实现文件的功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上。以下就是该功能的简单演示: ( upload.html ): Upload Your File (You may notice a slight delay while we upload your file.) 下面是处理上传的文件: ( receiver.php3 ): 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } $the_time = time (); // 你需要对以下目录有写权限 $upload_dir = "/local/uploads"; $local_file = "$upload_dir/$the_time"; if ( file_exists ( '$local_file' ) ) { $seq = 1; while ( file_exists ( "$upload_dir/$the_time$seq" ) ) { $seq++; } $local_file = "$upload_dir/$the_time$seq"; }; rename ( $uploadfile, $local_file ); display_page (); } function display_page () { // 这里是你的页面内容 } php3 Receiving Script 5.5 常用函数 我们简单来看看一些常用的函数。 数组 array - 生成数组 count - 数组元素个数 sort - 数组排序,另有其他几种排序函数可供使用 list - 列出数组元素 each - 返回下一个key/value对 current - 返回当前数组元素 next,prev - 传回当前数组元素前后指针 日期和时间 checkdate - 验证日期/时间格式 date - 生成日期/时间格式 time - 当前时间信息 strftime - 格式化日期/时间 目录、文件系统 chdir - 改变目录 dir - 目录类别 opendir, readdir, closedir - 开启、读取、关闭目录 fopen, fclose - 开启、关闭文件 fgets, fgetss - 逐行读取内容 file - 将整个文件读入一个数组变量中 正则表达式 ereg - 匹配正则表达式 eregi - 大小写非敏感匹配正则表达式 ereg_replace -匹配正则表达式并替换 eregi_replace -大小写非敏感匹配正则表达式并替换 split - 依规则切开字符串并以数组形势存储 字符串 AddSlashes - 加上斜杠后使用字符串 echo - 输出一个或多个字符串 join, implode - 将数组元素合并为字符串 htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式 split - 依规则切开字符串并以数组形势存储 5.6 扩展我们的范例主页 我们将使用以上提到的一些函数和思想为我们的范例主页添加更多的动态内容。我们可以在每个页面的顶部加上导航栏,同时使得当前页自动的不被链接显示;同时还可以添加一个用户验证表单以便上传音乐、图像等文件并自动更新页面。 导航栏 实际上就是在footer.inc文件中加上一段代码。假设你的web站点中所有后缀为.php3的文件都会出现在导航栏中,以下就是被存为include/navbar.inc的代码: read()) { // 忽略无文件情况 if ( !is_file($entry) ) continue; /* 将文件名与扩展名分开。由于.是正则表达式特殊字符,应该用\引出 */ list($filenm, $fileext) = split("\.",$entry, 2); // 忽略非.php3文件情况 if( $fileext != "php3" ) continue; /* 现在我们已经把.php3文件都选出,下面搜寻文件中的第一行(标题) 类似$title="something"; 并将以上标题内容分开,用作链接文字 */ $linknm = ""; $fp=fopen($entry,"r"); while($buffer=fgets($fp, 4096)) { $buffer = trim($buffer); // 我们已经把每个文件的标题放在文件的第一行以便搜索 // 但是当你改变变量名称时可能会带来大麻烦 if (ereg("title *= *\"", $buffer)) { /* 我们已经取得了标题内容并可以在此基础上 进行去除空格等处理。 必须以PHP代码方式处理,比如$title = "blah blah" */ eval($buffer); // 然后将链接文字显示为标题文字 $linknm = $title; break; } } fclose($fp); if ( $entry == basename($PHP_SELF) ) echo "$linknm"; else echo "$linknm"; echo " | "; } $d->close(); echo " \n"; ?> 照片收藏夹 我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录。 同时我们需要建立一个可以列出在该目录下所有照片的页面。 文件上传 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } // Wherever you have write permission below... $upload_dir = "photos"; $local_file = "$upload_dir/$userfile_name"; if ( file_exists ( $local_file ) ) { $error_msg = "Sorry, a file with that name already exists"; return; }; // 你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3… rename($userfile, $local_file); echo "The file is uploaded\n"; echo "Go Back\n"; } $title = "Upload File"; include("include/header.inc"); if (empty($userfile) || $userfile=="none") { // 输出以下表单 ?> (You may notice a slight delay while we upload your file.) 照片图库 Here are some of our family photos. This PHP script can really be made better, by splitting into multiple pages. read()) { if (is_file("photos/$entry")) echo "\n"; } $d->close(); ?> 另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。 六、网络资源 你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。 6.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例代码、技巧和提示等内容。 国内 http://www.phpuser.com - PHP中文用户,也就是这里了 http://www.phpx.com - 中国PHP联盟 http://www.phpsite.net - PHP专门站 http://www.phpchina.com - PHP CHINA http://www.cpcw.com/netschool/homepage/cgi/ - 电脑报网页陶吧 国外 http://www.php.net/ - PHP官方站点 http://www.devshed.com/ - 极好的教程 http://px.sklar.com - 代码交换 http://www.phpbuilder.com/ - 教程、专栏和邮件列表档案 http://www.weberdev.com/ - 文章和代码 http://www.phpwizard.net/ - 提示与技巧 http://www.iometrics.com/php/phplist.php3/ - IOMetrics scripts的档案 http://www.e-gineer.com/phpkb/ - PHP知识库 6.2 邮件列表 你可以在PHP官方站点的"支持"栏目内登记获得以下的邮件列表。值得注意的是这些都是高流量流表,一般每天会有100份e-mail。 php3@lists.php.net - 主要的列表 php-dev@lists.php.net - 主要针对开发者 php-list@exp.com.cn - 本站的邮件列表,与论坛相通 6.3 引人注目的工程 一些基于PHP的工程已经发展得比较完善。其中一些更出色更引人注目的是: http:// phplib.netuse.de - PHPLib,一整套PHP函数库 http://www.phorum.org - Phorum是一个很完善的BBS系统 http://www.fishcartsql.org - FishCartSQL是一个电子商务解决方案 http://www.midgard-project.org - Midgard是一个网络应用开发平台 Generated by Bo-blog 2.0.2 sp2

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧