<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>开心编程网 &#187; PHP开源</title>
	<atom:link href="http://www.kaixinbc.com/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kaixinbc.com</link>
	<description>是一个专注于java、.net、asp、jsp、php、C语言、C++语言、Delphi、go语言、MySQL、sql server、linux、oracle、及Web 2.0等的原创IT编程网站，为国内众多的编程爱好者提供一个“平等自由协作创造”的开放式交流环境，提供编程专题文章、编程论坛、资源下载、博客和开源项目等栏目,作者方志凯（fangzhikai）。</description>
	<lastBuildDate>Thu, 15 Jul 2010 01:32:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Linux下Php5+Mysql5+Apache2+GD2+Zend3编译安装步骤(2010年修订版)</title>
		<link>http://www.kaixinbc.com/2010/03/linux-php5-mysql5-apache2-gd2-zend3.html</link>
		<comments>http://www.kaixinbc.com/2010/03/linux-php5-mysql5-apache2-gd2-zend3.html#comments</comments>
		<pubDate>Wed, 10 Mar 2010 09:15:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=466</guid>
		<description><![CDATA[



经过一天一夜、郁闷了N个小时的努力后，总算把linux下的PHP环境配置好了。
兴奋之余，我是真的服了网上的那些自以为是的发配置文件的人了，我在baidu与google中，查找配置步骤与文件的，查了N个小时啊，竟然都说测试很好的，我装了卸，卸了装，苦了我这些为服务器本身就天天受累的人更累，精神又遭受此打击，兄弟们，你们说说，客户在屁股后催得要命似的，可你却为了一条配置编译命令一直过不去，error，error着，那是多么痛苦的事啊。
今天终于把服务器整好了，我把我安装的全过程一步一步记录下来，每一行命令都是经过严格测试后并编译通过的。请大家放心，深受其害后的人,才真的懂得这是多么的不易！！
先准备一下软件：
linux as4操作系统：界面、应用软件、管理软件、服务器自带软件、其它等通通的不用安装，既然做服务器就要把服务器整理干净，linux自定义安装，我只选择安装了FTp软件(vsftpd)、开发工具包(这个当然必须要选的啊，编译全靠它来为我们出力！)二项，其它什么都不装。(够很吧！！！)
当然分区时，swap分区是必须的，大小是内存的2倍，再分一个boot分区，分个2G左右，剩余的全分给/就行了。
下面所需要的软件一步一步都有文件名，在这先不一一列出，请往下看，建议安装这些软件前，一定要先通读这篇文章的全文，把每一步所需要的软件先准备好。
建议你把这些所需要的软件包统一放到/usr/local/src目录下，一定要养成好习惯，呵呵，这样对自己很有好处的。
一。安装mysql-5.0.41
我用的软件是mysql-5.0.41.tar.gz (大家在网上、mysql官方站上下载时一定要搞清楚了！版本可不能错，因为每一个版本的mysql都有很多种不同的编译版与不用编译版，我用的这个是自编译版的！如果你自行下载的请先解压缩后，用写字版打开包里的configure这个文件，看看是需要编译的还是不用编译的，如果这个文件打开只有十几行E字，告诉你说，此版本不用编译，解开放在目录里就能用了，那样的软件我不能保证在这篇文档里的可用性！)
好，费话少说，开始PHP环境重头戏，mysql的安装，安装好与坏，直接关系到最后PHP的编译成功与否！！
cd /usr/local/src //进入此放软件包的目录
groupadd mysql     // 建立mysql组
useradd mysql -g mysql   //建立mysql用户并且加入到mysql组中
tar -zxvf mysql-5.0.41.tar.gz //解压缩
cd mysql-5.0.41 //进入解开包的目录
./configure &#8211;prefix=/usr/local/mysql &#8211;with-charset=gb2312 &#8211;with-extra-charsets=gbk,gb2312 //这条命令里的参数一定不能乱写乱搞，不然谁也没法保证你编译的mysql能用。如果你搞不明白这些参数怎样设计、并且E文稍微不错的话，那你就先在本地一台电脑里用记事本、写字板、editplus等任何文本软件打开包里的configure文件，呵呵，都是程序与代码、打开可不是让你去改的啊，呵呵，最好远观可千万别近玩啊！向下看看，你会发现大段的参数，大致在986行开始你会发现”Configuration:“字样，到1193行中间，这一大段的代码大多与配置参数有关的说明，每一个参数都有详细的说明。这里不多做介绍，其它我是让它默认的。我第一次安装编译时参数是&#8211;with-charset=gb2312 &#8211;with-extra-charsets=all这样做，我是让它默认字符集为gb2312,其它安符扩展全装，我认为把所有的都加进去了，那一定是没有问题的吧，安装编译是顺利完成了，但当进入linux命令行下输入/usr/local/mysql/bin/mysql -u root -p敲回车时，提示一大段的错误信息，说gb2312根本没有被编译进去，你说怪不怪，没办法，只好重新编译，写成./configure &#8211;prefix=/usr/local/mysql &#8211;with-charset=gb2312 &#8211;with-extra-charsets=gbk,gb2312这样。如果顺利执行完毕，没有错误信息提示，那么恭喜你了，但不要高兴太早，下面才很重要呢。
make &#38;&#38; make install //安装,如果这一步也很顺利完成，恭喜，mysql基本完成差不多了。下面都很简单了。
cd scripts //进入到脚本目录下
./mysql_install_db &#8211;user=mysql //安装库文件，应该会提示说OK！的。
cd /usr/local/mysql //进入到安装的mysql软件目录中
chown -R root .   //设定root能访问/usr/local/mysql
chown -R mysql var   //设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置，在mysql_install_db时产生。
chown -R mysql var/. //设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件
chgrp -R mysql .   //设定mysql组能够访问/usr/local/mysql
# [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-6590413867458515";
/* 468x15, 创建于 10-2-21 */
google_ad_slot = "6389107865";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>经过一天一夜、郁闷了N个小时的努力后，总算把linux下的PHP环境配置好了。<br />
兴奋之余，我是真的服了网上的那些自以为是的发配置文件的人了，我在baidu与google中，查找配置步骤与文件的，查了N个小时啊，竟然都说测试很好的，我装了卸，卸了装，苦了我这些为服务器本身就天天受累的人更累，精神又遭受此打击，兄弟们，你们说说，客户在屁股后催得要命似的，可你却为了一条配置编译命令一直过不去，error，error着，那是多么痛苦的事啊。</p>
<p>今天终于把服务器整好了，我把我安装的全过程一步一步记录下来，每一行命令都是经过严格测试后并编译通过的。请大家放心，深受其害后的人,才真的懂得这是多么的不易！！</p>
<p><strong>先准备一下软件：</strong></p>
<p>linux as4操作系统：界面、应用软件、管理软件、服务器自带软件、其它等通通的不用安装，既然做服务器就要把服务器整理干净，linux自定义安装，我只选择安装了FTp软件(vsftpd)、开发工具包(这个当然必须要选的啊，编译全靠它来为我们出力！)二项，其它什么都不装。(够很吧！！！)</p>
<p>当然分区时，swap分区是必须的，大小是内存的2倍，再分一个boot分区，分个2G左右，剩余的全分给/就行了。</p>
<p>下面所需要的软件一步一步都有文件名，在这先不一一列出，请往下看，建议安装这些软件前，一定要先通读这篇文章的全文，把每一步所需要的软件先准备好。</p>
<p>建议你把这些所需要的软件包统一放到/usr/local/src目录下，一定要养成好习惯，呵呵，这样对自己很有好处的。</p>
<p><strong>一。安装mysql-5.0.41</strong></p>
<p>我用的软件是mysql-5.0.41.tar.gz (大家在网上、mysql官方站上下载时一定要搞清楚了！版本可不能错，因为每一个版本的mysql都有很多种不同的编译版与不用编译版，我用的这个是自编译版的！如果你自行下载的请先解压缩后，用写字版打开包里的configure这个文件，看看是需要编译的还是不用编译的，如果这个文件打开只有十几行E字，告诉你说，此版本不用编译，解开放在目录里就能用了，那样的软件我不能保证在这篇文档里的可用性！)<br />
好，费话少说，开始PHP环境重头戏，mysql的安装，安装好与坏，直接关系到最后PHP的编译成功与否！！</p>
<p>cd /usr/local/src //进入此放软件包的目录</p>
<p>groupadd mysql     // 建立mysql组</p>
<p>useradd mysql -g mysql   //建立mysql用户并且加入到mysql组中</p>
<p>tar -zxvf mysql-5.0.41.tar.gz //解压缩</p>
<p>cd mysql-5.0.41 //进入解开包的目录</p>
<p>./configure &#8211;prefix=/usr/local/mysql &#8211;with-charset=gb2312 &#8211;with-extra-charsets=gbk,gb2312 //这条命令里的参数一定不能乱写乱搞，不然谁也没法保证你编译的mysql能用。如果你搞不明白这些参数怎样设计、并且E文稍微不错的话，那你就先在本地一台电脑里用记事本、写字板、editplus等任何文本软件打开包里的configure文件，呵呵，都是程序与代码、打开可不是让你去改的啊，呵呵，最好远观可千万别近玩啊！向下看看，你会发现大段的参数，大致在986行开始你会发现”Configuration:“字样，到1193行中间，这一大段的代码大多与配置参数有关的说明，每一个参数都有详细的说明。这里不多做介绍，其它我是让它默认的。我第一次安装编译时参数是&#8211;with-charset=gb2312 &#8211;with-extra-charsets=all这样做，我是让它默认字符集为gb2312,其它安符扩展全装，我认为把所有的都加进去了，那一定是没有问题的吧，安装编译是顺利完成了，但当进入linux命令行下输入/usr/local/mysql/bin/mysql -u root -p敲回车时，提示一大段的错误信息，说gb2312根本没有被编译进去，你说怪不怪，没办法，只好重新编译，写成./configure &#8211;prefix=/usr/local/mysql &#8211;with-charset=gb2312 &#8211;with-extra-charsets=gbk,gb2312这样。如果顺利执行完毕，没有错误信息提示，那么恭喜你了，但不要高兴太早，下面才很重要呢。</p>
<p>make &amp;&amp; make install //安装,如果这一步也很顺利完成，恭喜，mysql基本完成差不多了。下面都很简单了。</p>
<p>cd scripts //进入到脚本目录下</p>
<p>./mysql_install_db &#8211;user=mysql //安装库文件，应该会提示说OK！的。</p>
<p>cd /usr/local/mysql //进入到安装的mysql软件目录中</p>
<p>chown -R root .   //设定root能访问/usr/local/mysql<br />
chown -R mysql var   //设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置，在mysql_install_db时产生。<br />
chown -R mysql var/. //设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件<br />
chgrp -R mysql .   //设定mysql组能够访问/usr/local/mysql</p>
<p># 上面的已经把mysql完全安装完了，也能正常使用了，但还不够，你要将mysql的数据库启动脚本加入系统启动目录，不然，你总不能每次启动服务器后，都要登陆上去手工启动数据库吧，那还不麻烦死。<br />
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld</p>
<p>chmod 700 /etc/rc.d/init.d/mysqld</p>
<p>ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S97mysqld</p>
<p>/etc/rc.d/init.d/mysqld start  //来启动mysql进程 然后</p>
<p>/usr/local/mysql/bin/mysqladmin -u root password &#8216;yourpassword&#8217; //默认安装密码为空，为了安全你必须马上修改.请注意，你修改执行此命令时，一定不要加yourpassword两边的单引号或者双引号，比如你想设定密码是123456 就直接执行 /usr/local/mysql/bin/mysqladmin -u root password 123456 而不要写成 /usr/local/mysql/bin/mysqladmin -u root password &#8216;123456&#8242; ，这样加引号，你的密码也是带引号的。我以开始就是，加引号，用123456登陆mysql，怎么也进不去，就是提示密码错误，呵呵。<br />
<strong>二。安装php、gd库所需要的配件文件</strong></p>
<p><strong>A.curl</strong></p>
<p>curl安装</p>
<p>cd /usr/local/src //进入软件存放目录<br />
tar -zxvf curl-7.16.2.tar.gz<br />
cd curl-7.16.2<br />
./configure &#8211;prefix=/usr/local/curl</p>
<p>make &amp;&amp; make install //这个小软件很简单，不明白什么意思，到网上查资料吧。</p>
<p><strong>B.expat</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zxvf expat-2.0.0.tar.gz</p>
<p>cd expat-2.0.0</p>
<p>./configure &#8211;prefix=/usr/local/expat</p>
<p>make &amp;&amp; make install</p>
<p><strong>C.gzip安装</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zxvf gzip-1.3.5.tar.gz</p>
<p>cd gzip-1.3.5</p>
<p>./configure &#8211;prefix=/usr/local/gzip</p>
<p>make &amp;&amp; make install</p>
<p><strong>D.libxml2安装</strong></p>
<p>cd /usr/local/src</p>
<p>tar -xjvf libxml2-2.6.23.tar.bz2 //这个我下的是.bz的，你下的如果是.gz的就执行 tar -zxvf libxml2-6.23.tar.gz</p>
<p>cd libxml2-2.6.23</p>
<p>./configure &#8211;prefix=/usr/local/libxml2</p>
<p>make &amp;&amp; make install<br />
<strong>E.zlib安装</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zxvf zlib-1.2.3.tar.gz</p>
<p>cd zlib-1.2.3</p>
<p>./configure //这个配置编译命令不要加目录参数，我试过的，加上&#8211;prefix=/usr/local/zlib这个参数，在这里是一定会顺利编译通的，但可惜的是，到下面你编译gd库时，是不会通过的，到时就是会出问题，也真怪了，这些问题不是摸索出来，我是不会相信的。网友们自己有空了也可以多试试，看看为什么不能加参数。</p>
<p>make &amp;&amp; make install<br />
<strong>F.安装 jpeg6</strong></p>
<p>CODE:<br />
建立目录：<br />
mkdir -p /usr/local/jpeg6<br />
mkdir -p /usr/local/jpeg6/bin<br />
mkdir -p /usr/local/jpeg6/lib<br />
mkdir -p /usr/local/jpeg6/include<br />
mkdir -p /usr/local/jpeg6/man<br />
mkdir -p /usr/local/jpeg6/man1<br />
mkdir -p /usr/local/jpeg6/man/man1</p>
<p>cd /usr/local/src</p>
<p>tar -zvxf jpegsrc.v6b.tar.gz</p>
<p>cd jpeg-6b</p>
<p>./configure &#8211;prefix=/usr/local/jpeg6/ &#8211;enable-shared &#8211;enable-static</p>
<p>make &amp;&amp; make install</p>
<p><strong>G.安装libpng</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zvxf libpng-1.2.18.tar.gz</p>
<p>cd libpng-1.2.18</p>
<p>./configure  //这个如同上面zlib的说明一样，不要带参数，让它默认安装到相应目录</p>
<p>make &amp;&amp; make install</p>
<p><strong>H.安装 freetype</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zvxf freetype-2.3.4.tar.gz</p>
<p>cd freetype-2.3.4</p>
<p>mkdir -p /usr/local/freetype</p>
<p>./configure &#8211;prefix=/usr/local/freetype</p>
<p>make &amp;&amp; make install</p>
<p><strong>I.安装GD库</strong></p>
<p>//下面开始另一个重要的工作，安装gd库，因为gd库在window操作系统下默认是自带有的，但到linux下，必须得自己安装，不然，很多目前流行的论坛图水印功能、缩略图功能等都不能用，打开自己的网站图片大的大小的小，严重变形，影响美观，所以下决心要整冶好gd库。<br />
//这个gd库的安装是目前第四重要的软件。呵呵，第一个当然是php了，老二就是apache了，老三还用说吗是mysql，老四就是gd库了。呵呵。</p>
<p>cd /usr/local/src</p>
<p>tar -zvxf gd-2.0.34.tar.gz</p>
<p>mkdir -p /usr/local/gd</p>
<p>cd gd-2.0.34</p>
<p>./configure &#8211;prefix=/usr/local/gd &#8211;with-jpeg=/usr/local/jpeg6/ &#8211;with-png &#8211;with-zlib &#8211;with-freetype=/usr/local/freetype/</p>
<p>//大家看到了吧，在这些参数中，由于上面安装zlib、png二个软件没有指定目录，所以这里也不要指定了。<br />
//第一次安装测试时，上面zlib、png都很顺利编译通过，但到了这里，总是提示找不到freetype/png等相应的路径啊什么的。</p>
<p>make &amp;&amp; make install</p>
<p><strong>J.apache2安装</strong></p>
<p>//下面进行老二的安装，呵呵。</p>
<p>cd /usr/local/src</p>
<p>tar -zxvf httpd-2.2.4.tar.gz</p>
<p>cd httpd-2.2.4</p>
<p>./configure &#8211;prefix=/usr/local/apache2 &#8211;enable-module=most &#8211;enable-rewrite &#8211;enable-shared=max &#8211;enable-so</p>
<p>//上面的参数是自动把rewrite模块也编译进去了，在httpd.conf配置文件里就不用加载mod_rewrite.so模块了；<br />
//&#8211;enable-module=shared &#8211;enable-so &#8211;enable-rewrite=shared //这个不知是不是编译出了mod_rewrite.so模块？？?下次安装时用此参数测试一下；<br />
//这个一些参数好像有些问题，虽然都能正常使用，<br />
//php的编译参数就更多了，呵呵，自己如果有兴趣就可以专门研究一下，你研究了要告诉我一声。向你学习.</p>
<p>make &amp;&amp; make install</p>
<p>//两条命令，注意，最后一个命令是让apache2编译出所有的so文件，apache2以DSO模式运行。</p>
<p><strong>K.php5安装</strong></p>
<p>//下面进入最重要的老大的安装，所以它必须放在最后，呵呵，因为它要用到前面很多软件的。</p>
<p>cd /usr/local/src</p>
<p>tar -zxvf php-5.2.2.tar.gz</p>
<p>cd php-5.2.2</p>
<p>./configure &#8211;prefix=/usr/local/php5 &#8211;with-apxs2=/usr/local/apache2/bin/apxs &#8211;with-freetype=/usr/local/freetype &#8211;enable-trace-avrs &#8211;with-mysql=/usr/local/mysql &#8211;with-zlib &#8211;with-libxml=/usr/local/libxml2 &#8211;enable-shared &#8211;with-curl=/usr/local/curl &#8211;with-expat=/usr/local/expat &#8211;with-gd=/usr/local/gd &#8211;with-jpeg-dir=/usr/local/jpeg6 &#8211;with-png &#8211;enable-mbstring=all &#8211;enable-mbregex &#8211;enable-so<br />
//这里的参数指定，我是看了又看，唯恐写错一个字符，害了大家啊。这里千万不能错。等你有经验写文档时，请一定也要尊重你的读者，不然害人可不浅啊，等别人拿着你的文档编译时，就是编译不了，你说，当时他会急成什么样，特别是如我一族，没有人在旁边指导啊！</p>
<p>make &amp;&amp; make install</p>
<p>cp php.ini-dist /usr/local/php5/lib/php.ini<br />
<strong>L。Zend的安装</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zxvf ZendOptimizer-3.2.8-linux-glibc21-i386.tar.gz</p>
<p>cd ZendOptimizer-3.2.8-linux-glibc21-i386</p>
<p>./install //执行这个安装命令就可以了，哎，上帝啊，什么时候php、mysql、apache、gd这几大软件在linux下也能像Zend这样自动啊，一个命令，下面就是下一步下一步，我们这等小民也不会那么受罪与累了。<br />
//在这里下一步的过程中，一定要明白你的php.ini的路径是在/usr/local/php/lib/目录下，不能填错了。<br />
//另外的话：<br />
到这里，如果你还像我说的一样，顺利的话，恭喜恭喜恭喜你，你太有才了，真不容易走这一关。<br />
至于怎么配置php.ini与虚拟主机httpd-vhost.conf那就等我有空专门整理成篇再说好吗各位？<br />
你如果整理的很好、或者急需要知道怎样配置的话，可以在下面给我留言。</p>
<p>///////////////////////////////////////////////////////////////////<br />
<strong>配置vsftpd</strong></p>
<p>cd /etc/vsftpd<br />
vi vsftpd.conf<br />
在这个配置文件里实现如下形式<br />
anonymous_enable=no<br />
chroot_list_enable = yes<br />
chroot_local_user = no<br />
chroot_list_file=/etc/vsftpd.chroot_list</p>
<p>然后再回到<br />
cd /etc<br />
vi vsftpd.chroot_list<br />
在这个文件里一行写一个用户，被写入此文件中的用户，再用FTP工具连入系统是，就只能在自己的目里了。</p>
<p>让vsftpd启动系统时自动启动；<br />
在命令行下执行</p>
<p>setup</p>
<p>//进配置界面，在里面选择 “系统工具配置”；<br />
//新出现的新界面中，找到 vsftpd 服务，按“空格”键盘，选中此服务；“确定”退出就OK了。</p>
<p>/////////////////////////////////////////////////////////<br />
<strong>让mysql apache后台操作系统启动时自动启动</strong></p>
<p>进入/etc/目录下，</p>
<p>vi rc.local //编辑此文件，在文档结尾加入下面两行；</p>
<p>/usr/local/apache/bin/apachectl start &amp;<br />
/usr/local/mysql/bin/mysqld_safe &amp;</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F03%2Flinux-php5-mysql5-apache2-gd2-zend3.html&title=Linux%E4%B8%8BPhp5%2BMysql5%2BApache2%2BGD2%2BZend3%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4%282010%E5%B9%B4%E4%BF%AE%E8%AE%A2%E7%89%88%29" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/03/linux-php5-mysql5-apache2-gd2-zend3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java和PHP在Web开发方面的比较</title>
		<link>http://www.kaixinbc.com/2010/03/java-vs-php-web.html</link>
		<comments>http://www.kaixinbc.com/2010/03/java-vs-php-web.html#comments</comments>
		<pubDate>Wed, 10 Mar 2010 09:02:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=464</guid>
		<description><![CDATA[比较PHP和JSP这两个Web开发技术，在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较：
一、 语言比较
PHP是解释执行的服务器脚本语言，首先php有简单容易上手的特点。语法和c语言比较象，所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库，懂得面向对象的程序设计方法。所以java不如php好学。
Java首先要编译成字节码.class文件，然后在java虚拟机上解释执行。Java的Web开发首先最容易想到的就是JSP（现在已经到JSP2.0），原来的java的Web开发都是用servlet来实现的，用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中，其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet，然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离，能够增强系统的功能和软件的复用性。
Java的Web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的Web开发的所有方面，如：JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。
二、 数据库访问比较
Java通过JDBC来访问数据库，通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口，所以数据库访问代码的通用性不强。例如：用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
三、 系统设计架构比较
采用Java的Web开发技术，需要使用的是面向对象的系统设计方法，而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。
四、 跨平台性
Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。
五、 开发成本比较
PHP最经典的组合就是：PHP + MySQL + Apache。非常适合开发中小型的Web应用，开发的速度比较快。而且所有的软件都是开源免费的，可以减少投入。
Java的Web应用服务器有免费Tomcat、JBoss等，如果需要更好的商业化的服务有：Web Sphere和 Web logic。
六、 分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构，而JAVA在这方面就比较强大，可以实现多层的网络架构。数据库层（持久化层）、应用（业务）逻辑层、表示逻辑层彼此分开，而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的Web开发技术实现了MVC的设计模式，而在业务逻辑层也有Spring框架，数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。
下面简要的说一下Struts，它实质上是在JSP Model2的基础上实现的一个MVC（Model、View、Controler）框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中，模型由实现业务逻辑的JavaBean或EJB组件构成，控制器由Servlet实现的，视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂，其优势越明显。
七、 源代码安全
PHP开发的程序的源代码都是公开的，他人拿到php开发的程序后都可以进行修改。
Java开发的程序，最后用户拿到的是只是一些编译好的class类，无法看到完整的源代码，安全性高。
 八、性能比较
有人做过试验，对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。
在循环性能测试中，JSP只用了令人吃惊的四秒钟就结束了20000＊20000的回圈。而PHP测试的是2000＊2000循环（少一个数量级），却分别用了63秒。
数据库测试中，二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete： JSP 需要 13 秒，PHP 需要 69 秒。



项目
PHP
JAVA


可复用性
低
高


开发速度
快
慢


易维护性
差
优


可移植性
优－Linux
Windows、Unix


安全性
低
高


开发费用
低
高


多层架构
差
优


数据库访问
接口不统一
接口统一


可扩展性
差
优


面向对象
差
优



综上所述，我个人认为，PHP适合于快速开发，中小型应用系统，开发成本低，能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统，应用的前景比较广阔，系统易维护、可复用性较好。还有，同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
]]></description>
			<content:encoded><![CDATA[<p>比较PHP和JSP这两个Web开发技术，在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较：</p>
<p><strong>一、 语言比较</strong></p>
<p>PHP是解释执行的服务器脚本语言，首先php有简单容易上手的特点。语法和c语言比较象，所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库，懂得面向对象的程序设计方法。所以java不如php好学。</p>
<p>Java首先要编译成字节码.class文件，然后在java虚拟机上解释执行。Java的Web开发首先最容易想到的就是JSP（现在已经到JSP2.0），原来的java的Web开发都是用servlet来实现的，用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中，其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet，然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离，能够增强系统的功能和软件的复用性。</p>
<p>Java的Web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的Web开发的所有方面，如：JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。</p>
<p><strong>二、 数据库访问比较</strong></p>
<p>Java通过JDBC来访问数据库，通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。</p>
<p>PHP对于不同的数据库采用不同的数据库访问接口，所以数据库访问代码的通用性不强。例如：用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。</p>
<p><strong>三、 系统设计架构比较</strong></p>
<p>采用Java的Web开发技术，需要使用的是面向对象的系统设计方法，而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。</p>
<p><strong>四、 跨平台性</strong></p>
<p>Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。</p>
<p><strong>五、 开发成本比较</strong></p>
<p>PHP最经典的组合就是：PHP + MySQL + Apache。非常适合开发中小型的Web应用，开发的速度比较快。而且所有的软件都是开源免费的，可以减少投入。</p>
<p>Java的Web应用服务器有免费Tomcat、JBoss等，如果需要更好的商业化的服务有：Web Sphere和 Web logic。</p>
<p><strong>六、 分布式多层架构比较</strong></p>
<p>PHP只能实现简单的分布式两层或三层的架构，而JAVA在这方面就比较强大，可以实现多层的网络架构。数据库层（持久化层）、应用（业务）逻辑层、表示逻辑层彼此分开，而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的Web开发技术实现了MVC的设计模式，而在业务逻辑层也有Spring框架，数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。</p>
<p>下面简要的说一下Struts，它实质上是在JSP Model2的基础上实现的一个MVC（Model、View、Controler）框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中，模型由实现业务逻辑的JavaBean或EJB组件构成，控制器由Servlet实现的，视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂，其优势越明显。</p>
<p><strong>七、 源代码安全</strong></p>
<p>PHP开发的程序的源代码都是公开的，他人拿到php开发的程序后都可以进行修改。</p>
<p>Java开发的程序，最后用户拿到的是只是一些编译好的class类，无法看到完整的源代码，安全性高。</p>
<p><strong> 八、性能比较</strong></p>
<p>有人做过试验，对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。</p>
<p>在循环性能测试中，JSP只用了令人吃惊的四秒钟就结束了20000＊20000的回圈。而PHP测试的是2000＊2000循环（少一个数量级），却分别用了63秒。</p>
<p>数据库测试中，二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete： JSP 需要 13 秒，PHP 需要 69 秒。</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="94" valign="top"><strong>项目</strong></td>
<td width="113" valign="top"><strong>PHP</strong></td>
<td width="123" valign="top"><strong>JAVA</strong></td>
</tr>
<tr>
<td width="94" valign="top">可复用性</td>
<td width="113" valign="top">低</td>
<td width="123" valign="top">高</td>
</tr>
<tr>
<td width="94" valign="top">开发速度</td>
<td width="113" valign="top">快</td>
<td width="123" valign="top">慢</td>
</tr>
<tr>
<td width="94" valign="top">易维护性</td>
<td width="113" valign="top">差</td>
<td width="123" valign="top">优</td>
</tr>
<tr>
<td width="94" valign="top">可移植性</td>
<td width="113" valign="top">优－Linux</td>
<td width="123" valign="top">Windows、Unix</td>
</tr>
<tr>
<td width="94" valign="top">安全性</td>
<td width="113" valign="top">低</td>
<td width="123" valign="top">高</td>
</tr>
<tr>
<td width="94" valign="top">开发费用</td>
<td width="113" valign="top">低</td>
<td width="123" valign="top">高</td>
</tr>
<tr>
<td width="94" valign="top">多层架构</td>
<td width="113" valign="top">差</td>
<td width="123" valign="top">优</td>
</tr>
<tr>
<td width="94" valign="top">数据库访问</td>
<td width="113" valign="top">接口不统一</td>
<td width="123" valign="top">接口统一</td>
</tr>
<tr>
<td width="94" valign="top">可扩展性</td>
<td width="113" valign="top">差</td>
<td width="123" valign="top">优</td>
</tr>
<tr>
<td width="94" valign="top">面向对象</td>
<td width="113" valign="top">差</td>
<td width="123" valign="top">优</td>
</tr>
</tbody>
</table>
<p>综上所述，我个人认为，PHP适合于快速开发，中小型应用系统，开发成本低，能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统，应用的前景比较广阔，系统易维护、可复用性较好。还有，同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F03%2Fjava-vs-php-web.html&title=Java%E5%92%8CPHP%E5%9C%A8Web%E5%BC%80%E5%8F%91%E6%96%B9%E9%9D%A2%E7%9A%84%E6%AF%94%E8%BE%83" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/03/java-vs-php-web.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP如何与mysql建立链接？</title>
		<link>http://www.kaixinbc.com/2010/02/php-mysql-lianjie.html</link>
		<comments>http://www.kaixinbc.com/2010/02/php-mysql-lianjie.html#comments</comments>
		<pubDate>Tue, 23 Feb 2010 12:53:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=430</guid>
		<description><![CDATA[php.ini 加载mysql组件：
extension=php_mysql.dll 前的; 去掉
extension_dir = ” ”  路径是否正确
PHP链接mysql函数
mysql_connect: 开启 MySQL 链接
mysql_select_db:  打开一个数据库
@ 和 or die 隐藏错误 和 条件显示
mysql_connect(”主机”, “用户名”,  “密码”)
mysql_select_db(”打开数据库”,连接标识符);
如果不特别声明连接标识符，则默认为是上一次打开的连接。
]]></description>
			<content:encoded><![CDATA[<p>php.ini 加载mysql组件：<br />
extension=php_mysql.dll 前的; 去掉<br />
extension_dir = ” ”  路径是否正确<br />
PHP链接mysql函数<br />
mysql_connect: 开启 MySQL 链接<br />
mysql_select_db:  打开一个数据库<br />
@ 和 or die 隐藏错误 和 条件显示<br />
mysql_connect(”主机”, “用户名”,  “密码”)<br />
mysql_select_db(”打开数据库”,连接标识符);<br />
如果不特别声明连接标识符，则默认为是上一次打开的连接。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F02%2Fphp-mysql-lianjie.html&title=PHP%E5%A6%82%E4%BD%95%E4%B8%8Emysql%E5%BB%BA%E7%AB%8B%E9%93%BE%E6%8E%A5%EF%BC%9F" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/02/php-mysql-lianjie.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin下载、安装和使用入门</title>
		<link>http://www.kaixinbc.com/2010/02/phpmyadmin-downloads.html</link>
		<comments>http://www.kaixinbc.com/2010/02/phpmyadmin-downloads.html#comments</comments>
		<pubDate>Fri, 12 Feb 2010 07:09:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=330</guid>
		<description><![CDATA[      对于PHP的逐渐流行，我们有目共睹：无论是BLOG程序中的WordPress，还是CMS程序中的DEDECMS，还是BBS程序中的Discuz!，都可谓经典。
     随着程序语言选择的不同，WEB应用所使用的数据库也发生了变化，转而向MySQL阵营学习。其中对于phpMyAdmin的学习则必不可少。
     phpMyAdmin(简称PMA)是一个用PHP编写的，可以通过互联网在线控制和操作MySQL。他是众多MySQL管理员和网站管理员的首选数据库维护工具，通过phpMyAdmin可以完全对MySQL数据库进行操作。
一，phpMyAdmin的下载
       打开phpMyAdmin的官方站点：http://www.phpmyadmin.net/ ，在页面中选择“Download”，目前最新版本为phpMyAdmin 2.10.1，选择“all-languages.zip”文件下载

     下载后的ZIP文件通过解压软件进行解压的本地磁盘。如果本地有MySQL则可在本地测试，否则上传到支持MySQL的WEB服务器上，比如将所有解压文件上传到kaixinbc.com的phpmyadmin文件夹内，则可通过“http://kaixinbc.com/phpmyadmin ”进行访问。
二，phpMyAdmin的安装
      当然，无论是在本地测试还是在远程服务器上测试，都需要进行如下的文件配置才能正常使用phpMyAdmin。
      首先，在下载解压下来的文件中有一个文件“config.sample.inc.php”，这是phpMyAdmin配置文件的样本文件，我们需要把该文件中的所有代码拷贝，新建一个文件“config.inc.php”，并将代码粘贴。文件config.inc.php是phpMyAdmin的配置文件，上传服务器时必须上传该文件。
      对于config.inc.php文件，最重要的即是修改加入phpMyAdmin连接MySQL的用户名和密码。寻找到代码行：




// $cfg['Servers'][$i]['controluser'] = &#8216;pma&#8217;;
// $cfg['Servers'][$i]['controlpass'] = &#8216;pmapass&#8217;;



     将“//”注释号删除，同时输入MySQL中配置的用户名和密码（远程服务器的请联系你的空间服务商），比如这里：




$cfg['Servers'][$i]['controluser'] = &#8216;leosn_com&#8217;;
$cfg['Servers'][$i]['controlpass'] = &#8216;*********&#8217;;



      注意：如果需要通过远程服务器调试使用phpMyAdmin，则需要添加blowfish_secret内容定义Cookie，寻找到代码行：




$cfg['blowfish_secret'] = &#8221;;



设置内容为COOKIE




$cfg['blowfish_secret'] = &#8216;leosn&#8217;;



三，phpMyAdmin的使用
     打开phpMyAdmin所在服务器目录，比如http://www.kaixinbc.com/phpmyadmin/ ，继续输入MySQL用户的用户名和密码，进入。

     选择相关数据库可看到数据库中的各表，可进行表、字段的增删改，可以导入、导出数据库信息。总之选择中文语系的phpMyAdmin，你可以很快就入门。


     在百度搜索完整的phpMyAdmin下载、安装和使用入门内容，或者用Google搜索相关的更多内容
]]></description>
			<content:encoded><![CDATA[<p>      对于PHP的逐渐流行，我们有目共睹：无论是BLOG程序中的WordPress，还是CMS程序中的DEDECMS，还是BBS程序中的Discuz!，都可谓经典。</p>
<p>     随着程序语言选择的不同，WEB应用所使用的数据库也发生了变化，转而向MySQL阵营学习。其中对于phpMyAdmin的学习则必不可少。</p>
<p>     phpMyAdmin(简称PMA)是一个用PHP编写的，可以通过互联网在线控制和操作MySQL。他是众多MySQL管理员和网站管理员的首选数据库维护工具，通过phpMyAdmin可以完全对MySQL数据库进行操作。</p>
<p>一，phpMyAdmin的下载</p>
<p>       打开phpMyAdmin的官方站点：<a href="http://www.phpmyadmin.net/">http://www.phpmyadmin.net/</a> ，在页面中选择“Download”，目前最新版本为phpMyAdmin 2.10.1，选择“all-languages.zip”文件下载</p>
<p><img src="http://www.cnbruce.com/blog/uploadfile/GIF/2007-5/23-31749-phpmyadmin_01.gif" border="0" alt="" /></p>
<p>     下载后的ZIP文件通过解压软件进行解压的本地磁盘。如果本地有MySQL则可在本地测试，否则上传到支持MySQL的WEB服务器上，比如将所有解压文件上传到kaixinbc.com的phpmyadmin文件夹内，则可通过“http://kaixinbc.com/phpmyadmin ”进行访问。</p>
<p>二，phpMyAdmin的安装</p>
<p>      当然，无论是在本地测试还是在远程服务器上测试，都需要进行如下的文件配置才能正常使用phpMyAdmin。</p>
<p>      首先，在下载解压下来的文件中有一个文件“config.sample.inc.php”，这是phpMyAdmin配置文件的样本文件，我们需要把该文件中的所有代码拷贝，新建一个文件“<strong>config.inc.php</strong>”，并将代码粘贴。文件config.inc.php是phpMyAdmin的配置文件，上传服务器时必须上传该文件。</p>
<p>      对于config.inc.php文件，最重要的即是修改加入phpMyAdmin连接MySQL的用户名和密码。寻找到代码行：</p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
// $cfg['Servers'][$i]['controluser'] = &#8216;pma&#8217;;<br />
// $cfg['Servers'][$i]['controlpass'] = &#8216;pmapass&#8217;;</td>
</tr>
</tbody>
</table>
<p>     将“//”注释号删除，同时输入MySQL中配置的用户名和密码（远程服务器的请联系你的空间服务商），比如这里：</p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
$cfg['Servers'][$i]['controluser'] = &#8216;leosn_com&#8217;;<br />
$cfg['Servers'][$i]['controlpass'] = &#8216;*********&#8217;;</td>
</tr>
</tbody>
</table>
<p><strong>      注意：</strong>如果需要通过远程服务器调试使用phpMyAdmin，则需要添加blowfish_secret内容定义Cookie，寻找到代码行：</p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
$cfg['blowfish_secret'] = &#8221;;</td>
</tr>
</tbody>
</table>
<p>设置内容为COOKIE</p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
$cfg['blowfish_secret'] = &#8216;leosn&#8217;;</td>
</tr>
</tbody>
</table>
<p>三，phpMyAdmin的使用</p>
<p>     打开phpMyAdmin所在服务器目录，比如<a href="http://www.kaixinbc.com/phpmyadmin/">http://www.kaixinbc.com/phpmyadmin/</a> ，继续输入MySQL用户的用户名和密码，进入。</p>
<p><img src="http://www.cnbruce.com/blog/uploadfile/GIF/2007-5/23-24292-phpmyadmin_02.gif" border="0" alt="" /></p>
<p>     选择相关数据库可看到数据库中的各表，可进行表、字段的增删改，可以导入、导出数据库信息。总之选择中文语系的phpMyAdmin，你可以很快就入门。</p>
<p><img src="http://www.cnbruce.com/blog/uploadfile/GIF/2007-5/23-41056-phpmyadmin_03.gif" border="0" alt="" /></p>
<p><img src="http://www.cnbruce.com/blog/uploadfile/GIF/2007-5/23-37344-phpmyadmin_04.gif" border="0" alt="" /></p>
<p>     在百度搜索完整的phpMyAdmin下载、安装和使用入门内容，或者用Google搜索相关的更多内容</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F02%2Fphpmyadmin-downloads.html&title=phpMyAdmin%E4%B8%8B%E8%BD%BD%E3%80%81%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8%E5%85%A5%E9%97%A8+" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/02/phpmyadmin-downloads.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP语言介绍 让初学者了解什么是php语言</title>
		<link>http://www.kaixinbc.com/2010/02/php-introduction.html</link>
		<comments>http://www.kaixinbc.com/2010/02/php-introduction.html#comments</comments>
		<pubDate>Thu, 04 Feb 2010 12:49:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[开源软件]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=316</guid>
		<description><![CDATA[      PHP，一个嵌套的缩写名称，是英文超级文本预处理语言（PHP:Hypertext Preprocessor）的缩写。PHP 是一种HTML内嵌式的语言，PHP与微软的ASP颇有几分相似，都是一种在服务器端执行的嵌入HTML文档的脚本语言，语言的风格有类似于C语言，现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比，PHP是将程序嵌入到HTML文档中去执行，执行效率比完全生成HTML标记的CGI要高许多；与同样是嵌入HTML文档的脚本语言Javascrīpt相比，PHP在服务器端执行，成分利用了服务器的性能；PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中，其他用户在一次访问这个程序时就不需要重新编译程序了，只要直接执行内存中的代码就可以了，这也是PHP高效率的体现之一。PHP具有非常强大的功能，所有的CGI或者Javascrīpt的功能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动态创建图像。
    现在大多使用的是php5.0版本的，更多php相关信息请浏览php开源专栏。
]]></description>
			<content:encoded><![CDATA[<p>      PHP，一个嵌套的缩写名称，是英文超级文本预处理语言（PHP:Hypertext Preprocessor）的缩写。PHP 是一种HTML内嵌式的语言，PHP与微软的ASP颇有几分相似，都是一种在服务器端执行的嵌入HTML文档的脚本语言，语言的风格有类似于C语言，现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比，PHP是将程序嵌入到HTML文档中去执行，执行效率比完全生成HTML标记的CGI要高许多；与同样是嵌入HTML文档的脚本语言Javascrīpt相比，PHP在服务器端执行，成分利用了服务器的性能；PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中，其他用户在一次访问这个程序时就不需要重新编译程序了，只要直接执行内存中的代码就可以了，这也是PHP高效率的体现之一。PHP具有非常强大的功能，所有的CGI或者Javascrīpt的功能PHP都能实现，而且支持几乎所有流行的数据库以及操作系统。</p>
<p>      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又问世了，其中增加了许多新的特性。</p>
<p>    <strong>PHP的特性包括以下几点：</strong></p>
<p>     PHP是免费的，开放的源代码：所有的PHP源代码事实上都可以得到。基于服务器端：由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。嵌入HTML：因为PHP可以嵌入HTML语言，所以学习起来并不困难。简单的语言：PHP坚持脚本语言为主，与Java以C++不同。效率高：PHP消耗相当少的系统资源。图像处理：用PHP动态创建图像。</p>
<p>    现在大多使用的是php5.0版本的，更多php相关信息请浏览php开源专栏。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F02%2Fphp-introduction.html&title=PHP%E8%AF%AD%E8%A8%80%E4%BB%8B%E7%BB%8D+%E8%AE%A9%E5%88%9D%E5%AD%A6%E8%80%85%E4%BA%86%E8%A7%A3%E4%BB%80%E4%B9%88%E6%98%AFphp%E8%AF%AD%E8%A8%80" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/02/php-introduction.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL创始人寻求中国帮助 开心编程网加入全球拯救MySql行动</title>
		<link>http://www.kaixinbc.com/2010/02/save-mysql-all-over-the-world.html</link>
		<comments>http://www.kaixinbc.com/2010/02/save-mysql-all-over-the-world.html#comments</comments>
		<pubDate>Thu, 04 Feb 2010 12:09:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[业界动态]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[insert语句，mysql]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[开源软件]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=312</guid>
		<description><![CDATA[
 MySQL创始人向中国方面求援的邮件。全文如下：
亲爱的拯救MySQL的中国签名支持者：
       欧盟可能无法拯救MySQL, 中国和俄罗斯可能是拯救MySQL的希望之所在。中国拥有强大、独立以及自信的反垄断主管机关，因此，我本人在此请求您的帮助。对于您在http://www.helpmysql.org/ru/petition的签名，我们深表感谢。如果可以的话，我们需要您的进一步帮助：
        (1)商务部反垄断局是并购反垄断审查的主管机关，包括本次对甲骨文收购太阳微电子的反垄断审查。如果您正在使用MySQL，您的意见将对于商务部反垄断局的审查非常重要。我们不能详细的指示您该如何如何对主管机关反映情况，因为这是不妥当的。但是我们认为，如果您能告诉主管机关您的公司如何使用MySQL (什么项目，什么规模、数据流量以及使用者数量等)以及您认为甲骨文收购MySQL之后会产生什么样的影响，将会非常有用。如果您知道MySQL是昂贵的甲骨文数据库的免费替代品，举例向商务部反垄断局说明将会很有帮助。特别是，您知道或使用MySQL作为筹码，或声称将使用MySQL，以此要求甲骨文数据库降低价格的情况，请一定向商务部说明。我们希望您能直接写信给商务部反垄断局。
       商务部反垄断局会保护MySQL以及您作为使用者，客户和消费者的利益。在与商务部的沟通过程中，请您简单明了地说明您具体需要什么样的帮助。
       (2)感谢许许多多像您一样支持我们的人，我们在中国已经收集到了650 个签名，请见：http://helpmysql.org/cn/stats。 这是一个很好的开始。但是像中国这样一个支持开源的大国，应该会有更多人的签名。问题可能在于很多人可能认为这是欧盟委员会审查决定的事项，中国可能无法改变什么。事实上，中国商务部反垄断局可以做出自己的决定。
       在中国，知道此事的人可能还不多，新闻报道也比较有限。如果您有兴趣，可以帮我们联系中国有影响力IT网站或杂志，告诉他们这次签名活动。
       如果有更多的网站参与进来，就会有更多的人签署请愿书，虽然这只是第一步。切记确保文章中或网站中提到helpmysql.org，或者提供一个链接http://helpmysql.org/cn/theissue/customerspaythebill
对于您所做出的任何帮助，我在此预致感谢!
Michael Widenius
Creator of MySQL
 
    广大技术技术编程爱好者，如果你见到了这篇文章，也请你加入到我们的行列，让我们一起拯救MySQL，将开源进行到底！


]]></description>
			<content:encoded><![CDATA[<div>
<p style="text-align: left;"><strong> MySQL创始人向中国方面求援的邮件。全文如下：</strong></p>
<p><strong>亲爱的拯救MySQL的中国签名支持者：</strong></p>
<p>       欧盟可能无法拯救MySQL, 中国和俄罗斯可能是拯救MySQL的希望之所在。中国拥有强大、独立以及自信的反垄断主管机关，因此，我本人在此请求您的帮助。对于您在<a href="http://www.helpmysql.org/ru/petition" target="_blank">http://www.helpmysql.org/ru/petition</a>的签名，我们深表感谢。如果可以的话，我们需要您的进一步帮助：</p>
<p>        (1)商务部反垄断局是并购反垄断审查的主管机关，包括本次对甲骨文收购太阳微电子的反垄断审查。如果您正在使用MySQL，您的意见将对于商务部反垄断局的审查非常重要。我们不能详细的指示您该如何如何对主管机关反映情况，因为这是不妥当的。但是我们认为，如果您能告诉主管机关您的公司如何使用MySQL (什么项目，什么规模、数据流量以及使用者数量等)以及您认为甲骨文收购MySQL之后会产生什么样的影响，将会非常有用。如果您知道MySQL是昂贵的甲骨文数据库的免费替代品，举例向商务部反垄断局说明将会很有帮助。特别是，您知道或使用MySQL作为筹码，或声称将使用MySQL，以此要求甲骨文数据库降低价格的情况，请一定向商务部说明。我们希望您能直接写信给商务部反垄断局。</p>
<p>       商务部反垄断局会保护MySQL以及您作为使用者，客户和消费者的利益。在与商务部的沟通过程中，请您简单明了地说明您具体需要什么样的帮助。</p>
<p>       (2)感谢许许多多像您一样支持我们的人，我们在中国已经收集到了650 个签名，请见：<a href="http://helpmysql.org/cn/stats" target="_blank">http://helpmysql.org/cn/stats</a>。 这是一个很好的开始。但是像中国这样一个支持开源的大国，应该会有更多人的签名。问题可能在于很多人可能认为这是欧盟委员会审查决定的事项，中国可能无法改变什么。事实上，中国商务部反垄断局可以做出自己的决定。</p>
<p>       在中国，知道此事的人可能还不多，新闻报道也比较有限。如果您有兴趣，可以帮我们联系中国有影响力IT网站或杂志，告诉他们这次签名活动。</p>
<p>       如果有更多的网站参与进来，就会有更多的人签署请愿书，虽然这只是第一步。切记确保文章中或网站中提到helpmysql.org，或者提供一个链接<a href="http://helpmysql.org/cn/theissue/customerspaythebill" target="_blank">http://helpmysql.org/cn/theissue/customerspaythebill</a></p>
<p><strong>对于您所做出的任何帮助，我在此预致感谢!</strong></p>
<p><strong>Michael Widenius</strong></p>
<p><strong>Creator of MySQL</strong></p>
<p><strong> </strong></p>
<p><strong>    </strong>广大技术技术编程爱好者，如果你见到了这篇文章，也请你加入到我们的行列，让我们一起拯救MySQL，将开源进行到底！</p>
<p><a href="http://helpmysql.org/cn/petition"><img class="size-medium wp-image-313 alignnone" title="petition-sign-cn" src="http://www.kaixinbc.com/wp-content/uploads/2010/02/petition-sign-cn-300x211.png" alt="" width="300" height="211" /></a></p>
</div>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F02%2Fsave-mysql-all-over-the-world.html&title=MySQL%E5%88%9B%E5%A7%8B%E4%BA%BA%E5%AF%BB%E6%B1%82%E4%B8%AD%E5%9B%BD%E5%B8%AE%E5%8A%A9+%E5%BC%80%E5%BF%83%E7%BC%96%E7%A8%8B%E7%BD%91%E5%8A%A0%E5%85%A5%E5%85%A8%E7%90%83%E6%8B%AF%E6%95%91MySql%E8%A1%8C%E5%8A%A8" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/02/save-mysql-all-over-the-world.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AJAX在PHP中的简单使用(二)：表单的POST方式</title>
		<link>http://www.kaixinbc.com/2010/02/ajax-php-two.html</link>
		<comments>http://www.kaixinbc.com/2010/02/ajax-php-two.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 16:01:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[post表单方式]]></category>
		<category><![CDATA[伪Ajax方式]]></category>
		<category><![CDATA[异步回调]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=273</guid>
		<description><![CDATA[使用POST方式
其实POST方式跟Get方式是比较类似的，只是在执行Ajax的时候稍有不同，我们简单讲述一下。
假设有一个用户输入资料的表单，我们在无刷新的情况下把用户资料保存到数据库中，同时给用户一个成功的提示。
//构建一个表单，表单中不需要action、method之类的属性，全部由ajax来搞定了。
＜form name="user_info"＞
姓名：＜input type="text" name="user_name" /＞＜br /＞
年龄：＜input type="text" name="user_age" /＞＜br /＞
性别：＜input type="text" name="user_sex" /＞＜br /＞
＜input type="button" value="提交表单" onClick="saveUserInfo()"＞
＜/form＞
//构建一个接受返回信息的层：
＜div id="msg"＞＜/div＞
我们看到上面的form表单里没有需要提交目标等信息，并且提交按钮的类型也只是button，那么所有操作都是靠onClick事件中的saveUserInfo()函数来执行了。我们描述一下这个函数：
function saveUserInfo()
{
　//获取接受返回信息层
　var msg = document.getElementById("msg");
　//获取表单对象和用户信息值
　var f = document.user_info;
　var userName = f.user_name.value;
　var userAge = f.user_age.value;
　var userSex = f.user_sex.value;
　//接收表单的URL地址
　var url = "/save_info.php";
　//需要POST的值，把每个变量都通过&#38;来联接
　var postStr = "user_name="+ userName +"&#38;user_age="+ userAge +"&#38;user_sex="+ userSex;
　//实例化Ajax
　var ajax = InitAjax();
　//通过Post方式打开连接
　ajax.open("POST", url, true);
　//定义传输的文件HTTP头信息
　ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
　//发送POST数据
　ajax.send(postStr);
　//获取执行状态
　ajax.onreadystatechange = function() {
　　//如果执行状态成功，那么就把返回信息写到指定的层里
　　if (ajax.readyState == [...]]]></description>
			<content:encoded><![CDATA[<p><strong>使用POST方式</strong></p>
<p>其实POST方式跟Get方式是比较类似的，只是在执行Ajax的时候稍有不同，我们简单讲述一下。</p>
<p>假设有一个用户输入资料的表单，我们在无刷新的情况下把用户资料保存到数据库中，同时给用户一个成功的提示。</p>
<p><code>//构建一个表单，表单中不需要action、method之类的属性，全部由ajax来搞定了。<br />
＜form name="user_info"＞<br />
姓名：＜input type="text" name="user_name" /＞＜br /＞<br />
年龄：＜input type="text" name="user_age" /＞＜br /＞<br />
性别：＜input type="text" name="user_sex" /＞＜br /＞<br />
＜input type="button" value="提交表单" onClick="saveUserInfo()"＞<br />
＜/form＞<br />
//构建一个接受返回信息的层：<br />
＜div id="msg"＞＜/div＞</code></p>
<p>我们看到上面的form表单里没有需要提交目标等信息，并且提交按钮的类型也只是button，那么所有操作都是靠onClick事件中的saveUserInfo()函数来执行了。我们描述一下这个函数：</p>
<p><code>function saveUserInfo()<br />
{<br />
　//获取接受返回信息层<br />
　var msg = document.getElementById("msg");<br />
　//获取表单对象和用户信息值<br />
　var f = document.user_info;<br />
　var userName = f.user_name.value;<br />
　var userAge = f.user_age.value;<br />
　var userSex = f.user_sex.value;<br />
　//接收表单的URL地址<br />
　var url = "/save_info.php";<br />
　//需要POST的值，把每个变量都通过&amp;来联接<br />
　var postStr = "user_name="+ userName +"&amp;user_age="+ userAge +"&amp;user_sex="+ userSex;<br />
　//实例化Ajax<br />
　var ajax = InitAjax();<br />
　//通过Post方式打开连接<br />
　ajax.open("POST", url, true);<br />
　//定义传输的文件HTTP头信息<br />
　ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");<br />
　//发送POST数据<br />
　ajax.send(postStr);<br />
　//获取执行状态<br />
　ajax.onreadystatechange = function() {<br />
　　//如果执行状态成功，那么就把返回信息写到指定的层里<br />
　　if (ajax.readyState == 4 &amp;&amp; ajax.status == 200) {<br />
　　　msg.innerHTML = ajax.responseText;<br />
　　}<br />
　}<br />
}</code></p>
<p>大致使用POST方式的过程就是这样，当然，实际开发情况可能会更复杂，这就需要开发者去慢慢琢磨。</p>
<p><strong>异步回调（伪Ajax方式）</strong></p>
<p>一般情况下，使用Get、Post方式的Ajax我们都能够解决目前问题，只是应用复杂程度，当然，在开发中我们也许会碰到无法使用Ajax的时候，但是我们又需要模拟Ajax的效果，那么就可以使用伪Ajax的方式来实现我们的需求。</p>
<p>伪Ajax大致原理就是说我们还是普通的表单提交，或者别的什么的，但是我们却是把提交的值目标是一个浮动框架，这样页面就不刷新了，但是呢，我们又需要看到我们的执行结果，当然可以使用JavaScript来模拟提示信息，但是，这不是真实的，所以我们就需要我们的执行结果来异步回调，告诉我们执行结果是怎么样的。</p>
<p>假设我们的需求是需要上传一张图片，并且，需要知道图片上传后的状态，比如，是否上传成功、文件格式是否正确、文件大小是否正确等等。那么我们就需要我们的目标窗口把执行结果返回来给我们的窗口，这样就能够顺利的模拟一次Ajax调用的过程。</p>
<p>以下代码稍微多一点， 并且涉及Smarty模板技术，如果不太了解，请阅读相关技术资料。</p>
<p><code>上传文件：upload.html<br />
//上传表单，指定target属性为浮动框架iframe1<br />
＜form action="/upload.php" method="post" enctype="multipart/form-data" name="upload_img" target="iframe1"＞<br />
选择要上传的图片：＜input type="file" name="image"＞＜br /＞<br />
＜input type="submit" value="上传图片"＞<br />
＜/form＞<br />
//显示提示信息的层<br />
＜div id="message" style="display:none"＞＜/div＞<br />
//用来做目标窗口的浮动框架<br />
＜iframe name="iframe1" width="0" height="0" scrolling="no"＞＜/iframe＞</code></p>
<p>处理上传的PHP文件：upload.php</p>
<p><code>＜?php<br />
　/* 定义常量 */<br />
　//定义允许上传的MIME格式<br />
　define("UPLOAD_IMAGE_MIME", "image/pjpeg,image/jpg,image/jpeg,image/gif,image/x-png,image/png");<br />
　//图片允许大小，字节<br />
　define("UPLOAD_IMAGE_SIZE", 102400);<br />
　//图片大小用KB为单位来表示<br />
　define("UPLOAD_IMAGE_SIZE_KB", 100);<br />
　//图片上传的路径<br />
　define("UPLOAD_IMAGE_PATH", "./upload/");<br />
　//获取允许的图像格式<br />
　$mime = explode(",", USER_FACE_MIME);<br />
　$is_vaild = 0;<br />
　//遍历所有允许格式<br />
　foreach ($mime as $type)<br />
　{<br />
　　if ($_FILES['image']['type'] == $type)<br />
　　{<br />
　　　$is_vaild = 1;<br />
　　}<br />
　}<br />
　//如果格式正确，并且没有超过大小就上传上去<br />
　if ($is_vaild &amp;&amp; $_FILES['image']['size']＜=USER_FACE_SIZE &amp;&amp; $_FILES['image']['size']＞0)<br />
　{<br />
　　if (move_uploaded_file($_FILES['image']['tmp_name'], USER_IMAGE_PATH . $_FILES['image']['name']))<br />
　　{<br />
　　　$upload_msg ="上传图片成功！";<br />
　　}<br />
　　else<br />
　　{<br />
　　　$upload_msg = "上传图片文件失败";<br />
　　}<br />
　}<br />
　else<br />
　{<br />
　　$upload_msg = "上传图片失败，可能是文件超过". USER_FACE_SIZE_KB ."KB、或者图片文件为空、或文件格式不正确";<br />
　}<br />
　//解析模板文件<br />
　$smarty-＞assign("upload_msg", $upload_msg);<br />
　$smarty-＞display("upload.tpl");<br />
?＞<br />
模板文件：upload.tpl<br />
{if $upload_msg != ""}<br />
callbackMessage("{$upload_msg}");<br />
{/if}<br />
//回调的JavaScript函数，用来在父窗口显示信息<br />
function callbackMessage(msg)<br />
{<br />
　//把父窗口显示消息的层打开<br />
　parent.document.getElementById("message").style.display = "block";<br />
　//把本窗口获取的消息写上去<br />
　parent.document.getElementById("message").innerHTML = msg;<br />
　//并且设置为3秒后自动关闭父窗口的消息显示<br />
　setTimeout("parent.document.getElementById('message').style.display = 'none'", 3000);<br />
}</code></p>
<p>使用异步回调的方式过程有点复杂，但是基本实现了Ajax、以及信息提示的功能，如果接受模板的信息提示比较多，那么还可以通过设置层的方式来处理，这个随机应变吧。</p>
<p><strong>[ 结束语 ]</strong></p>
<p>这是一种非常良好的Web开发技术，虽然出现时间比较长，但是到现在才慢慢火起来，也希望带给Web开发界一次变革，让我们朝RIA（富客户端）的开发迈进，当然，任何东西有利也有弊端，如果过多的使用JavaScript，那么客户端将非常臃肿，不利于用户的浏览体验，如何在做到快速的亲前提下，还能够做到好的用户体验，这就需要Web开发者共同努力了。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F02%2Fajax-php-two.html&title=AJAX%E5%9C%A8PHP%E4%B8%AD%E7%9A%84%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8%28%E4%BA%8C%29%EF%BC%9A%E8%A1%A8%E5%8D%95%E7%9A%84POST%E6%96%B9%E5%BC%8F" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/02/ajax-php-two.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX在PHP中的简单使用</title>
		<link>http://www.kaixinbc.com/2010/01/ajax-php-one.html</link>
		<comments>http://www.kaixinbc.com/2010/01/ajax-php-one.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 15:51:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[Ajax在php中的应用]]></category>
		<category><![CDATA[Ajax应用]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=271</guid>
		<description><![CDATA[       AJAX无疑是2005年炒的最热的Web开发技术之一，当然，这个功劳离不开Google。我只是一个普通开发者，使用AJAX的地方不是特别多，我就简单的把我使用的心得说一下。（本文假设用户已经具有JavaScript、HTML、CSS等基本的Web开发能力）
[AJAX介绍]
      Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互流程进行重新加裁，就可以动态地更新。使用Ajax，用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
     异步JavaScript和XML（AJAX）不是什么新技术，而是使用几种现有技术——包括级联样式表（CSS）、JavaScript、XHTML、XML和可扩展样式语言转换（XSLT），开发外观及操作类似桌面软件的Web应用软件。
[AJAX执行原理]
      一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的，它允许一个客户端脚本来执行HTTP请求，并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法（GET或POST）来处理请求，并将目标URL设置到XMLHttpRequest对象上。
       当你发送HTTP请求，你不希望浏览器挂起并等待服务器的响应，取而代之的是，你希望通过页面继续响应用户的界面交互，并在服务器响应真正到达后处理它们。要完成它，你可以向XMLHttpRequest注册一个回调函数，并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器，当服务器响应到达时，回调函数将会被调用。
[AJAX实际应用]
1. 初始化Ajax
     Ajax实际上就是调用了XMLHttpRequest对象，那么首先我们的就必须调用这个对象，我们构建一个初始化Ajax的函数：
/**
* 初始化一个xmlhttp对象
*/
function InitAjax()
{
　var ajax=false;
　try {
　　ajax = new ActiveXObject("Msxml2.XMLHTTP");
　} catch (e) {
　　try {
　　　ajax = new ActiveXObject("Microsoft.XMLHTTP");
　　} catch (E) {
　　　ajax = false;
　　}
　}
　if (!ajax &#38;&#38; typeof XMLHttpRequest!='undefined') {
　　ajax = new XMLHttpRequest();
　}
　return ajax;
}
     你也许会说，这个代码因为要调用XMLHTTP组件，是不是只有IE浏览器能使，不是的经我试验，Firefox也是能使用的。
     那么我们在执行任何Ajax操作之前，都必须先调用我们的InitAjax()函数来实例化一个Ajax对象。
2. 使用Get方式
    现在我们第一步来执行一个Get请求，加入我们需要获取 /show.php?id=1的数据，那么我们应该怎么做呢？
      假设有一个链接：＜a href=&#8221;/show.php?id=1&#8243;＞新闻1＜/a＞，我点该链接的时候，不想任何刷新就能够看到链接的内容，那么我们该怎么做呢？
//将链接改为：
＜a href="http://cms.ddvip.com/index.php#" onClick="getNews(1)"＞新闻1＜/a＞
//并且设置一个接收新闻的层，并且设置为不显示：
＜div id="show_news"＞＜/div＞
同时构造相应的JavaScript函数：
function getNews(newsID)
{
　//如果没有把参数newsID传进来
　if (typeof(newsID) == 'undefined')
　{
　　return false;
　}
　//需要进行Ajax的URL地址
　var url = "/show.php?id="+ newsID;
　//获取新闻显示层的位置
　var [...]]]></description>
			<content:encoded><![CDATA[<p>       AJAX无疑是2005年炒的最热的Web开发技术之一，当然，这个功劳离不开Google。我只是一个普通开发者，使用AJAX的地方不是特别多，我就简单的把我使用的心得说一下。（本文假设用户已经具有JavaScript、HTML、CSS等基本的Web开发能力）</p>
<p><strong>[AJAX介绍]</strong></p>
<p>      Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互流程进行重新加裁，就可以动态地更新。使用Ajax，用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。</p>
<p>     异步JavaScript和XML（AJAX）不是什么新技术，而是使用几种现有技术——包括级联样式表（CSS）、JavaScript、XHTML、XML和可扩展样式语言转换（XSLT），开发外观及操作类似桌面软件的Web应用软件。</p>
<p><strong>[AJAX执行原理]</strong></p>
<p>      一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的，它允许一个客户端脚本来执行HTTP请求，并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法（GET或POST）来处理请求，并将目标URL设置到XMLHttpRequest对象上。</p>
<p>       当你发送HTTP请求，你不希望浏览器挂起并等待服务器的响应，取而代之的是，你希望通过页面继续响应用户的界面交互，并在服务器响应真正到达后处理它们。要完成它，你可以向XMLHttpRequest注册一个回调函数，并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器，当服务器响应到达时，回调函数将会被调用。</p>
<p><strong>[AJAX实际应用]</strong></p>
<p>1. 初始化Ajax</p>
<p>     Ajax实际上就是调用了XMLHttpRequest对象，那么首先我们的就必须调用这个对象，我们构建一个初始化Ajax的函数：</p>
<p><code>/**<br />
* 初始化一个xmlhttp对象<br />
*/<br />
function InitAjax()<br />
{<br />
　var ajax=false;<br />
　try {<br />
　　ajax = new ActiveXObject("Msxml2.XMLHTTP");<br />
　} catch (e) {<br />
　　try {<br />
　　　ajax = new ActiveXObject("Microsoft.XMLHTTP");<br />
　　} catch (E) {<br />
　　　ajax = false;<br />
　　}<br />
　}<br />
　if (!ajax &amp;&amp; typeof XMLHttpRequest!='undefined') {<br />
　　ajax = new XMLHttpRequest();<br />
　}<br />
　return ajax;<br />
}</code></p>
<p>     你也许会说，这个代码因为要调用XMLHTTP组件，是不是只有IE浏览器能使，不是的经我试验，Firefox也是能使用的。</p>
<p>     那么我们在执行任何Ajax操作之前，都必须先调用我们的InitAjax()函数来实例化一个Ajax对象。</p>
<p>2. 使用Get方式</p>
<p>    现在我们第一步来执行一个Get请求，加入我们需要获取 /show.php?id=1的数据，那么我们应该怎么做呢？</p>
<p>      假设有一个链接：＜a href=&#8221;/show.php?id=1&#8243;＞新闻1＜/a＞，我点该链接的时候，不想任何刷新就能够看到链接的内容，那么我们该怎么做呢？</p>
<p><code>//将链接改为：<br />
＜a href="http://cms.ddvip.com/index.php#" onClick="getNews(1)"＞新闻1＜/a＞<br />
//并且设置一个接收新闻的层，并且设置为不显示：<br />
＜div id="show_news"＞＜/div＞</code></p>
<p>同时构造相应的JavaScript函数：</p>
<p><code>function getNews(newsID)<br />
{<br />
　//如果没有把参数newsID传进来<br />
　if (typeof(newsID) == 'undefined')<br />
　{<br />
　　return false;<br />
　}<br />
　//需要进行Ajax的URL地址<br />
　var url = "/show.php?id="+ newsID;<br />
　//获取新闻显示层的位置<br />
　var show = document.getElementById("show_news");<br />
　//实例化Ajax对象<br />
　var ajax = InitAjax();<br />
　//使用Get方式进行请求<br />
　ajax.open("GET", url, true);<br />
　//获取执行状态<br />
　ajax.onreadystatechange = function() {<br />
　　//如果执行是状态正常，那么就把返回的内容赋值给上面指定的层<br />
　　if (ajax.readyState == 4 &amp;&amp; ajax.status == 200) {<br />
　　　show.innerHTML = ajax.responseText;<br />
　　}<br />
　}<br />
　//发送空<br />
　ajax.send(null);<br />
}</code></p>
<p>        那么当，当用户点击“新闻1”这个链接的时候，在下面对应的层将显示获取的内容，而且页面没有任何刷新。当然，我们上面省略了show.php这个文件，我们只是假设show.php文件存在，并且能够正常工作的从数据库中把id为1的新闻提取出来。</p>
<p>      这种方式适应于页面中任何元素，包括表单等等，其实在应用中，对表单的操作是比较多的，针对表单，更多使用的是POST方式，这个将在<a href="http://www.qiuxueonline.cn/2010/01/ajax-php-two.php">下章讲述</a>。</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fajax-php-one.html&title=AJAX%E5%9C%A8PHP%E4%B8%AD%E7%9A%84%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/ajax-php-one.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP数组全面总结 最全面的php数组学习资料</title>
		<link>http://www.kaixinbc.com/2010/01/php-shuzu-learn.html</link>
		<comments>http://www.kaixinbc.com/2010/01/php-shuzu-learn.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:10:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[开源软件]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=235</guid>
		<description><![CDATA[ 
一、什么是数组
数组就是一组数据的集合，把一系列数据组织起来，形成一个可操作的整体。数组的每个实体都包含两项：键和值。
二、声明数据
在PHP中声明数组的方式主要有两种：一是应用array()函数声明数组，一是直接为数组元素赋值。
&#60;1&#62;array()函数声明的数组的方式array([mixed...]) 参数mixed的语法为key=&#62;value
如，&#60;?php
$array=array(&#8220;1&#8243;=&#62;&#8221;编&#8221;,&#8221;2&#8243;=&#62;&#8221;程&#8221;,&#8221;3&#8243;=&#62;&#8221;词&#8221;,&#8221;4&#8243;=&#62;&#8221;典&#8221;);
print_r($array);
echo &#8220;&#60;br&#62;&#8221;;
echo $array[1]; //注意：下标默认是从0开始      
echo $array[2];       
echo $array[3];       
echo $array[4];       
?&#62;
&#60;2&#62;直接为数组元素赋值。如果在创建数组时不知所创建数组的大小，或在实际编写程序时数组的大小可能发生变化，采用这种数组创建的方法较好。
如，&#60;?php
$array[1]=&#8221;I&#8221;;
$array[2]=&#8221;love&#8221;;
$array[3]=&#8221;PHP&#8221;;
print_r($array); //输出所创建数组的结构
?&#62;
三、数组的类型
PHP支持两种数组：索引数组(indexed array)和联合数组(associative array)，前者使用数字作为键，后者使用字符串作为键。
四、输出数组
在PHP中对数组元素输出，可以通过echo和print语句来实现，但这只能对数组中某一元素进行输出；要将数组结构输出则要使用print_r()函数，其语法：print_r(mixed expression),参数expression为普通的整形、字符型或实型变量则输出该变量本身，如果该参数为数组，则按一定键值和元素的顺序显示出该数组中的所有元素。
五、数组的构造
一维数组：
当一个数组的元素是变量时，则称其为一维数组。
声明一位数组： 类型说明符 数组名[常量表达式]；
二维数组：
当一个数组的元素是一个一位数组时，则称之为二维数组。
如，&#60;?php
$str = array (
     &#8220;网络编程语言&#8221;=&#62;array (&#8220;PHP&#8221;,&#8221;JSP&#8221;,&#8221;ASP&#8221;),
&#8220;体育项目&#8221;=&#62;array (&#8220;m&#8221;=&#62;&#8221;足球&#8221;,&#8221;n&#8221;=&#62;&#8221;篮球&#8221;));
print_r ( $str) ;
?&#62;
六、遍历数组
遍历数组中的所有元素是常用的一种操作，在遍历的过程中可以完成查询或其他功能。在PHP中遍历数组的方法有多种，下面介绍最常用的两种方法。
&#60;1&#62;使用foreach结构遍历数组；
&#60;2&#62;使用list()函数遍历数组，list()函数仅能用于数字索引的数组，且数字索引从0开始。
例：综合使用list()和each()认证用户登录：
&#60;?php
//输出用户登录信息
while(list($name,$value)=each($_POST)){
if($name!=&#8221;submit&#8221;){
   echo &#8220;$name=$value&#60;br&#62;&#8221;;
}
}
?&#62;
七、统计数组元素个数
在PHP中，使用count()函数对数组中的元素个数进行统计，语法为：int coun(mixed array[,int mode]),其中参数array为必要参数，mode为可选参数，若选中COUNT——RECURSIVE(或1),本函数将递归地对数组数组。如，
&#60;?php
$array = array(&#8220;php&#8221; =&#62; array(&#8220;PHP函数参考大全&#8221;,&#8221;PHP程序开发范例宝典&#8221;,&#8221;PHP数据库系统开发完全手册&#8221;),
               &#8220;asp&#8221; =&#62; array(&#8220;ASP经验技巧宝典&#8221;)
         ); //声明一个二维数组       
echo count($array,COUNT_RECURSIVE);//递归统计数组元素的个数，运行结果为6
?&#62;
八、数组排序
&#60;1&#62;使用sort()和rsort()分别对数组进行升序和降序，如，
&#60;?php
$array=array(5,26,37,18,9,42,88,66);
$array1=sort($array);       
for($i=0;$i&#60;count($array);$i++){  
   echo $array[$i].&#8221;&#38;nbsp;&#38;nbsp;&#8221;;  
}
echo &#8220;&#60;br&#62;&#8221;;
$array1=rsort($array);      
for($i=0;$i&#60;count($array);$i++){     
echo $array[$i].&#8221;&#38;nbsp;&#38;nbsp&#8221;;
}
?&#62;
运行结果：
5 9 18 26 37 42 66 88
88 66 42 37 26 18 9 [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>一、什么是数组<br />
数组就是一组数据的集合，把一系列数据组织起来，形成一个可操作的整体。数组的每个实体都包含两项：键和值。</p>
<p>二、声明数据<br />
在PHP中声明数组的方式主要有两种：一是应用array()函数声明数组，一是直接为数组元素赋值。<br />
&lt;1&gt;array()函数声明的数组的方式array([mixed...]) 参数mixed的语法为key=&gt;value<br />
如，&lt;?php<br />
$array=array(&#8220;1&#8243;=&gt;&#8221;编&#8221;,&#8221;2&#8243;=&gt;&#8221;程&#8221;,&#8221;3&#8243;=&gt;&#8221;词&#8221;,&#8221;4&#8243;=&gt;&#8221;典&#8221;);<br />
print_r($array);<br />
echo &#8220;&lt;br&gt;&#8221;;<br />
echo $array[1]; //注意：下标默认是从0开始      <br />
echo $array[2];       <br />
echo $array[3];       <br />
echo $array[4];       <br />
?&gt;<br />
&lt;2&gt;直接为数组元素赋值。如果在创建数组时不知所创建数组的大小，或在实际编写程序时数组的大小可能发生变化，采用这种数组创建的方法较好。<br />
如，&lt;?php<br />
$array[1]=&#8221;I&#8221;;<br />
$array[2]=&#8221;love&#8221;;<br />
$array[3]=&#8221;PHP&#8221;;<br />
print_r($array); //输出所创建数组的结构<br />
?&gt;</p>
<p>三、数组的类型<br />
PHP支持两种数组：索引数组(indexed array)和联合数组(associative array)，前者使用数字作为键，后者使用字符串作为键。</p>
<p>四、输出数组<br />
在PHP中对数组元素输出，可以通过echo和print语句来实现，但这只能对数组中某一元素进行输出；要将数组结构输出则要使用print_r()函数，其语法：print_r(mixed expression),参数expression为普通的整形、字符型或实型变量则输出该变量本身，如果该参数为数组，则按一定键值和元素的顺序显示出该数组中的所有元素。</p>
<p>五、数组的构造<br />
一维数组：<br />
当一个数组的元素是变量时，则称其为一维数组。<br />
声明一位数组： 类型说明符 数组名[常量表达式]；<br />
二维数组：<br />
当一个数组的元素是一个一位数组时，则称之为二维数组。<br />
如，&lt;?php<br />
$str = array (<br />
     &#8220;网络编程语言&#8221;=&gt;array (&#8220;PHP&#8221;,&#8221;JSP&#8221;,&#8221;ASP&#8221;),<br />
&#8220;体育项目&#8221;=&gt;array (&#8220;m&#8221;=&gt;&#8221;足球&#8221;,&#8221;n&#8221;=&gt;&#8221;篮球&#8221;));<br />
print_r ( $str) ;<br />
?&gt;</p>
<p>六、遍历数组<br />
遍历数组中的所有元素是常用的一种操作，在遍历的过程中可以完成查询或其他功能。在PHP中遍历数组的方法有多种，下面介绍最常用的两种方法。<br />
&lt;1&gt;使用foreach结构遍历数组；<br />
&lt;2&gt;使用list()函数遍历数组，list()函数仅能用于数字索引的数组，且数字索引从0开始。<br />
例：综合使用list()和each()认证用户登录：<br />
&lt;?php<br />
//输出用户登录信息<br />
while(list($name,$value)=each($_POST)){<br />
if($name!=&#8221;submit&#8221;){<br />
   echo &#8220;$name=$value&lt;br&gt;&#8221;;<br />
}<br />
}<br />
?&gt;<br />
七、统计数组元素个数<br />
在PHP中，使用count()函数对数组中的元素个数进行统计，语法为：int coun(mixed array[,int mode]),其中参数array为必要参数，mode为可选参数，若选中COUNT——RECURSIVE(或1),本函数将递归地对数组数组。如，<br />
&lt;?php<br />
$array = array(&#8220;php&#8221; =&gt; array(&#8220;PHP函数参考大全&#8221;,&#8221;PHP程序开发范例宝典&#8221;,&#8221;PHP数据库系统开发完全手册&#8221;),<br />
               &#8220;asp&#8221; =&gt; array(&#8220;ASP经验技巧宝典&#8221;)<br />
         ); //声明一个二维数组       <br />
echo count($array,COUNT_RECURSIVE);//递归统计数组元素的个数，运行结果为6<br />
?&gt;</p>
<p>八、数组排序<br />
&lt;1&gt;使用sort()和rsort()分别对数组进行升序和降序，如，<br />
&lt;?php<br />
$array=array(5,26,37,18,9,42,88,66);<br />
$array1=sort($array);       <br />
for($i=0;$i&lt;count($array);$i++){  <br />
   echo $array[$i].&#8221;&amp;nbsp;&amp;nbsp;&#8221;;  <br />
}<br />
echo &#8220;&lt;br&gt;&#8221;;<br />
$array1=rsort($array);      <br />
for($i=0;$i&lt;count($array);$i++){     <br />
echo $array[$i].&#8221;&amp;nbsp;&amp;nbsp&#8221;;<br />
}<br />
?&gt;<br />
运行结果：<br />
5 9 18 26 37 42 66 88<br />
88 66 42 37 26 18 9 5  <br />
&lt;2&gt;使用ksort()和asort()对关联数组排序<br />
如果使用了相关数组，在排序后还要保持关键字和值的排序一致，这是就需要使用ksort()和asort()函</p>
<p>数，如，<br />
&lt;?php<br />
$array=array(&#8216;php&#8217;=&gt;1,&#8217;jsp&#8217;=&gt;2,&#8217;asp&#8217;=&gt;3);<br />
ksort($array);<br />
print_r($array);<br />
echo &#8220;&lt;br&gt;&#8221;;<br />
asort($array);<br />
print_r($array);<br />
?&gt;<br />
运行结果：<br />
Array ( [asp] =&gt; 3 [jsp] =&gt; 2 [php] =&gt; 1 )<br />
Array ( [php] =&gt; 1 [jsp] =&gt; 2 [asp] =&gt; 3 )</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fphp-shuzu-learn.html&title=PHP%E6%95%B0%E7%BB%84%E5%85%A8%E9%9D%A2%E6%80%BB%E7%BB%93+%E6%9C%80%E5%85%A8%E9%9D%A2%E7%9A%84php%E6%95%B0%E7%BB%84%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/php-shuzu-learn.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP的最佳实践就是“数组编程”</title>
		<link>http://www.kaixinbc.com/2010/01/php-shuzu.html</link>
		<comments>http://www.kaixinbc.com/2010/01/php-shuzu.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:07:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP开源]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[开源软件]]></category>

		<guid isPermaLink="false">http://www.kaixinbc.com/?p=233</guid>
		<description><![CDATA[ 
也研究了一段时间的PHP，使用过了一堆libraries，之后发现：原来PHP的最佳实践就是“数组编程”啊！
从以下几个角度来看：
1. 基本语法（foreach等、array函数库）：对于数组的操作是最简便的，而且还支持literal样式的数组（类似于Java的Map），不用耗费多少时间就可以掌握。
2. 核心引擎（Zend Engine）：面向对象的编程开发量比较繁琐，没有Java那么方便。更重要的是，PHP引擎处理对象的效率比较低。
3. 数据库访问（PHP原生）：返回出来数组时效率最高，而且还最简单。
4. 模板引擎（Smarty等）：使用数组时，对模板制作最方便（直接使用“.”就可以了）。
个人感觉，以后要做PHP项目时，首推的就是面向数组的编程，既快速又高效&#8230;.
]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>也研究了一段时间的PHP，使用过了一堆libraries，之后发现：原来PHP的最佳实践就是“数组编程”啊！</p>
<p>从以下几个角度来看：</p>
<p>1. 基本语法（foreach等、array函数库）：对于数组的操作是最简便的，而且还支持literal样式的数组（类似于Java的Map），不用耗费多少时间就可以掌握。</p>
<p>2. 核心引擎（Zend Engine）：面向对象的编程开发量比较繁琐，没有Java那么方便。更重要的是，PHP引擎处理对象的效率比较低。</p>
<p>3. 数据库访问（PHP原生）：返回出来数组时效率最高，而且还最简单。</p>
<p>4. 模板引擎（Smarty等）：使用数组时，对模板制作最方便（直接使用“.”就可以了）。</p>
<p>个人感觉，以后要做PHP项目时，首推的就是面向数组的编程，既快速又高效&#8230;.</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.kaixinbc.com%2F2010%2F01%2Fphp-shuzu.html&title=PHP%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E5%B0%B1%E6%98%AF%E2%80%9C%E6%95%B0%E7%BB%84%E7%BC%96%E7%A8%8B%E2%80%9D" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kaixinbc.com/2010/01/php-shuzu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
