<?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://fairyfish.net/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://fairyfish.net</link>
	<description>关注 WordPress，关注互联网</description>
	<lastBuildDate>Fri, 10 Feb 2012 15:15:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP 技巧：获取当前页面的 URL</title>
		<link>http://fairyfish.net/2010/05/18/php-get-current-url/</link>
		<comments>http://fairyfish.net/2010/05/18/php-get-current-url/#comments</comments>
		<pubDate>Tue, 18 May 2010 15:45:32 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=2706</guid>
		<description><![CDATA[在使用 Google Analytics 的时候，有时候要获取每个页面的 URL，PHP 本身就提供了一些系统变量，通过整合下就能获取当前页面的 URL。]]></description>
			<content:encoded><![CDATA[<p>在使用 Google Analytics 的时候，有时候要获取每个页面的 URL，但是 WordPress 只有 <code>get_permalink</code> 模板函数能在日志或者静态页面获取当前页面的 URL，而其他页面好像也没有相关的函数，即使有相关的函数，首先都要判断当前是什么页面，然后使用相关的函数，这样非常麻烦。</p>
<p>其实不用找 WordPress 函数，PHP 本身就提供了一些系统变量，通过整合下就能获取当前页面的 URL。<br />
<span id="more-2706"></span></p>
<pre>
<span style="color: Blue;">&lt;?php</span><span style="color: Gray;">
</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">get_current_page_url</span><span style="color: Olive;">{</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$current_page_url</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">http</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;
&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">HTTPS</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">on</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$current_page_url</span><span style="color: Gray;"> .= </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">s</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;
&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp; </span><span style="color: #00008b;">$current_page_url</span><span style="color: Gray;"> .= </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">://</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;
&nbsp;&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">SERVER_PORT</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;"> != </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">80</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$current_page_url</span><span style="color: Gray;"> .= </span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">SERVER_NAME</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">.</span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">SERVER_PORT</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">REQUEST_URI</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">;
&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$current_page_url</span><span style="color: Gray;"> .= </span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">SERVER_NAME</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: #00008b;">$_SERVER</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">REQUEST_URI</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">;
&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;">
&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: #00008b;">$current_page_url</span><span style="color: Gray;">;
</span><span style="color: Olive;">}</span><span style="color: Gray;">
</span><span style="color: Blue;">?&gt;</span>
</pre>
<p>然后使用 <code>get_current_page_url</code> 就能获取当前页面的 URL。</p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2010/05/18/php-get-current-url/" title="PHP 技巧：获取当前页面的 URL">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2010/05/18/php-get-current-url/&title=PHP+%E6%8A%80%E5%B7%A7%EF%BC%9A%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2%E7%9A%84+URL&tags=PHP, "  title="PHP 技巧：获取当前页面的 URL">收藏本文</a>
 / <a href="http://fairyfish.net/2010/05/18/php-get-current-url/#comments" title="PHP 技巧：获取当前页面的 URL">8条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2009/10/14/extplorer/" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">eXtplorer：基于 PHP 和 Javascript 的文件管理程序</a></li>
<li><a href="http://fairyfish.net/2009/06/26/yourls/" title="使用 YOURLS 创建自己的 URL 缩短服务">使用 YOURLS 创建自己的 URL 缩短服务</a></li>
<li><a href="http://fairyfish.net/2009/06/26/optimizing-php/" title="PHP 性能优化技巧">PHP 性能优化技巧</a></li>
<li><a href="http://fairyfish.net/2009/05/28/php-js/" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">使用 JavaScript 实现 PHP 函数功能：PHP.JS</a></li>
<li><a href="http://fairyfish.net/2009/04/24/phpanywhere/" title="PHPanywhere：随时随地编辑 PHP 文件">PHPanywhere：随时随地编辑 PHP 文件</a></li>
<li><a href="http://fairyfish.net/m/tengine/" title="淘宝 Web 服务器 Tengine 正式开源">淘宝 Web 服务器 Tengine 正式开源</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=459725577&amp;utmr=-&amp;utmp=%2Frss%2F2010%2F05%2F18%2Fphp-get-current-url%2F&amp;utmdt=PHP+%E6%8A%80%E5%B7%A7%EF%BC%9A%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2%E7%9A%84+URL&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2010/05/18/php-get-current-url/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>PHP 和 MySQL Web 开发书籍推荐</title>
		<link>http://fairyfish.net/2010/04/05/featured-php-mysql-books/</link>
		<comments>http://fairyfish.net/2010/04/05/featured-php-mysql-books/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 15:21:04 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=2662</guid>
		<description><![CDATA[PHP 是世界上使用最广泛的创建动态网站的脚本语言，而 MySQL 则是世界上使用最多的关系型数据库，并且他们都是开源的，我们经常浏览的网站和开源程序就有很多都是基于 PHP 和 MySQL 开发的， PHP 和 MySQL 是网站开发的利器。]]></description>
			<content:encoded><![CDATA[<p>PHP 是世界上使用最广泛的创建动态网站的脚本语言，而 MySQL 则是世界上使用最多的关系型数据库，并且他们都是开源的，我们经常浏览的网站和开源程序就有很多都是基于 PHP 和 MySQL 开发的，如你正在浏览的<a href="http://fairyfish.net/">我爱水煮鱼</a>博客使用的 WordPress 博客程序就是基于 PHP 和 MySQL 开发的，更大型的系统如 Facebook 等也是基于 PHP 开发的，所以说 PHP 和 MySQL 是网站开发的利器。</p>
<p>是的，要想成为一个成功的 Web 开发者，那么 PHP 和 MySQL 是必须掌握的技巧之一。根据 <a href="http://fairyfish.net/2010/01/22/taskcity/">Taskcity</a> 等的外包平台上的数据统计，由于其方便和部署容易，PHP 和 MySQL 项目一直是需求最多的项目，而真正能够胜任 PHP 和 MySQL 项目的程序员少之又少。所以精通 PHP 和 MySQL 开发，就是掌握了一把成为自由职业者，提高个人财富的钥匙。<br />
<span id="more-2662"></span></p>
<h2>如何学习 PHP 和 MySQL</h2>
<p>W3Schools 上有非常好的 <a href="http://www.w3schools.com/php/default.asp">PHP 和 MySQL 入门教程</a>，但是要真正精通使用 PHP 和 MySQL 进行 Web 开发，成为高手，还是需要阅读正确的书籍。选对了 PHP 和 MySQL 编程的经典书籍，然后配合平时程序设计工作中的刻苦钻研，成为一名精通 PHP 和 MySQL Web 程序设计的高级程序员并非一件可望不可及的事情。但是如果没有选对正确的书籍，则 PHP 和 MySQL 学习之路就可能面临坎坷。今天我推荐的这些 PHP 和 MySQL Web 开发书籍，都是当初我学习 PHP 和 MySQL 中最经典的书籍，通过这些书籍的学习，我精通了 PHP 和 MySQL 开发，并创建了 <a href="http://wpjam.com">WordPress Jam</a> 承接 WordPress 等项目，所以我相信这些书都很值得各位朋友抽空认真一读。</p>
<h2>《PHP 和 MySQL Web 开发》 (原书第4版)</h2>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B001TDLD80&#038;source=denishua"><img src="http://pic.fairyfish.com/books/php-mysql-web-development.jpg" alt="《PHP 和 MySQL Web 开发》 (原书第4版)" /><br />
</a></p>
<p style="text-align: center;">
《PHP 和 MySQL Web 开发》 (原书第4版)，推荐指数：★★★★★
</p>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B001TDLD80&#038;source=denishua">在卓越购买</a> | <a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-237843&#038;backurl=http://product.dangdang.com/product.aspx?product_id=20546846">在当当购买</a>
</p>
<p><strong>《PHP 和 MySQL Web 开发》</strong>是 PHP 和  MySQL 程序员案头必备的一本书籍。可以说，PHP 程序员如果没有读过这本书，就好像基督教徒没有读过圣经一样，是很难让人理解的。这本书将 PHP 开发与 MySQL 应用相结合，分别对 PHP 和 MySQL 做了深入浅出的分析，不仅介绍 PHP 和 MySQL 的一般概念，而且对 PHP 和 MySQL 的 Web 应用做了较全面的阐述，其中还包括几个经典且实用的例子。本书第四版经过了全面的更新、重写和扩展，包括 PHP 5.3 最新改进的特性（例如更好的错误和异常处理），MySQL 的存储过程和存储引擎，Ajax 技术与 Web 2.0 以及Web应用需要注意的安全问题。 Facebook 和 Yahoo 等使用 PHP 作为主要开发语言的大公司也都视这本书为绝佳的 PHP 学习书籍，可见它是全球所有 PHP 程序员必备的一本书。</p>
<h2>《PHP 程序设计》(第2版) </h2>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B001UQ5IJ6&#038;source=denishua"><img src="http://pic.fairyfish.com/books/programming-php.jpg" alt="《PHP 程序设计》(第2版)" /><br />
</a></p>
<p style="text-align: center;">
《PHP 程序设计》(第2版)，推荐指数：★★★★
</p>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B001UQ5IJ6&#038;source=denishua">在卓越购买</a> | <a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-237843&#038;backurl=http://product.dangdang.com/product.aspx?product_id=20536328">在当当购买</a>
</p>
<p>学习 PHP 语言，入门是非常简单，但是要掌握 PHP 精髓，全面精通使用 PHP 则不是容易的事情，<strong>《PHP 程序设计》</strong>就是一本能够让我们全面掌握 PHP 的行业标准书籍，并且这本书的作者就是 PHP 语言创始人 Rasmus Lerdorf ，所以该书包括了 Rasmus Lerdorf 和其他PHP专家的独特见解。《PHP 程序设计》涵盖了 PHP 语言本身所有真正的精华，通过对 PHP 语法的细细梳理，有助于进行全面系统的学习，构建起完整的 PHP 知识体系。书中所有的技术要点（如语法和编程技巧）都用简洁的文字和表达方式来阐述，并附带有正确用法及习惯用法的代码示例，还包含了代码风格技巧和实际开发方面的建议。这些不仅会帮助你成为一名PHP程序员，而且会帮助你成为一名优秀的PHP程序员，这本书值得反复细致地阅读。</p>
<h2>《MySQL 5 权威指南》(第3版)</h2>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B0011CGS2K&#038;source=denishua"><img src="http://pic.fairyfish.com/books/the-definitive-guide-to-mysql5.jpg" alt="《MySQL 5 权威指南》(第3版)" /></a>
</p>
<p style="text-align: center;">
《MySQL 5 权威指南》(第3版)，推荐指数：★★★★
</p>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B0011CGS2K&#038;source=denishua">在卓越购买</a> | <a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-237843&#038;backurl=http://product.dangdang.com/product.aspx?product_id=9232407">在当当购买</a>
</p>
<p>数据库设计的不好或者 SQL 执行过慢很可能是网站的瓶颈之一，如果你想你的程序跑的更加稳健，整个网站性能更好，那么《MySQL 5 权威指南》是你必看的书之一，基本上所有 MySQL 的问题的解决办法都能从这本上找到，这绝对是一本好书。《MySQL 5 权威指南》是所有 MySQL 数据库管理员和开发人员的必备参考工具书。 这本书全面深入地介绍了 MySQL 的功能，主要内容包括 MySQL 的一些重要系统管理工具和用户操作界面的使用，MySQL 数据库系统设计的基础知识与用不同语言设计 MySQL 数据库的过程，以及 SQL 语法、工具、选项、 API 应用指南，最大限度地帮助你更快地学习和掌握 MySQL 数据库系统的设计和使用。《MySQL 5 权威指南》覆盖了MySQL 最新 5.0 版本所有的功能特性，如新的程序设计接口（如PHP 5里的mysqli）和新的系统管理工具。</p>
<h2>《深入浅出MySQL:数据库开发优化与管理维护》</h2>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B0016K4BS0&#038;source=denishua"><img src="http://pic.fairyfish.com/books/divide-to-mysql.jpg" alt="《深入浅出MySQL:数据库开发优化与管理维护》" /></a>
</p>
<p style="text-align: center;">
《深入浅出MySQL:数据库开发优化与管理维护》，推荐指数：★★★
</p>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B0016K4BS0&#038;source=denishua">在卓越购买</a> | <a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-237843&#038;backurl=http://product.dangdang.com/product.aspx?product_id=20165958">在当当购买</a>
</p>
<p>这本由网易司技术部 DBA 组经理和高级 DBA 写的《深入浅出MySQL:数据库开发优化与管理维护》绝对是最佳的 MySQL 实践教材，《深入浅出MySQL:数据库开发优化与管理维护》内容非常详细，包括 MySQL 的基础知识，MySQL 的开发，MySQL 优化，MySQL 管理等，基本把在运行一个大型网站中的 MySQL 中碰到的问题都包含了。由于作者都是大型互联网公司的资深 DBA，这本书不但融入了他们丰富的工作经验和多年的使用心得，还提供了大量来自工作现场的实例，具有很强的实战性和可操作性，所以非常推荐运维一个大型网站的 DBA 认真看看这本书。</p>
<h2>《PHP 6 与 MySQL 5 基础教程》</h2>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B001JEQ1DQ&#038;source=denishua"><img src="http://pic.fairyfish.com/books/php6-mysql5.jpg" alt="《PHP 6 与 MySQL 5 基础教程》" /></a>
</p>
<p style="text-align: center;">
《PHP 6 与 MySQL 5 基础教程》，推荐指数：★★★★
</p>
<p style="text-align: center;">
<a href="http://www.amazon.cn/mn/detailApp?asin=B001JEQ1DQ&#038;source=denishua">在卓越购买</a> | <a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-237843&#038;backurl=http://product.dangdang.com/product.aspx?product_id=20389192">在当当购买</a>
</p>
<p>任何语言都在发展，PHP 也不例外，机会总是垂青那些事先准备好的人，所以作为一个 PHP 程序员，你一定要对 PHP 语言的发展了解，了解最新的 PHP 语言的发展趋势才能你让你利于不败之地。<strong>《PHP 6 与 MySQL 5 基础教程》</strong>就是一本让你未雨绸缪就开始学习 PHP 和 MySQL 新技术的书。支持 Unicode，命名空间等这些现代语言的特性都增加到了 PHP 6 版本之中，你是否准备好学习或者在你的程序兼容这些特性，如果没有准备好，那么赶快购买这本书学习下吧。</p>
<h2>PHP 和 MySQL Web 开发书籍总结</h2>
<p>使用 PHP 和 MySQL Web 开发是一个敏捷开发的过程，开始并不困难，但是越到后面，你会碰到越多的问题和困难。所以一开始选择选择适合自己的学习工具书是不可少的，可以让你事半功倍，而对于已有所成的 PHP 程序员来说，选择对自己现有的 PHP 和 MySQL 知识体系有个很好梳理的书可能让你变得更加强大。</p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2010/04/05/featured-php-mysql-books/" title="PHP 和 MySQL Web 开发书籍推荐">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2010/04/05/featured-php-mysql-books/&title=PHP+%E5%92%8C+MySQL+Web+%E5%BC%80%E5%8F%91%E4%B9%A6%E7%B1%8D%E6%8E%A8%E8%8D%90&tags=MySQL, PHP, "  title="PHP 和 MySQL Web 开发书籍推荐">收藏本文</a>
 / <a href="http://fairyfish.net/2010/04/05/featured-php-mysql-books/#comments" title="PHP 和 MySQL Web 开发书籍推荐">23条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><div id="series_posts"><h2><a href="http://fairyfish.net/series/book/">好书推荐</a></h2><ul class="posts_lists"><li><a href="http://fairyfish.net/2008/09/24/css-mastery-advanced-web-standards-solutions/" title="最佳 CSS 书籍推荐">最佳 CSS 书籍推荐</a></li>
<li><a href="http://fairyfish.net/2008/10/17/featured-liunx-programming-books/" title="Linux 编程经典书籍推荐">Linux 编程经典书籍推荐</a></li>
<li><a href="http://fairyfish.net/2009/03/03/savvy-javascript/" title="JavaScript 入门最佳书籍">JavaScript 入门最佳书籍</a></li>
<li><a href="http://fairyfish.net/2009/03/23/zac-code/" title="搜索引擎优化 SEO 的最佳书籍">搜索引擎优化 SEO 的最佳书籍</a></li>
<li><strong>PHP 和 MySQL Web 开发书籍推荐</strong></li>
</ul></div><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=471017020&amp;utmr=-&amp;utmp=%2Frss%2F2010%2F04%2F05%2Ffeatured-php-mysql-books%2F&amp;utmdt=PHP+%E5%92%8C+MySQL+Web+%E5%BC%80%E5%8F%91%E4%B9%A6%E7%B1%8D%E6%8E%A8%E8%8D%90&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2010/04/05/featured-php-mysql-books/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>BackPress：用于创建网页程序的 PHP 库</title>
		<link>http://fairyfish.net/2009/12/28/backpress/</link>
		<comments>http://fairyfish.net/2009/12/28/backpress/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 16:20:13 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[BackPress]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=2663</guid>
		<description><![CDATA[BackPress 是一个具有网页程序（或者说在线应用）核心功能的 PHP 库，它的是非常欢迎的 WordPress 开源程序的核心部分，也是 bbPress 和 GlotPress 等开源程序的核心部分。]]></description>
			<content:encoded><![CDATA[<p>BackPress 是一个具有网页程序（或者说在线应用）核心功能的 PHP 库，它的是非常欢迎的 WordPress 开源程序的核心部分，也是 bbPress 和 GlotPress 等开源程序的核心部分。<br />
<span id="more-2663"></span><br />
它包括可用于创建强劲的，并可扩展的网页程序的基本功能：</p>
<ul>
<li>登录（主要采用 bbPresss 的登录代码）到文件/数据库/其他。</li>
<li>用户角色管理 &#8212; 用户部分程序的访问控制</li>
<li>用户管理 &#8212; 包括用户的元数据（meta data）和数据库模式支持，用于管理核心的用户信息和其他相关的信息。</li>
<li>数据库抽象 &#8212; 支持使用多个数据库服务器，集群和数据中心</li>
<li>XML-RPC 服务器端和客户端 &#8212; 用于和其他系统交互。</li>
<li>邮件发送 &#8212; 通过 SMTP 和 sendmail，支持附件。</li>
<li>密码散列（Hashing）/加密 （Crypto）</li>
<li>AJAX &#8212; 标准的基于 XML 的 AJAX 请求和 AJAX 响应。</li>
<li>用户身份验证 &#8212; 内置了密码加密，再加上安全的 cookie 管理</li>
<li>通过对象来进行错误处理 &#8212; 一次可处理多个错误。</li>
<li>完整的 HTTP 库 &#8212; 支持核心 PHP 的 HTTP 操作，使用具有广泛的兼容性的 cURL 和原始套接字，支持 cookie 的发送/接收。</li>
<li>对象缓存 &#8212; 并且支持使用 memcached 作为后端缓存机制进行内存缓存。</li>
<li>任意的分类管理 &#8212; tag，分类，其他分类系统。</li>
<li>选项管理 &#8212; 用于管理程序全局的选项和设置。</li>
<li>兼容性功能 &#8212; 支持绝大部分 PHP 版本。</li>
<li>格式化 &#8211;用于处理各种字符串。</li>
<li>KSES &#8212; 完全安全的 HTML 内容过滤</li>
<li>完整的插件 API &#8212; 通过 &#8220;action&#8221; 和 &#8220;filter&#8221; 两种方法进行处理。</li>
<li>Shortcode API &#8212; 支持 [bbcode] 样式的 shortcode.</li>
<li>Pseudo-cron 功能 &#8212;  让你的程序中的事件可以自动运行，这是通过用于访问来驱动的。</li>
</ul>
<p>目前 BackPress 还没有发布，如果你想尝新，可以到 <a href="http://backpress.org/download/">BackPress SVN</a> 去下载。</p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/12/28/backpress/" title="BackPress：用于创建网页程序的 PHP 库">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/12/28/backpress/&title=BackPress%EF%BC%9A%E7%94%A8%E4%BA%8E%E5%88%9B%E5%BB%BA%E7%BD%91%E9%A1%B5%E7%A8%8B%E5%BA%8F%E7%9A%84+PHP+%E5%BA%93&tags=BackPress, PHP, "  title="BackPress：用于创建网页程序的 PHP 库">收藏本文</a>
 / <a href="http://fairyfish.net/2009/12/28/backpress/#comments" title="BackPress：用于创建网页程序的 PHP 库">8条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/article/wordpress-seo/" title="WordPress SEO 宝典">WordPress SEO 宝典</a></li>
<li><a href="http://fairyfish.net/article/install-wordpress-on-mac-os-x/" title="在 Mac OS X 系统上安装 WordPress 本地测试">在 Mac OS X 系统上安装 WordPress 本地测试</a></li>
<li><a href="http://fairyfish.net/2010/12/23/wpjam-vshop/" title="基于 WordPress 虚拟商品销售的商城系统">基于 WordPress 虚拟商品销售的商城系统</a></li>
<li><a href="http://fairyfish.net/2010/11/15/wordpress-31-feature/" title="WordPress 3.1 开发的功能">WordPress 3.1 开发的功能</a></li>
<li><a href="http://fairyfish.net/2010/09/28/windows-live-spaces-2-wordpress-com/" title="Windows Live Spaces 关闭，博客转移到 WordPress.Com">Windows Live Spaces 关闭，博客转移到 WordPress.Com</a></li>
<li><a href="http://fairyfish.net/article/dreamweaver-cs5-code-hinting-for-wordpress/" title="Dreamweaver CS5 中启用 WordPress 代码提示功能">Dreamweaver CS5 中启用 WordPress 代码提示功能</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=1894497701&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F12%2F28%2Fbackpress%2F&amp;utmdt=BackPress%EF%BC%9A%E7%94%A8%E4%BA%8E%E5%88%9B%E5%BB%BA%E7%BD%91%E9%A1%B5%E7%A8%8B%E5%BA%8F%E7%9A%84+PHP+%E5%BA%93&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/12/28/backpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>eXtplorer：基于 PHP 和 Javascript 的文件管理程序</title>
		<link>http://fairyfish.net/2009/10/14/extplorer/</link>
		<comments>http://fairyfish.net/2009/10/14/extplorer/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 07:51:52 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=2003</guid>
		<description><![CDATA[eXtplorer 是一款功能强大基于 PHP 和 ExtJS Javascript 库创建的在线文件管理程序。使用 eXtplorer 可以在线浏览文件和文件夹之外，我们甚至可以将 eXtphlor 作为 FTP 客户端去登录 FTP 服务器。]]></description>
			<content:encoded><![CDATA[<p>现在使用的软件已经越来越少了，越来越多的东西都交给了在线程序来处理，以前我介绍过 <a href="http://fairyfish.net/2009/02/22/fireftp/">Firefox 的 FTP 插件 FireFtp</a>，但是他支持登录 FTP，不支持在线编辑。在线服务 <a href="http://fairyfish.net/2009/04/24/phpanywhere/">PHPAnywhere  可以让你在线登录 FTP 并且可以编辑 PHP 文件</a>。</p>
<p>今天介绍的 <strong><a href="http://extplorer.sourceforge.net/">eXtplorer</a></strong> 可以下载下来安装到自己服务的<strong>在线文件管理程序</strong>，是我见过功能强大的，它是基于 PHP 和 <a href="http://ExtJS.com">ExtJS</a> Javascript 库创建的。使用 eXtplorer 可以在线浏览文件和文件夹之外，我们甚至可以将 eXtplorer 作为 FTP 客户端去登录 FTP 服务器。<br />
<span id="more-2003"></span></p>
<p class="entry_img"><img src="http://pic.fairyfish.com/2009/10/extplorer.jpg" alt="eXphlorer：基于 PHP 和 Javascript 的文件管理程序" /><br />
eXtplorer：基于 PHP 和 Javascript 的文件管理程序</p>
<h2>eXtplorer 的详细功能</h2>
<ul>
<li>可以通过鼠标拖拉复制和移动文件和文件夹</li>
<li>动态的目录树，并且能够根据需要显示子目录</li>
<li>可以在线修改文件，并且代码高亮显示</li>
<li>可以重命名，删除和创建文件和文件夹</li>
<li>可以通过 FTP 方式或者直接访问文件</li>
<li>并且可以修改文件的权限和属性</li>
<li>可以上传和下载文件</li>
<li>可以压缩文件，或者解开压缩包，支持 ZIP, Tar, Tar/GZ, Tar/BZ 四种格式</li>
<li>可以创建多个用户，并且可以给用户赋予不同的权限，如只能“浏览”，“编辑”，和“管理”</li>
<li>现在还可以作为 Joomla! 和 Mambo 这两个 CMS 程序的部件，不过遗憾还没有 WordPress 方面的插件。</li>
</ul>
<h2>安装 eXtplorer </h2>
<p>安装 eXtplorer 需要以下几步：</p>
<ol>
<li>首先你要确保你服务器的 PHP 版本>4.3</li>
<li>解压缩下载下来的压缩包</li>
<li>使用你的 FTP 客户端上传源代码到服务器上的某个目录下 如<code> /extplore</code>r</li>
<li>设置 <code>extplorer</code> 的目录可写，并且设置<code> /ftp_tmp</code> 目录的权限为 777</li>
<li>在浏览器访问 <code>http://<YOURSERVER>/extplorer </code>（默认帐号和密码都是 admin），他会弹出一个框让你里修改密码。一定要修改，不然让人获取权限，就可以删除你服务器上所有文件。</li>
</ol>
<p>如果你不能修改你的 admin 密码，可能是因为你的用户文件不可写，在 FTP 中，把 /config 目录下的 &#8220;.htusers.php&#8221; 文件设置为可写。</p>
<p>下载：<a href="http://extplorer.sourceforge.net/">eXtplorer</a><br />
中文介绍：<a href="http://fairyfish.net/2009/10/14/extplorer/">eXtplorer：基于 PHP 和 Javascript 的文件管理程序</a></p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/10/14/extplorer/" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/10/14/extplorer/&title=eXtplorer%EF%BC%9A%E5%9F%BA%E4%BA%8E+PHP+%E5%92%8C+Javascript+%E7%9A%84%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E7%A8%8B%E5%BA%8F&tags=FTP, JavaScript, PHP, "  title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">收藏本文</a>
 / <a href="http://fairyfish.net/2009/10/14/extplorer/#comments" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">8条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2009/05/28/php-js/" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">使用 JavaScript 实现 PHP 函数功能：PHP.JS</a></li>
<li><a href="http://fairyfish.net/2011/11/22/jquery-mobile-1/" title="jQuery Mobile 1.0 发布">jQuery Mobile 1.0 发布</a></li>
<li><a href="http://fairyfish.net/m/javascript-cookies/" title="Javascript 中如何存储，获取和删除 Cookies">Javascript 中如何存储，获取和删除 Cookies</a></li>
<li><a href="http://fairyfish.net/m/class-js/" title="给 Javascript 加上面向对象的属性：Class.js">给 Javascript 加上面向对象的属性：Class.js</a></li>
<li><a href="http://fairyfish.net/m/scriptsrc-net/" title="快速复制常用 JavaScript 库：ScriptSrc.net">快速复制常用 JavaScript 库：ScriptSrc.net</a></li>
<li><a href="http://fairyfish.net/2010/07/07/jquery-lazy-load/" title="延迟加载图片的 jQuery 插件：Lazy Load ">延迟加载图片的 jQuery 插件：Lazy Load </a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=567980453&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F10%2F14%2Fextplorer%2F&amp;utmdt=eXtplorer%EF%BC%9A%E5%9F%BA%E4%BA%8E+PHP+%E5%92%8C+Javascript+%E7%9A%84%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E7%A8%8B%E5%BA%8F&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/10/14/extplorer/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>使用 YOURLS 创建自己的 URL 缩短服务</title>
		<link>http://fairyfish.net/2009/06/26/yourls/</link>
		<comments>http://fairyfish.net/2009/06/26/yourls/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 12:48:14 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress 插件]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=1952</guid>
		<description><![CDATA[YOURLS 是一个开源的 PHP 的程序，让你可以运行自己的 URL 缩短服务，你可以把它开放出来给大家用，也可以自己一人用，你还可以自定义缩短 URL 的关键字，并且它还有自己的 API。它的 WordPress 插件和 Twitter 的结合使得该程序应用更加广泛，尤其是在应用 Twitter 进行社会化营销的时候对效果检测有很大的帮助。]]></description>
			<content:encoded><![CDATA[<p><a href="http://yourls.org/">YOURLS</a> 是 <strong>Y</strong>our <strong>O</strong>wn <strong>URL</strong> <strong>S</strong>hortener 的简写，<strong>YOURLS</strong> 是一个开源的 PHP 的程序，让你可以运行自己的 <strong>URL 缩短服务</strong>，你可以把它开放出来给大家用，也可以自己一人用，你还可以自定义缩短 URL 的关键字，并且它还有自己的 API。<br />
<span id="more-1952"></span></p>
<h2>YOURLS 的主要功能</h2>
<ul>
<li>公开的（Public 任何人都可以用它创建短连接）或者私有的（private，只能你自己使用）</li>
<li>可以随机（顺序的）或者自定义 URL 关键字</li>
<li>可以跟踪点击数</li>
<li>整洁的 AJAX 化的界面</li>
<li>支持开放者 API</li>
</ul>
<h2>安装和配置</h2>
<p><strong>YOURLS</strong> 安装和配置有些复杂，下面是主要的步骤：</p>
<ol>
<li>下载 YOURLS 源程序，并解压缩开</li>
<li>然后在 <code>includes/</code> 目录下 根据 <code>config-sample.php</code> 创建<code>includes/config.php</code> 文件</li>
<li>修改 <code>includes/config.php</code>，输入数据库信息和站点设置，详细可以参考<a href="http://yourls.org/#Config"> YOURLS 配置</a></li>
<li>上传源代码到服务器</li>
<li>在浏览器中输入 <code>http://yoursite.com/admin/install.php</code> 进行安装</li>
</ol>
<p>另外 YOURLS 还提供一个 WordPress 插件，利用该插件你可以给 WordPress 博客的每篇日志和页面创建短连接，并且还和 Twitter 完美整合在一起，在发布日志的发送日志的标题和短连接到 Twitter 上。</p>
<p>总体来说 YOURLS 是一个功能非常强大的开源程序，它的 WordPress 插件和 Twitter 的结合使得该程序应用更加广泛，尤其是在应用 Twitter 进行社会化营销的时候对效果监测会有一定的帮助。</p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/06/26/yourls/" title="使用 YOURLS 创建自己的 URL 缩短服务">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/06/26/yourls/&title=%E4%BD%BF%E7%94%A8+YOURLS+%E5%88%9B%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84+URL+%E7%BC%A9%E7%9F%AD%E6%9C%8D%E5%8A%A1&tags=PHP, WordPress 插件, "  title="使用 YOURLS 创建自己的 URL 缩短服务">收藏本文</a>
 / <a href="http://fairyfish.net/2009/06/26/yourls/#comments" title="使用 YOURLS 创建自己的 URL 缩短服务">19条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2010/05/18/php-get-current-url/" title="PHP 技巧：获取当前页面的 URL">PHP 技巧：获取当前页面的 URL</a></li>
<li><a href="http://fairyfish.net/2009/10/14/extplorer/" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">eXtplorer：基于 PHP 和 Javascript 的文件管理程序</a></li>
<li><a href="http://fairyfish.net/2009/06/26/optimizing-php/" title="PHP 性能优化技巧">PHP 性能优化技巧</a></li>
<li><a href="http://fairyfish.net/2009/05/28/php-js/" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">使用 JavaScript 实现 PHP 函数功能：PHP.JS</a></li>
<li><a href="http://fairyfish.net/2009/04/24/phpanywhere/" title="PHPanywhere：随时随地编辑 PHP 文件">PHPanywhere：随时随地编辑 PHP 文件</a></li>
<li><a href="http://fairyfish.net/m/wp-emoji/" title="在你的博客里显示 Emoji 表情：WP-Emoji">在你的博客里显示 Emoji 表情：WP-Emoji</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=1972922803&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F06%2F26%2Fyourls%2F&amp;utmdt=%E4%BD%BF%E7%94%A8+YOURLS+%E5%88%9B%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84+URL+%E7%BC%A9%E7%9F%AD%E6%9C%8D%E5%8A%A1&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/06/26/yourls/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>PHP 性能优化技巧</title>
		<link>http://fairyfish.net/2009/06/26/optimizing-php/</link>
		<comments>http://fairyfish.net/2009/06/26/optimizing-php/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 17:45:08 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=1951</guid>
		<description><![CDATA[PHP 性能优化技巧：1. 不要随便就复制变量，2. 对字符串使用单引号，3. 使用 echo 来输出字符串，4. 不要在 echo 中使用连接符，5. 使用 switch/case 代替 if/else]]></description>
			<content:encoded><![CDATA[<p>Google 在 Google Code 制作了 &#8220;<a href="http://code.google.com/speed/">Let’s make the web faster</a>&#8221; （让我们使得 Web 更快）的网站中，分享了一些如<strong>网页性能优化</strong>的技巧和教程以及工具，今天我就翻译一篇技巧文章：<strong><a href="http://code.google.com/speed/articles/optimizing-php.html">PHP 性能优化技巧</a></strong>，他说的5条技巧我都不知道。<br />
<span id="more-1951"></span><br />
<strong>1. 不要随便就复制变量</strong></p>
<p>有时候为了使 PHP 代码更加整洁，一些 PHP 新手（包括我）会把预定义好的变量复制到一个名字更简短的变量中，其实这样做的结果是增加了一倍的内存消耗，只会使程序更加慢。试想一下，在下面的例子中，如果用户恶意插入 512KB 字节的文字到文本输入框中，这样就会导致 1MB 的内存被消耗！</p>
<p>BAD:</p>
<pre>$description = $_POST['description'];
echo $description;</pre>
<p>GOOD:</p>
<pre>echo $_POST['description'];</pre>
<p><strong>2. 对字符串使用单引号</strong></p>
<p>PHP 引擎允许使用单引号和双引号来封装字符串变量，但是这个是有很大的差别的！使用双引号的字符串告诉 PHP 引擎首先去读取字符串内容，查找其中的变量，并改为变量对应的值。一般来说字符串是没有变量的，所以使用双引号会导致性能不佳。最好是使用字符串连接而不是双引号字符串。</p>
<p>BAD:</p>
<pre>$output = "This is a plain string";</pre>
<p>GOOD:</p>
<pre>$output = 'This is a plain string';</pre>
<p>BAD: </p>
<pre>$type = "mixed";
$output = "This is a $type string";</pre>
<p>GOOD:</p>
<pre>$type = 'mixed';
$output = 'This is a ' . $type .' string';</pre>
<p><strong>3. 使用 echo 函数来输出字符串</strong></p>
<p>使用 echo() 函数来打印结果出了有更容易阅读之外，在下个例子中，你还可以看到有更好的性能。</p>
<p>BAD:</p>
<pre>print($myVariable);</pre>
<p>GOOD:</p>
<pre>echo $myVariable;</pre>
<p><strong>4. 不要在 echo 中使用连接符</strong></p>
<p>很多 PHP 程序员（有包括我）不知道在用 恶臭 输出多个变量的时候，其实可以使用逗号来分开的，而不必用字符串先把他们先连起来，如下面的第一个例子中，由于使用了连接符就会有性能问题，因为这样就会需要 PHP 引擎首先把所有的变量连接起来，然后在输出，而在第二个例子中，PHP 引擎就会按照循序输出他们。</p>
<p>BAD:</p>
<pre>echo 'Hello, my name is' . $firstName . $lastName . ' and I live in ' . $city;</pre>
<p>GOOD:</p>
<pre>echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;</pre>
<p><strong>5. 使用 switch/case 代替 if/else</strong></p>
<p>对于只有单个变量的判断，使用 switch/case 语句而不是 if/else 语句，会有更好的性能，并且代码更加容易阅读和维护。</p>
<p>BAD:</p>
<pre>
if($_POST['action'] == 'add') {
  addUser();
} elseif ($_POST['action'] == 'delete') {
  deleteUser();
} elseif ($_POST['action'] == 'edit') {
  editUser();
} else {
  defaultAction();
}
</pre>
<p>GOOD:</p>
<pre>
switch($_POST['action']) {
case 'add':
  addUser();
  break;
case 'delete':
   deleteUser();
  break;
case 'edit':
   editUser();
   break;
default:
   defaultAction();
   break;
}
</pre>
<p>最后还有一个视频，请翻墙观看：</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/Sibg0T3wKs4&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Sibg0T3wKs4&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/06/26/optimizing-php/" title="PHP 性能优化技巧">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/06/26/optimizing-php/&title=PHP+%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7&tags=PHP, "  title="PHP 性能优化技巧">收藏本文</a>
 / <a href="http://fairyfish.net/2009/06/26/optimizing-php/#comments" title="PHP 性能优化技巧">14条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2010/05/18/php-get-current-url/" title="PHP 技巧：获取当前页面的 URL">PHP 技巧：获取当前页面的 URL</a></li>
<li><a href="http://fairyfish.net/2009/10/14/extplorer/" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">eXtplorer：基于 PHP 和 Javascript 的文件管理程序</a></li>
<li><a href="http://fairyfish.net/2009/06/26/yourls/" title="使用 YOURLS 创建自己的 URL 缩短服务">使用 YOURLS 创建自己的 URL 缩短服务</a></li>
<li><a href="http://fairyfish.net/2009/05/28/php-js/" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">使用 JavaScript 实现 PHP 函数功能：PHP.JS</a></li>
<li><a href="http://fairyfish.net/2009/04/24/phpanywhere/" title="PHPanywhere：随时随地编辑 PHP 文件">PHPanywhere：随时随地编辑 PHP 文件</a></li>
<li><a href="http://fairyfish.net/m/tengine/" title="淘宝 Web 服务器 Tengine 正式开源">淘宝 Web 服务器 Tengine 正式开源</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=586401772&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F06%2F26%2Foptimizing-php%2F&amp;utmdt=PHP+%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/06/26/optimizing-php/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>使用 JavaScript 实现 PHP 函数功能：PHP.JS</title>
		<link>http://fairyfish.net/2009/05/28/php-js/</link>
		<comments>http://fairyfish.net/2009/05/28/php-js/#comments</comments>
		<pubDate>Thu, 28 May 2009 13:19:51 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=1926</guid>
		<description><![CDATA[PHP.JS 是一个开源的 JavaScript 库，它尝试在 JavaScript 中实现 PHP 函数。在你的项目中导入 PHP.JS 库，可以在静态页面使用你喜欢的 PHP 函数。]]></description>
			<content:encoded><![CDATA[<p><a href="http://phpjs.org/">PHP.JS</a> 是一个开源的 JavaScript 库，它尝试在 JavaScript 中实现 PHP 函数。在你的项目中导入 PHP.JS 库，可以在静态页面使用你喜欢的 PHP 函数。<br />
<span id="more-1926"></span><br />
对于熟悉 PHP 的程序员来说，当他想在静态页面中使用 PHP 函数的时候，PHP.JS 是非常方便的，现在已经 400 多个 PHP 函数在 PHP.JS 中实现，还有一些正在被实现，不过现在已经能够找到大部分流行的了，甚至 <code>md5()</code>，并且 PHP.JS 实现了一个高级的函数，如： <code>file_get_contents()</code>, <code>mktime()</code>, <code>serialize()</code> 等。</p>
<p>使用 PHP.JS 非常简单，不需要任何服务器支持，现在可以三种方式使用它：</p>
<ol>
<li>下载<a href="http://phpjs.org/packages/view/php.default.min.js">默认的 PHP.JS 包</a>。</li>
<li>或者<a href="http://phpjs.org/packages/configure">配置 PHP.JS</a> 选择自己需要的函数，然后下载。</li>
<li>甚至直接选择需要的某一<a href="http://phpjs.org/functions/index">函数</a>，直接 Copy 过去使用。</li>
</ol>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/05/28/php-js/" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/05/28/php-js/&title=%E4%BD%BF%E7%94%A8+JavaScript+%E5%AE%9E%E7%8E%B0+PHP+%E5%87%BD%E6%95%B0%E5%8A%9F%E8%83%BD%EF%BC%9APHP.JS&tags=JavaScript, PHP, "  title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">收藏本文</a>
 / <a href="http://fairyfish.net/2009/05/28/php-js/#comments" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">14条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2009/10/14/extplorer/" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">eXtplorer：基于 PHP 和 Javascript 的文件管理程序</a></li>
<li><a href="http://fairyfish.net/2011/11/22/jquery-mobile-1/" title="jQuery Mobile 1.0 发布">jQuery Mobile 1.0 发布</a></li>
<li><a href="http://fairyfish.net/m/javascript-cookies/" title="Javascript 中如何存储，获取和删除 Cookies">Javascript 中如何存储，获取和删除 Cookies</a></li>
<li><a href="http://fairyfish.net/m/class-js/" title="给 Javascript 加上面向对象的属性：Class.js">给 Javascript 加上面向对象的属性：Class.js</a></li>
<li><a href="http://fairyfish.net/m/scriptsrc-net/" title="快速复制常用 JavaScript 库：ScriptSrc.net">快速复制常用 JavaScript 库：ScriptSrc.net</a></li>
<li><a href="http://fairyfish.net/2010/07/07/jquery-lazy-load/" title="延迟加载图片的 jQuery 插件：Lazy Load ">延迟加载图片的 jQuery 插件：Lazy Load </a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=317606626&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F05%2F28%2Fphp-js%2F&amp;utmdt=%E4%BD%BF%E7%94%A8+JavaScript+%E5%AE%9E%E7%8E%B0+PHP+%E5%87%BD%E6%95%B0%E5%8A%9F%E8%83%BD%EF%BC%9APHP.JS&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/05/28/php-js/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>PHPanywhere：随时随地编辑 PHP 文件</title>
		<link>http://fairyfish.net/2009/04/24/phpanywhere/</link>
		<comments>http://fairyfish.net/2009/04/24/phpanywhere/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 18:15:17 +0000</pubDate>
		<dc:creator>Denis</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://fairyfish.net/?p=1911</guid>
		<description><![CDATA[PHPanywhere 是一个免费的基于 Web 的 PHP IDE （集成开发环境），它能够让 PHP 程序员在线编辑 PHP 代码。首先 PHPanywhere 是运行在浏览器上面，所以不需要在电脑安装任何东西就可以工作，这样非常方便，可以让你随时随地编辑 PHP 文件。]]></description>
			<content:encoded><![CDATA[<p><a href="http://phpanywhere.net/">PHPanywhere</a> 是一个免费的基于 Web 的 PHP IDE （集成开发环境），它能够让 PHP 程序员在线编辑 PHP 代码。<br />
<span id="more-1911"></span></p>
<h2>PHPanywhere 工作原理</h2>
<p>首先 PHPanywhere 是运行在浏览器上面，所以不需要在电脑安装任何东西就可以工作，这样非常方便，可以让你随时随地编辑 PHP 文件。</p>
<p>另外 PHPanywhere 包含一个语法高亮的编辑器和一个功能强大的 FTP 编辑器。当你在 PHPanywhere 注册并登陆之后，在 FTP 编辑器选择添加一个服务器，就可以输入你的 FTP 服务器的信息，登陆你的 FTP 服务器之后，PHPanywhere 就会导出你 FTP 服务器上的所有文件夹列表，选择你需要的文件之后，你就开始工作了。</p>
<p style="text-align:center"><img src="http://pic.fairyfish.com/2009/04/phpanywhere.jpg" alt="PHPanywhere" /><br />
PHPanywhere：随时随地编辑 PHP 文件</p>
<p>PHPanywhere 甚至可以记得你上次工作的文件，当你再次登陆的时候，会在编辑器中自动打开。</p>
<h2>在线编辑器</h2>
<p>PHPanywhere 最核心的地方就是器实时代码语法高亮的编辑器，它有如下几个功能特点：</p>
<ul>
<li>语法高亮</li>
<li>智能缩进</li>
<li>无限次的撤销和重做</li>
<li>无限个 tab 页</li>
<li>完全国际化，你可以选择适合你的字符编码</li>
</ul>
<h2>FTP 浏览器</h2>
<p>PHPanywhere 另外一个强的地方时他的 FTP 浏览器，你可以添加无限个 FTP 服务器，并且通过它你能够编辑文件，创建 / 删除文件，你甚至可以编辑文件夹的权限。</p>
<p>目前 PHPanywhere 已经能够满足我项目的需求，快速登陆 FTP，并立刻修改错误。免除了把文件下载到本地，修改好之后，再上传到服务器这些麻烦，非常方便，特别适合修改项目中的一些小错误，并立刻演示给客户查看。但是目前这个项目缺乏的是协作，如创建一个项目之后，即创建了 FTP 服务器，无法快速把这个项目信息分享给协作者，甚至还没有一个地方设置协作者，如果 PHPanywhere 能够最终发展成一个协作在线开放工作，可以设置自己项目信息，设置协作者，设置项目需求分发等等，我相信会有更多的小型开发团队使用它。</p>
<p>&gt;&gt;&gt;<a href="http://fairyfish.net/2009/04/24/phpanywhere/" title="PHPanywhere：随时随地编辑 PHP 文件">继续阅读全文</a> ...</p><hr /><p><a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzcBqQvUL9HREWEoUWa1c%3D&p=mm_25083601_0_0" rel="nofollow"><img src="http://fairyfish.net/wp-content/banner/notyet.gif"></a></p>
<p>
&copy; <a href="http://fairyfish.net/" title="我爱水煮鱼">我爱水煮鱼</a>
 / <a href="http://fairyfish.net/bookmark/?url=http://fairyfish.net/2009/04/24/phpanywhere/&title=PHPanywhere%EF%BC%9A%E9%9A%8F%E6%97%B6%E9%9A%8F%E5%9C%B0%E7%BC%96%E8%BE%91+PHP+%E6%96%87%E4%BB%B6&tags=PHP, 浏览器, "  title="PHPanywhere：随时随地编辑 PHP 文件">收藏本文</a>
 / <a href="http://fairyfish.net/2009/04/24/phpanywhere/#comments" title="PHPanywhere：随时随地编辑 PHP 文件">22条评论</a>
 / <a href="http://feed.fairyfish.net" title="订阅我爱水煮鱼">RSS 订阅</a>
 / <a href="http://fairyfish.net/go/wpjam" title="WordPress JAM">长期承接 WordPress 项目</a>
 / <a href="http://fairyfish.net/coupon/" title="主机域名优惠码">主机域名优惠码</a>
 / <a href="http://weibo.com/denishua/" title="新浪微博">新浪微博</a>
</p><h3>相关日志</h3><ul class="related_post"><li><a href="http://fairyfish.net/2010/05/18/php-get-current-url/" title="PHP 技巧：获取当前页面的 URL">PHP 技巧：获取当前页面的 URL</a></li>
<li><a href="http://fairyfish.net/2009/10/14/extplorer/" title="eXtplorer：基于 PHP 和 Javascript 的文件管理程序">eXtplorer：基于 PHP 和 Javascript 的文件管理程序</a></li>
<li><a href="http://fairyfish.net/2009/06/26/yourls/" title="使用 YOURLS 创建自己的 URL 缩短服务">使用 YOURLS 创建自己的 URL 缩短服务</a></li>
<li><a href="http://fairyfish.net/2009/06/26/optimizing-php/" title="PHP 性能优化技巧">PHP 性能优化技巧</a></li>
<li><a href="http://fairyfish.net/2009/05/28/php-js/" title="使用 JavaScript 实现 PHP 函数功能：PHP.JS">使用 JavaScript 实现 PHP 函数功能：PHP.JS</a></li>
<li><a href="http://fairyfish.net/m/tengine/" title="淘宝 Web 服务器 Tengine 正式开源">淘宝 Web 服务器 Tengine 正式开源</a></li>
</ul><img src="http://fairyfish.net/wp-content/plugins/all-in-one/ga.php?utmac=MO-328125-5&amp;utmn=1609760972&amp;utmr=-&amp;utmp=%2Frss%2F2009%2F04%2F24%2Fphpanywhere%2F&amp;utmdt=PHPanywhere%EF%BC%9A%E9%9A%8F%E6%97%B6%E9%9A%8F%E5%9C%B0%E7%BC%96%E8%BE%91+PHP+%E6%96%87%E4%BB%B6&amp;guid=ON" />]]></content:encoded>
			<wfw:commentRss>http://fairyfish.net/2009/04/24/phpanywhere/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

