当前位置: 编程技术>php
本页文章导读:
▪在线短消息收发的程序,不用数据库
login.php<?if(isset($submit)){ session_start(); $nickname=$name; session_register("nickname"); header("location:hframe.php"); }?><form name=form1 action="/blog_article/login.html" method="post"><input type=text nam.........
▪PHP网站提速三大“软”招
文/李鲲程 随着网络的普及,网站已经渗透到了每个行业,但是由于目前专线费用让很多企业和个人难以承受,所以共享带宽成为很多网站的首选方案。费用虽然降低了但是一个新的问.........
▪用PHP发电子邮件
一个发送E-MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了,虽然它很简单,一个邮件脚本有时会令程序员非常沮丧.PHP中有一个叫做mail()的函数,它只需要知道接收方的地址和信.........
[1]在线短消息收发的程序,不用数据库
来源: 互联网 发布时间: 2013-11-30
login.php
<?if(isset($submit)){
session_start();
$nickname=$name;
session_register("nickname");
header("location:hframe.php");
}?>
<form name=form1 action="/blog_article/login.html" method="post">
<input type=text name="name">
<input type=submit name=submit value="进入">
</form>
hframe.php
<frameset cols="0,*">
<frame name="contents" src="/blog_article/autosend.html">
<frame name="main" src="/blog_article/smessage.html">
<noframes>
<body>
<p>此网页使用了框架,但您的浏览器不支持框架。</p>
</body>
</noframes>
</frameset>
smessage.php
<?session_start();
if(isset($submit)){
$fp=fopen("test.txt","a+");
$temp="\r\n".$rmessage."|".$content."|".$nickname."|0";
fputs($fp,$temp);
exit;
}
?>
:<form name=form1 action="/blog_article/smessage.html" method="post">
接收方<input type=text name=rmessage><br>
内容:<br><textarea name=content rows=20 cols=30>
</textarea><br>
<input type=submit name=submit value=submit>
</form>
<? session_start();
echo "<meta http-equiv='refresh' content='6;url=autosend.php'>";
$fl=file("test.txt");
$temp="";
for($i=0;$i<count($fl);$i++){
$sflag=explode("|",$fl[$i]);
if(($sflag[3]==0)&&$sflag[0]==$nickname){
echo"<script>window.open('list.php?Smessage=$sflag[2]&Content=$sflag[1]','newwin','toolbar=no location=no')</script>";
}else{
$temp.=$fl[$i];
}
}
$fp=fopen("test.txt","w");
fputs($fp,$temp);
?>
这只是个简单的例子,更多的修饰就靠你自己了!
<?if(isset($submit)){
session_start();
$nickname=$name;
session_register("nickname");
header("location:hframe.php");
}?>
<form name=form1 action="/blog_article/login.html" method="post">
<input type=text name="name">
<input type=submit name=submit value="进入">
</form>
hframe.php
<frameset cols="0,*">
<frame name="contents" src="/blog_article/autosend.html">
<frame name="main" src="/blog_article/smessage.html">
<noframes>
<body>
<p>此网页使用了框架,但您的浏览器不支持框架。</p>
</body>
</noframes>
</frameset>
smessage.php
<?session_start();
if(isset($submit)){
$fp=fopen("test.txt","a+");
$temp="\r\n".$rmessage."|".$content."|".$nickname."|0";
fputs($fp,$temp);
exit;
}
?>
:<form name=form1 action="/blog_article/smessage.html" method="post">
接收方<input type=text name=rmessage><br>
内容:<br><textarea name=content rows=20 cols=30>
</textarea><br>
<input type=submit name=submit value=submit>
</form>
<? session_start();
echo "<meta http-equiv='refresh' content='6;url=autosend.php'>";
$fl=file("test.txt");
$temp="";
for($i=0;$i<count($fl);$i++){
$sflag=explode("|",$fl[$i]);
if(($sflag[3]==0)&&$sflag[0]==$nickname){
echo"<script>window.open('list.php?Smessage=$sflag[2]&Content=$sflag[1]','newwin','toolbar=no location=no')</script>";
}else{
$temp.=$fl[$i];
}
}
$fp=fopen("test.txt","w");
fputs($fp,$temp);
?>
这只是个简单的例子,更多的修饰就靠你自己了!
[2]PHP网站提速三大“软”招
来源: 互联网 发布时间: 2013-11-30
文/李鲲程
随着网络的普及,网站已经渗透到了每个行业,但是由于目前专线费用让很多企业和个人难以承受,所以共享带宽成为很多网站的首选方案。费用虽然降低了但是一个新的问题很快就出现了,那就是共享带宽的网速很慢,有时甚至让人无法忍受。如何能让自己的网站快起来,成为人们关心的问题,笔者结合亲身实践来讲讲软办法的一些实际应用,希望能够对读者有所帮助。
笔者采用的是Linux操作系统,Apache+PHP的网站构建方法。
代码优化
通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工具能够完成这项功能,对于一般的html文件,用于减少冗余的减肥工具很多,而对于PHP程序来说这样的工具就不太多了,但是Zend Technologies的Zend Optimizer是一款非常好的代码优化工具,可以免费从Zend Technologies的网站上获得。Zend Optimizer的使用方法也非常简单,只要将下载的ZendOptimizer-1[1].0.0-PHP_4.0.4- Linux_glibc21-i386.tar.gz文件解压缩,将其中的ZendOptimizer.so文件拷贝到/usr/local/Zend/lib目录下,然后修改php.ini文件,在最后添加以下几行:
显示说明Zend Optimizer工作正常
zend_optimizer.optimization_level=15
zend_extension="/usr/local/ Zend/lib/ ZendOptimizer.so"
设置完成后重启Apache服务器,编写一段PHP程序:
<?
Phpinfo();
?>
一般来说Zend Optimizer能将系统的效率提升30%~40%,这是用户最关心的。
压缩页面
HTTP1.1协议支持页面压缩传送,也就是说服务器把一个页面压缩传送到客户端,然后在客户端将页面解压缩再显示给客户。在服务器端有两种传输方式,一种是页面事先已经压缩好了,传送时只要将压缩页面传送到客户端就行,这种适用于静态网页多的情况,但是对于大多数站点,动态页面比较多,这种方法不太适合,因为很多传到客户端的页面其实是没有的,是服务器接到客户端用户请求动态产生的,所以就要求每生成一个动态页面都要在传到客户端以前先打包压缩。从PHP的4.0.4版以后,可以在php.ini文件中增加一行配置“output_handler = ob_gzhandler”,这样每个动态生成的页面在传送到客户端之前都会进行压缩,但是根据PHP官方站点的说明,这个参数不能与“zlib.output_compression = on”参数同时使用,因为容易引起PHP工作不正常,另外它只能压缩PHP程序的动态生成的页面,对于大量的静态页面尤其是图像文件就不行了。但是mod_gzip模块为Apahe提供了将静态页面在传给客户端以前先压缩的功能,它的压缩比最大能到10,一般情况下可以到 3,也就是说网站的传输速率一下提高了三倍多。要想使用mod_gzip功能首先要下载mod_gzip.c或mod_gzip.so文件,如果下载的是.c文件还要用Apache带的工具将它转化为.so文件才能使用,方法是运行下面的命令:
-i -a mod_gzio.c
cp mod_foo.so/path/to/apache/libexec/mod_gzip.so
chmod 755/path/to/apache/libexec/mod_foo.so
系统会在/path/to/apache/ etc/httpd.conf中自动激活该模块,如果下载的是.so文件则要将该文件拷贝到相应的目录下,然后在httpd.conf文件中添加LoadModule gzip_module libexec/ mod_gzip.so,使模块生效。需要注意两点,第一,要想使用.so文件,Apache必须包含了mod_so模块(可以通过httpd -l命令来查询该模块是否生效);第二,如果下载的是.so文件,它是与Apache的版本有关的,要注意下载的版本与自己使用的Apache是否一致,如果是.c文件就没有这个问题。模块生效后还要对Apache进行相应的配置,需要在httpd.conf文件中加入一些参数:
mod_gzip_on Yes(模块是否生效)
mod_gzip_minimum_file_size 1002(最小压缩文件大小)
mod_gzip_maximum_file_size 0(最大压缩文件大小,0表示没有限制)
mod_gzip_maximum_inmem_size 60000(最大可占用内存)
mod_gzip_item_include file "..gif102SINA>DOUBLE_QUOTATION (以gif结尾的文件要压缩传送)
mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION
mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION
mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION
使用了压缩模块后,当用户访问站点时会在日志文件中记录相应的信息,比如“mod_gzip :OK In:file_length Out:gzipfile_length”,表示该页面传输中使用了gzip功能,输入文件、输出文件大小都有说明。
文件缓存
这种方法通常是针对PHP、PERL等CGI程序而言的,因为这些程序有一个共同的特征就是接到用户的请求后不是马上将结果返回给用户,而是经过解释器解释执行后将执行结果返回给客户,这期间通常都要涉及到数据库的访问。这样就会出现一个问题,当两个用户访问同一个页面时,系统将分别对两个请求进行操作,但事实上这两个操作可能是一模一样的,这样无形当中增加了系统的负担。所以通常的解决办法是在系统内存中开辟出一段空间,当用户第一次访问页面后将执行结果存放在该内存中,当有用户再一次访问该页面时,系统就将页面直接从内存中调出而不需要重新解释执行,这段内存空间就叫缓存。目前流行的缓存管理程序有两个,一个是FastCGI,另一个是Zend Technologies公司的Zend Cache。FastCGI主要是针对Perl、C、C++等CGI脚本程序设计的,可以有效地利用内存作缓存,来自客户端的请求都会被传送到FastCGI应用服务程序,FastCGI处理用户的请求后将结果返回给用户。一般的CGI程序这时将结束进程自动退出,但是FastCGI进程继续保持,这时它在接到新的用户请求后不必建立新的进程,可以立即处理用户请求,也就是说CGI程序建立进程顺序执行然后退出,而FastCGI程序顺序执行并永远循环。
Zend Cache的管理界面
要想使用FastCGI首先要把FastCGI编译到Apache中,方法非常简单,这里就不说明了,还要在http.conf文件里作设置:
AddHandler fastcgi-script .fcg .fcgi .fpl
Options ExecCGI Indexes Includes
这样FastCGI就可以正常工作了,下面是FastCGI程序员手册中的一段例子程序:
#!fcgi-savvy-perl
use FCGI; # 初始化
# Initialization code
= 0;
# Response loop
while (FCGI::accept >= 0) {
#FastCGI建立循环体
print "Content-type:text/html "; #程序执行
print "<head><title>FastCGI Demo Page (perl)</title></head> ";
print "<h1>FastCGI Demo Page (perl)</h1> ";
print "This is coming from a FastCGI server. <BR> ";
print "Running on <EM>publish152.internal.sina.com.cn</EM> to <EM></EM><BR> ";
++;
print "This is connection number ";
}
FastCGI对Perl等CGI程序的功能非常强大,但是它对PHP程序确是无能为力的,而且需要在编程时增加内容,也就是说它需要一些人为的因素才能发挥作用。相比之下Zend Technologies公司的Zend Cache针对PHP的缓存功能是很强大的,只要安装了该软件,程序员就像编写其他PHP程序一样,不需要增加代码,就可以实现缓存功能,有利于系统升级,十分方便。它是一个付费软件。它有缓存功能并能通过图形界面对其进行管理,其中:Cache Control页面,可以配置Zend Cache,显示其当前状态,还能启动和停止Zend Cache功能;Scripts页面,Zend Cache的内容,包括每个文件的状态,还可以根据点击次数和缓存占有大小选择文件;Benchmark页面,可以测试Zend Cache的缓存效果,并以图形方式给出显示,它测试的是每秒钟完成PHP请求的次数。
它的安装、验证方法与Zend Optimizer基本相同,这里就不详细说明了,感兴趣的读者可以参考用户手册,它的强大功能和便利的管理方法确实让人心动。
以上是网站提速常见的几种方法,对于不同的网站需要采用不同的手段,所对应的提速方案也不尽相同,但总体上不外乎是以上提到的三招,读者可以根据自己的实际情况具体问题具体分析。
注意:考虑到客户端软件的复杂性,因为有些客户端软件可能不支持某些特性,比如,mod_gzip对页面进行压缩,但是如果客户端使用的是Netscape就不行,因为它不能把接收到的压缩页面解压缩,导致页面不能正常显示。
随着网络的普及,网站已经渗透到了每个行业,但是由于目前专线费用让很多企业和个人难以承受,所以共享带宽成为很多网站的首选方案。费用虽然降低了但是一个新的问题很快就出现了,那就是共享带宽的网速很慢,有时甚至让人无法忍受。如何能让自己的网站快起来,成为人们关心的问题,笔者结合亲身实践来讲讲软办法的一些实际应用,希望能够对读者有所帮助。
笔者采用的是Linux操作系统,Apache+PHP的网站构建方法。
代码优化
通常要求程序员要有好的编程习惯,尽量减少冗余代码的出现,目前也有好多工具能够完成这项功能,对于一般的html文件,用于减少冗余的减肥工具很多,而对于PHP程序来说这样的工具就不太多了,但是Zend Technologies的Zend Optimizer是一款非常好的代码优化工具,可以免费从Zend Technologies的网站上获得。Zend Optimizer的使用方法也非常简单,只要将下载的ZendOptimizer-1[1].0.0-PHP_4.0.4- Linux_glibc21-i386.tar.gz文件解压缩,将其中的ZendOptimizer.so文件拷贝到/usr/local/Zend/lib目录下,然后修改php.ini文件,在最后添加以下几行:
显示说明Zend Optimizer工作正常
zend_optimizer.optimization_level=15
zend_extension="/usr/local/ Zend/lib/ ZendOptimizer.so"
设置完成后重启Apache服务器,编写一段PHP程序:
<?
Phpinfo();
?>
一般来说Zend Optimizer能将系统的效率提升30%~40%,这是用户最关心的。
压缩页面
HTTP1.1协议支持页面压缩传送,也就是说服务器把一个页面压缩传送到客户端,然后在客户端将页面解压缩再显示给客户。在服务器端有两种传输方式,一种是页面事先已经压缩好了,传送时只要将压缩页面传送到客户端就行,这种适用于静态网页多的情况,但是对于大多数站点,动态页面比较多,这种方法不太适合,因为很多传到客户端的页面其实是没有的,是服务器接到客户端用户请求动态产生的,所以就要求每生成一个动态页面都要在传到客户端以前先打包压缩。从PHP的4.0.4版以后,可以在php.ini文件中增加一行配置“output_handler = ob_gzhandler”,这样每个动态生成的页面在传送到客户端之前都会进行压缩,但是根据PHP官方站点的说明,这个参数不能与“zlib.output_compression = on”参数同时使用,因为容易引起PHP工作不正常,另外它只能压缩PHP程序的动态生成的页面,对于大量的静态页面尤其是图像文件就不行了。但是mod_gzip模块为Apahe提供了将静态页面在传给客户端以前先压缩的功能,它的压缩比最大能到10,一般情况下可以到 3,也就是说网站的传输速率一下提高了三倍多。要想使用mod_gzip功能首先要下载mod_gzip.c或mod_gzip.so文件,如果下载的是.c文件还要用Apache带的工具将它转化为.so文件才能使用,方法是运行下面的命令:
-i -a mod_gzio.c
cp mod_foo.so/path/to/apache/libexec/mod_gzip.so
chmod 755/path/to/apache/libexec/mod_foo.so
系统会在/path/to/apache/ etc/httpd.conf中自动激活该模块,如果下载的是.so文件则要将该文件拷贝到相应的目录下,然后在httpd.conf文件中添加LoadModule gzip_module libexec/ mod_gzip.so,使模块生效。需要注意两点,第一,要想使用.so文件,Apache必须包含了mod_so模块(可以通过httpd -l命令来查询该模块是否生效);第二,如果下载的是.so文件,它是与Apache的版本有关的,要注意下载的版本与自己使用的Apache是否一致,如果是.c文件就没有这个问题。模块生效后还要对Apache进行相应的配置,需要在httpd.conf文件中加入一些参数:
mod_gzip_on Yes(模块是否生效)
mod_gzip_minimum_file_size 1002(最小压缩文件大小)
mod_gzip_maximum_file_size 0(最大压缩文件大小,0表示没有限制)
mod_gzip_maximum_inmem_size 60000(最大可占用内存)
mod_gzip_item_include file "..gif102SINA>DOUBLE_QUOTATION (以gif结尾的文件要压缩传送)
mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION
mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION
mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION
使用了压缩模块后,当用户访问站点时会在日志文件中记录相应的信息,比如“mod_gzip :OK In:file_length Out:gzipfile_length”,表示该页面传输中使用了gzip功能,输入文件、输出文件大小都有说明。
文件缓存
这种方法通常是针对PHP、PERL等CGI程序而言的,因为这些程序有一个共同的特征就是接到用户的请求后不是马上将结果返回给用户,而是经过解释器解释执行后将执行结果返回给客户,这期间通常都要涉及到数据库的访问。这样就会出现一个问题,当两个用户访问同一个页面时,系统将分别对两个请求进行操作,但事实上这两个操作可能是一模一样的,这样无形当中增加了系统的负担。所以通常的解决办法是在系统内存中开辟出一段空间,当用户第一次访问页面后将执行结果存放在该内存中,当有用户再一次访问该页面时,系统就将页面直接从内存中调出而不需要重新解释执行,这段内存空间就叫缓存。目前流行的缓存管理程序有两个,一个是FastCGI,另一个是Zend Technologies公司的Zend Cache。FastCGI主要是针对Perl、C、C++等CGI脚本程序设计的,可以有效地利用内存作缓存,来自客户端的请求都会被传送到FastCGI应用服务程序,FastCGI处理用户的请求后将结果返回给用户。一般的CGI程序这时将结束进程自动退出,但是FastCGI进程继续保持,这时它在接到新的用户请求后不必建立新的进程,可以立即处理用户请求,也就是说CGI程序建立进程顺序执行然后退出,而FastCGI程序顺序执行并永远循环。
Zend Cache的管理界面
要想使用FastCGI首先要把FastCGI编译到Apache中,方法非常简单,这里就不说明了,还要在http.conf文件里作设置:
AddHandler fastcgi-script .fcg .fcgi .fpl
Options ExecCGI Indexes Includes
这样FastCGI就可以正常工作了,下面是FastCGI程序员手册中的一段例子程序:
#!fcgi-savvy-perl
use FCGI; # 初始化
# Initialization code
= 0;
# Response loop
while (FCGI::accept >= 0) {
#FastCGI建立循环体
print "Content-type:text/html "; #程序执行
print "<head><title>FastCGI Demo Page (perl)</title></head> ";
print "<h1>FastCGI Demo Page (perl)</h1> ";
print "This is coming from a FastCGI server. <BR> ";
print "Running on <EM>publish152.internal.sina.com.cn</EM> to <EM></EM><BR> ";
++;
print "This is connection number ";
}
FastCGI对Perl等CGI程序的功能非常强大,但是它对PHP程序确是无能为力的,而且需要在编程时增加内容,也就是说它需要一些人为的因素才能发挥作用。相比之下Zend Technologies公司的Zend Cache针对PHP的缓存功能是很强大的,只要安装了该软件,程序员就像编写其他PHP程序一样,不需要增加代码,就可以实现缓存功能,有利于系统升级,十分方便。它是一个付费软件。它有缓存功能并能通过图形界面对其进行管理,其中:Cache Control页面,可以配置Zend Cache,显示其当前状态,还能启动和停止Zend Cache功能;Scripts页面,Zend Cache的内容,包括每个文件的状态,还可以根据点击次数和缓存占有大小选择文件;Benchmark页面,可以测试Zend Cache的缓存效果,并以图形方式给出显示,它测试的是每秒钟完成PHP请求的次数。
它的安装、验证方法与Zend Optimizer基本相同,这里就不详细说明了,感兴趣的读者可以参考用户手册,它的强大功能和便利的管理方法确实让人心动。
以上是网站提速常见的几种方法,对于不同的网站需要采用不同的手段,所对应的提速方案也不尽相同,但总体上不外乎是以上提到的三招,读者可以根据自己的实际情况具体问题具体分析。
注意:考虑到客户端软件的复杂性,因为有些客户端软件可能不支持某些特性,比如,mod_gzip对页面进行压缩,但是如果客户端使用的是Netscape就不行,因为它不能把接收到的压缩页面解压缩,导致页面不能正常显示。
[3]用PHP发电子邮件
来源: 互联网 发布时间: 2013-11-30
一个发送E-MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了,虽然它很简单,一个邮件脚本有时会令程序员非常沮丧.PHP中有一个叫做mail()的函数,它只需要知道接收方的地址和信件主体就可以发送邮件,但是要让mail()按你的意思运行你还需要解决一些棘手的问题.
要使mail()能够运行,你必须有一个SMTP服务器以便PHP能够连接上去.不管这个服务器对邮件程序多么重要,大多数人对它如何运转没有一星半点的概念.在本教程中,我们将揭示SMTP的秘密并解决一些使用PHP发送邮件的常见问题.而本文中的另一些主题将包括循环遍历一个地址列表的方法以及同时以文本和HTML格式向接收者发送一个邮件的方法.
SMTP是简单邮件传输协议(Simple Mail Transfer Protocol)的缩写,而一个SMTP服务器是一台运行这种协议并发出邮件的计算机.运行这种协议实际上指的是运行诸如Sendmail和Qmail的程序--如果你使用的是一台非Windows计算机的话.在Windows平台上,作为Windows NT Service Pack一部分或是内建于Windows 2000内部的SMTP服务程序就是典型的这种程序.
我并不是说SMTP软件包就只有那些,但是它们是最普通的.如果你的Web站点使用了互联网服务提供者的主机软件包(Internet Service Provider's virtual hosting package)的一部分,那么SMTP服务程序就应该已经在这台计算机上安装了.如果你是一台位于ISP或是室内的计算机的系统管理员,那么你很有可能已经在这台计算机上安装了某种SMTP软件,用来处理从Web服务器发送邮件的过程.
但是,如果你是一个个人用户并只有一个开发用的Web服务程序运行在你的个人电脑上,你可能没有在自己的机器上运行SMTP软件.下面是一个非常简单但是准确的拇指定律:如果你是一个Windows用户而从没有看见SMTP服务器这样的字眼,那么你就没有运行这个程序.如果你确实没有,那么你有两种选择:安装,配置,和维护一个SMTP服务程序(如果你不知道那是怎么一回事的话就不推荐你使用这种方法)或是使用一个现存的SMTP服务器.
要使mail()能够运行,你必须有一个SMTP服务器以便PHP能够连接上去.不管这个服务器对邮件程序多么重要,大多数人对它如何运转没有一星半点的概念.在本教程中,我们将揭示SMTP的秘密并解决一些使用PHP发送邮件的常见问题.而本文中的另一些主题将包括循环遍历一个地址列表的方法以及同时以文本和HTML格式向接收者发送一个邮件的方法.
SMTP是简单邮件传输协议(Simple Mail Transfer Protocol)的缩写,而一个SMTP服务器是一台运行这种协议并发出邮件的计算机.运行这种协议实际上指的是运行诸如Sendmail和Qmail的程序--如果你使用的是一台非Windows计算机的话.在Windows平台上,作为Windows NT Service Pack一部分或是内建于Windows 2000内部的SMTP服务程序就是典型的这种程序.
我并不是说SMTP软件包就只有那些,但是它们是最普通的.如果你的Web站点使用了互联网服务提供者的主机软件包(Internet Service Provider's virtual hosting package)的一部分,那么SMTP服务程序就应该已经在这台计算机上安装了.如果你是一台位于ISP或是室内的计算机的系统管理员,那么你很有可能已经在这台计算机上安装了某种SMTP软件,用来处理从Web服务器发送邮件的过程.
但是,如果你是一个个人用户并只有一个开发用的Web服务程序运行在你的个人电脑上,你可能没有在自己的机器上运行SMTP软件.下面是一个非常简单但是准确的拇指定律:如果你是一个Windows用户而从没有看见SMTP服务器这样的字眼,那么你就没有运行这个程序.如果你确实没有,那么你有两种选择:安装,配置,和维护一个SMTP服务程序(如果你不知道那是怎么一回事的话就不推荐你使用这种方法)或是使用一个现存的SMTP服务器.
最新技术文章: