<?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; 开发编程</title>
	<atom:link href="http://www.lifangjin.com/archives/category/%e5%bc%80%e5%8f%91%e7%bc%96%e7%a8%8b/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lifangjin.com</link>
	<description>李方进的个人BLOG</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:36:06 +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>Microsoft Drivers for PHP for SQL Server</title>
		<link>http://www.lifangjin.com/archives/959</link>
		<comments>http://www.lifangjin.com/archives/959#comments</comments>
		<pubDate>Tue, 25 Oct 2011 10:47:51 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=959</guid>
		<description><![CDATA[接上篇讲述如何在windows下配置PHP操作MS SQL SERVER。 Microsoft Drivers for PHP for SQL Server(点此下载)是微软官方出的，经过实际测试，这个方案是最完美的也是最简单的。 环境要求： 1.任何windows操作系统 2.PHP 5.2.4 , or later. 3.Microsoft SQL Server 2008 R2 Native Client（点此下载） 4.Any edition of SQL Server 2005 or later. 配置方法： 1.下载后，点击执行SQLSRV20.EXE解压缩到任意目录 2.如上图，选择对应版本的dll文件复制到PHP安装目录的EXT目录下（不知道php版本的，可以运行一下phpinfo函数查看） 3.修改php.ini，增加一条extension=你选择的dll，我选择的是php_sqlsrv_53_nts_vc9.dll，因此我的php.ini里增加的便是extension=php_sqlsrv_53_nts_vc9.dll 4.重启web服务器，大功告成。 具体的调用方法可以查看SQLSRV_Help.chm 经过实际使用，不管是一般的SQL语句还是存储过程，都能在PHP下得到很好的操作]]></description>
			<content:encoded><![CDATA[<p>接上篇讲述如何在windows下配置PHP操作MS SQL SERVER。</p>
<p><a href="http://www.lifangjin.com/archives/tag/microsoft" class="st_tag internal_tag" rel="tag" title="Posts tagged with microsoft">Microsoft</a> Drivers for <a href="http://www.lifangjin.com/archives/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a> for SQL Server(<a href="http://www.microsoft.com/download/en/details.aspx?id=20098" target="_blank">点此下载</a>)是微软官方出的，经过实际测试，这个方案是最完美的也是最简单的。</p>
<p>环境要求：</p>
<p>1.任何windows操作系统</p>
<p>2.PHP 5.2.4 , or later.</p>
<p>3.Microsoft SQL Server 2008 R2 Native Client（<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52" target="_blank">点此下载</a>）</p>
<p>4.Any edition of SQL Server 2005 or later.</p>
<p>配置方法：<br />
1.下载后，点击执行SQLSRV20.EXE解压缩到任意目录<br />
<a href="http://www.lifangjin.com/wp-content/uploads/2011/10/aa.gif" rel="lightbox[959]"><img class="alignnone size-full wp-image-960" title="aa" src="http://www.lifangjin.com/wp-content/uploads/2011/10/aa.gif" alt="" width="209" height="259" /></a><br />
2.如上图，选择对应版本的dll文件复制到PHP安装目录的EXT目录下（不知道php版本的，可以运行一下phpinfo函数查看）</p>
<p>3.修改php.ini，增加一条extension=你选择的dll，我选择的是php_sqlsrv_53_nts_vc9.dll，因此我的php.ini里增加的便是extension=php_sqlsrv_53_nts_vc9.dll</p>
<p>4.重启web服务器，大功告成。</p>
<p>具体的调用方法可以查看SQLSRV_Help.chm</p>
<p>经过实际使用，不管是一般的SQL语句还是存储过程，都能在PHP下得到很好的操作</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/959/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最简单的windows下配置PHP操作MS SQL</title>
		<link>http://www.lifangjin.com/archives/949</link>
		<comments>http://www.lifangjin.com/archives/949#comments</comments>
		<pubDate>Fri, 21 Oct 2011 01:30:34 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=949</guid>
		<description><![CDATA[windows下PHP自带的php_mssql.dll在配置的时候容易出现各种各样的错误。这里我要推荐另外一个扩展——php_dblib.dll 1.首先下载 http://docs.moodle.org/20/en/Installing_MSSQL_for_PHP#Using_FreeTDS_on_Windows 网站提供四个下载，分别是PHP 5.2.x (vc6) Thread Safe、 PHP 5.2.x (vc6)  Non Thread Safe、PHP 5.3.x (vc9)  Thread Safe、PHP 5.3.x (vc9)  Non Thread Safe，找到符合自己要求的(phpinfo就能查到)下载 2.下载后解压缩，将php_dblib.dll复制到php环境的ext目录下 3.php.ini中增加一句extension=php_dblib.dll 4.重启web服务器(apache、iis、nginx等等) &#60;?php $link = mssql_connect('localhost', 'db_user', 'db_password'); if(!$link) { echo'Could not connect'; die('Could not connect: ' . mssql_error()); } echo'Successful connection'; mssql_close($link); ?&#62; 执行一下以上PHP代码——Successful connection，大功告成。 经测试，在windows2003和windows2008下，能很好的操作ms sql server 2005数据库。 补充：悲剧的是，在实际运行过程中，发现对存储过程支持的并不好。于是，又折腾了半天，找到了另外一个替代方案，下一篇文章再来讲这个替代方案。]]></description>
			<content:encoded><![CDATA[<p>windows下PHP自带的php_mssql.dll在配置的时候容易出现各种各样的错误。这里我要推荐另外一个扩展——<a href="http://www.lifangjin.com/archives/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a>_dblib.dll</p>
<p>1.首先下载</p>
<p><a href="http://docs.moodle.org/20/en/Installing_MSSQL_for_PHP#Using_FreeTDS_on_Windows" target="_blank">http://docs.moodle.org/20/en/Installing_MSSQL_for_PHP#Using_FreeTDS_on_Windows</a></p>
<p>网站提供四个下载，分别是PHP 5.2.x (vc6) Thread Safe、 PHP 5.2.x (vc6)  Non Thread Safe、PHP 5.3.x (vc9)  Thread Safe、PHP 5.3.x (vc9)  Non Thread Safe，找到符合自己要求的(phpinfo就能查到)下载</p>
<p>2.下载后解压缩，将php_dblib.dll复制到php环境的ext目录下</p>
<p>3.php.ini中增加一句extension=php_dblib.dll</p>
<p>4.重启web服务器(<a href="http://www.lifangjin.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="Posts tagged with apache">apache</a>、<a href="http://www.lifangjin.com/archives/tag/iis" class="st_tag internal_tag" rel="tag" title="Posts tagged with IIS">iis</a>、nginx等等)</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>	$link = mssql_connect('localhost', 'db_user', 'db_password');</li>
<li>	if(!$link) {</li>
<li>		echo'Could not connect';</li>
<li>		die('Could not connect: ' . mssql_error());</li>
<li>	}</li>
<li>	echo'Successful connection';</li>
<li>	mssql_close($link);</li>
<li>?&gt;</li></ol></div>
<p>执行一下以上PHP代码——Successful connection，大功告成。</p>
<p>经测试，在windows2003和windows2008下，能很好的操作ms sql server 2005数据库。</p>
<p><font color="red">补充：悲剧的是，在实际运行过程中，发现对存储过程支持的并不好。于是，又折腾了半天，找到了另外一个替代方案，下一篇文章再来讲这个替代方案。</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/949/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用dashcode开发mac osx的dashboard widget</title>
		<link>http://www.lifangjin.com/archives/915</link>
		<comments>http://www.lifangjin.com/archives/915#comments</comments>
		<pubDate>Tue, 10 Aug 2010 10:58:41 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[dashcode]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[SAE]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=915</guid>
		<description><![CDATA[花了点时间研究用dashcode开发mac osx的dashboard widget，并做了一个查询ip真实地址的widget。 外观如下： 实现的功能： 1.初次调用默认显示你的电脑所用的ip地址及真实地址 2.输入ip地址，即可查询真实地址 以下是技术要点： 1.dashcode自带的ui部件很cool，开发语言是大家都很熟悉的javascript 2.远端程序基于sae(sina app engine)的php开发 总体来讲，开发难度并不大，据说dashcode开发的应用可以直接移植到iphone中去，本人无iphone，暂不做移植了。 用mac osx的朋友可以下载玩玩看，下载地址请点此]]></description>
			<content:encoded><![CDATA[<p>花了点时间研究用dashcode开发mac osx的dashboard <a href="http://www.lifangjin.com/archives/tag/widget" class="st_tag internal_tag" rel="tag" title="Posts tagged with widget">widget</a>，并做了一个查询ip真实地址的widget。</p>
<p>外观如下：</p>
<p><a href="http://www.lifangjin.com/wp-content/uploads/2010/08/屏幕快照-2010-08-10-下午06.45.56.png" rel="lightbox[915]"><img class="alignnone size-full wp-image-916" title="屏幕快照 2010-08-10 下午06.45.56" src="http://www.lifangjin.com/wp-content/uploads/2010/08/屏幕快照-2010-08-10-下午06.45.56.png" alt="" width="371" height="106" /></a></p>
<p>实现的功能：</p>
<p>1.初次调用默认显示你的电脑所用的ip地址及真实地址</p>
<p>2.输入ip地址，即可查询真实地址</p>
<p>以下是技术要点：</p>
<p>1.dashcode自带的ui部件很cool，开发语言是大家都很熟悉的javascript</p>
<p>2.远端程序基于sae(<a href="http://www.lifangjin.com/archives/tag/sina-app-engine" class="st_tag internal_tag" rel="tag" title="Posts tagged with Sina App Engine">sina app engine</a>)的php开发</p>
<p>总体来讲，开发难度并不大，据说dashcode开发的应用可以直接移植到iphone中去，本人无iphone，暂不做移植了。</p>
<p>用mac osx的朋友可以下载玩玩看，下载地址请<a href="http://www.lifangjin.com/ipwhois.zip" target="_blank">点此</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/915/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>注意JS文件编码和页面编码不一致带来的问题</title>
		<link>http://www.lifangjin.com/archives/897</link>
		<comments>http://www.lifangjin.com/archives/897#comments</comments>
		<pubDate>Wed, 07 Jul 2010 12:44:36 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=897</guid>
		<description><![CDATA[晚上有个基于jqeury的翻屏js特效出了个古怪的问题——在IE7和FF下很正常，而使用IE6的朋友却说特效没出现，错误是翻屏特效的那个js函数未定义。想了无数办法都没解决，后来google到这篇文章才明白过来，js文件本身是gb2312的，而页面编码却是utf-8的，在修改js文件编码格式为utf-8以后，问题得以解决。]]></description>
			<content:encoded><![CDATA[<p>晚上有个基于jqeury的翻屏js特效出了个古怪的问题——在IE7和FF下很正常，而使用IE6的朋友却说特效没出现，错误是翻屏特效的那个js函数未定义。想了无数办法都没解决，后来google到<a href="http://blog.csdn.net/donetboy328/archive/2010/01/18/5209345.aspx" target="_blank">这篇文章</a>才明白过来，js文件本身是gb2312的，而页面编码却是utf-8的，在修改js文件编码格式为utf-8以后，问题得以解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/897/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[wordpress开发]给页面(page)做模板</title>
		<link>http://www.lifangjin.com/archives/881</link>
		<comments>http://www.lifangjin.com/archives/881#comments</comments>
		<pubDate>Thu, 24 Jun 2010 07:29:43 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[wordpress开发]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=881</guid>
		<description><![CDATA[有些时候，不同的page我们需要呈现不同的外观样式，比如“关于我们”和“联系方式”，假如设计时所使用的外观不同，单一的page模板肯定是不足够使用的，这个时候就需要用到给page做模板了。 在模板目录中，我们新建一个about.php，在文件的开头，输入以下内容： &#60;?php /* Template Name:关于我们 */ ?&#62; 然后在about.php中放入“关于我们”的页面代码。 再新建一个contact.php，在文件的开头，输入以下内容： &#60;?php /* Template Name:联系方式 */ ?&#62; 然后在contact.php中放入“联系方式”的页面代码 进入管理后台，在编辑页面或新建页面时，页面的右下角会出现一个模板文件的可选项，选择对应的模板即可。]]></description>
			<content:encoded><![CDATA[<p>有些时候，不同的page我们需要呈现不同的外观样式，比如“关于我们”和“联系方式”，假如设计时所使用的外观不同，单一的page模板肯定是不足够使用的，这个时候就需要用到给page做模板了。<br />
在模板目录中，我们新建一个about.<a href="http://www.lifangjin.com/archives/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a>，在文件的开头，输入以下内容：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: #ffa500;">/*</span></li>
<li><span style="color: #ffa500;">Template Name:关于我们</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>然后在about.php中放入“关于我们”的页面代码。</p>
<p>再新建一个contact.php，在文件的开头，输入以下内容：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: #ffa500;">/*</span></li>
<li><span style="color: #ffa500;">Template Name:联系方式</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>然后在contact.php中放入“联系方式”的页面代码</p>
<p>进入管理后台，在编辑页面或新建页面时，页面的右下角会出现一个模板文件的可选项，选择对应的模板即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/881/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sina App Engine(SAE)初体验</title>
		<link>http://www.lifangjin.com/archives/860</link>
		<comments>http://www.lifangjin.com/archives/860#comments</comments>
		<pubDate>Sat, 08 May 2010 04:01:56 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[SAE]]></category>
		<category><![CDATA[Sina App Engine]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=860</guid>
		<description><![CDATA[其实我一直都在等待Google App Engine推出对PHP语言的支持，但似乎这事儿遥遥无期，官方也没有明确的说法。 另外一个云计算平台Amazon S3，虽然支持PHP，但是出于对服务器在国外随时可能被墙的担心，我也没怎么去试用。 令人高兴的是，Sina App Engine正在紧张的开发中，继前段时间发放了少部分的邀请码以外，昨日又推出了体验账户的申请。体验帐号拥有正式帐号的全部功能，但是体验帐号会在注册第二天临晨5 点被回收，该帐号下的所有代码和数据将被清空。体验帐号可以随时申请，实时开通，每天共可申请100个。 于是，我昨天便申请了一个体验账户，以下是一些体验总结。 1.一个账户可以创建多个SAE应用，我只创建了一个“查IP”，提供sina微博查IP机器人服务。 2.对单个应用有独立的管理界面，点击自己的应用进入管理，左侧有一堆管理功能。 3.一个应用可以由多人共同参与开发，对于团队开发挺不错的。 4.从菜单可以看出，SAE内置提供Mysql、MemCache、Storage、Cron Jobs、Image、Fetch Url、Mail的支持，除了少部分被禁用的PHP函数以外，PHP的大部分函数都能正常使用。而我的查IP应用中使用到的SAE内置服务就有Mysql、MemCache和Cron Jobs。有意思的是，我发现ereg这个函数并不在禁用列表中，但事实上SAE却不许使用这个函数。而外部服务则有SinaS3，目前还处于alpha阶段。 5.SAE对httpd、Mysql、Memcache、Fetch URL、数据存储、图片处理有配额限制，基本上是以日为单位的。比如，httpd的配额限制为：请求次数每日 10000000 次、流入带宽 每日500000 KB、流出带宽每日1000000 KB、CPU时间每日10800000 MS，Mysql的配额限制为查询次数每日1000000 次、写入Mysql的数据量每日1000000 KB、从Mysql读出的数据量每日1000000 KB、CPU时间每日10800000 MS、数据存储总量（非每日）为195312.5 KB。基于SAE开发的应用一定要注意这些限制。我的查IP应用由于现在使用的人数并不多，因此远远低于这些配额限制。 总体来说，SAE还不错，尤其是对于习惯PHP开发的人员来说，程序的移植也比较容易，希望能尽快推出正式版本。 PS：由于我用体验账户发布了这个查IP应用而获得了一个正式账户的邀请码，等体验账户到期以后我就能使用正式账户了，哈哈，感谢Easy。]]></description>
			<content:encoded><![CDATA[<p>其实我一直都在等待Google App Engine推出对PHP语言的支持，但似乎这事儿遥遥无期，官方也没有明确的说法。</p>
<p>另外一个云计算平台Amazon S3，虽然支持PHP，但是出于对服务器在国外随时可能被墙的担心，我也没怎么去试用。</p>
<p>令人高兴的是，Sina App Engine正在紧张的开发中，继前段时间发放了少部分的邀请码以外，昨日又推出了<a href="http://blog.sae.sina.com.cn/?p=168" target="_blank">体验账户的申请</a>。体验帐号拥有正式帐号的全部功能，但是体验帐号会在注册第二天临晨5 点被回收，该帐号下的所有代码和数据将被清空。体验帐号可以随时申请，实时开通，每天共可申请100个。</p>
<p>于是，我昨天便申请了一个体验账户，以下是一些体验总结。</p>
<p>1.一个账户可以创建多个SAE应用，我只创建了一个“查IP”，提供sina微博查IP机器人服务。</p>
<p>2.对单个应用有独立的管理界面，点击自己的应用进入管理，左侧有一堆管理功能。</p>
<p><a href="http://www.lifangjin.com/wp-content/uploads/2010/05/Snap1.gif" rel="lightbox"><img class="alignnone size-medium wp-image-861" title="Snap1" src="http://www.lifangjin.com/wp-content/uploads/2010/05/Snap1-300x190.gif" alt="" width="300" height="190" /></a></p>
<p>3.一个应用可以由多人共同参与开发，对于团队开发挺不错的。</p>
<p>4.从菜单可以看出，SAE内置提供Mysql、MemCache、Storage、Cron Jobs、Image、Fetch Url、Mail的支持，除了少部分被禁用的PHP函数以外，PHP的大部分函数都能正常使用。而我的查IP应用中使用到的SAE内置服务就有Mysql、MemCache和Cron Jobs。有意思的是，我发现ereg这个函数并不在禁用列表中，但事实上SAE却不许使用这个函数。而外部服务则有SinaS3，目前还处于alpha阶段。</p>
<p>5.SAE对httpd、Mysql、Memcache、Fetch URL、数据存储、图片处理有配额限制，基本上是以日为单位的。比如，httpd的配额限制为：请求次数每日 					10000000 次、流入带宽 					每日500000 KB、流出带宽每日1000000 KB、CPU时间每日10800000 MS，Mysql的配额限制为查询次数每日1000000 次、写入Mysql的数据量每日1000000 KB、从Mysql读出的数据量每日1000000 KB、CPU时间每日10800000 MS、数据存储总量（非每日）为195312.5 KB。基于SAE开发的应用一定要注意这些限制。我的查IP应用由于现在使用的人数并不多，因此远远低于这些配额限制。</p>
<p><a href="http://www.lifangjin.com/wp-content/uploads/2010/05/Snap2.gif" rel="lightbox"><img class="alignnone size-medium wp-image-862" title="Snap2" src="http://www.lifangjin.com/wp-content/uploads/2010/05/Snap2-300x219.gif" alt="" width="300" height="219" /></a></p>
<p>总体来说，SAE还不错，尤其是对于习惯PHP开发的人员来说，程序的移植也比较容易，希望能尽快推出正式版本。</p>
<p>PS：由于我用体验账户发布了这个查IP应用而获得了一个正式账户的邀请码，等体验账户到期以后我就能使用正式账户了，哈哈，感谢<a href="http://t.sina.com.cn/easy" target="_blank">Easy</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/860/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>期待BackPress正式发布</title>
		<link>http://www.lifangjin.com/archives/816</link>
		<comments>http://www.lifangjin.com/archives/816#comments</comments>
		<pubDate>Mon, 04 Jan 2010 05:59:54 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=816</guid>
		<description><![CDATA[我一直都觉得如果学习PHP，最好的范例就是discuz和wordpress，无论是架构还是语法规范，都有其可取之处。 从这里看到一个不错的项目正在孕育中——BackPress，是WordPress、BBPress程序的核心部分。 官方对这个项目的介绍为：“Core PHP libraries for your web applications.”但我觉得这个更像是一个开发框架，功能列表如下： Logging (via bbPress’ logging library) to file/database/other. Supports levels (notice, warn, fatal). User Roles management (generally used for access control to portions of your application). Schema parser (for comparing schema files to current/live databases). User management (including user meta data and DB schema to support it) [...]]]></description>
			<content:encoded><![CDATA[<p>我一直都觉得如果学习PHP，最好的范例就是discuz和wordpress，无论是架构还是语法规范，都有其可取之处。</p>
<p>从<a href="http://fairyfish.net/2009/12/28/backpress/">这里</a>看到一个不错的项目正在孕育中——<a href="http://backpress.org/">BackPress</a>，是WordPress、BBPress程序的核心部分。</p>
<p>官方对这个项目的介绍为：“Core <a href="http://www.lifangjin.com/archives/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a> libraries for your web applications.”但我觉得这个更像是一个开发框架，功能列表如下：</p>
<ul>
<li>Logging (via bbPress’ logging library) to file/database/other. Supports levels (notice, warn, fatal).</li>
<li>User Roles management (generally used for access control to portions of your application).</li>
<li>Schema parser (for comparing schema files to current/live databases).</li>
<li>User management (including user meta data and DB schema to support it) for managing core user information and arbitrary other user-related data.</li>
<li>Database Abstraction (including using multiple database servers, clusters and data centers)</li>
<li>XML-RPC Server and Client operations for interfacing with other systems.</li>
<li>Mail sending (via SMTP and sendmail, supports attachments)</li>
<li>Password Hashing/Crypto</li>
<li>AJAX Responses (standardized XML-based response mechanism for AJAX requests)</li>
<li>User Authentication using built in crypto for passwords, plus secure cookie management out of the box</li>
<li><a href="http://www.lifangjin.com/archives/tag/javascript" class="st_tag internal_tag" rel="tag" title="Posts tagged with javascript">JavaScript</a> and CSS inclusion and dependencies management, including internationalization options for JS strings</li>
<li>Error handling via objects which can report multiple errors at a time</li>
<li>Full HTTP library (supporting core PHP HTTP operations, cURL and raw sockets for widest compatibility available. Includes cookie send/receive support)</li>
<li>Object caching, including using memcached as a backend for semi-persistent storage</li>
<li>Arbitrary taxonomy management (tagging, categories, other classification systems) with generic DB schema</li>
<li>Generic options management for handling application-wide options/settings</li>
<li>Compatibility functions to provide support for useful functionality which is not available in all versions of PHP</li>
<li>A variety of core helpers for advanced string manipulation, simpler HTTP transactions, security (nonces etc), timezones and more</li>
<li>Lots of formatting functions for handling strings of all kinds (HTML, typographic features, sanitization, etc)</li>
<li>KSES: Full security filtering for HTML content</li>
<li>Complete plugin API, provided via the ability to add “actions” and “filters” to your application and allow any plugin to hook into those places to modify output/perform actions.</li>
<li>Shortcode API allowing for [bbcode]-style input from a user to be translated using arbitrary rules</li>
<li>Pseudo-cron functionality, allowing you to fire off events within your application, triggered by visits/page-loads to approximate cron-type functionality</li>
</ul>
<p>看看，用这些功能库能减少PHP WEB应用中不少的重复工作量（这些重复的工作量也是导致我无心继续开发自己的CMS和项目管理软件的主要原因）。</p>
<p>尽管目前该项目还没有正式版，但的确是一个值得期待的项目，不是吗？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/816/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>openx 2.8.2</title>
		<link>http://www.lifangjin.com/archives/737</link>
		<comments>http://www.lifangjin.com/archives/737#comments</comments>
		<pubDate>Thu, 05 Nov 2009 09:47:41 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[openx]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=737</guid>
		<description><![CDATA[最近在研究openx2.8.2，作为国外老牌强劲的开源广告系统，还是很不错的，目前发现两点问题： 1.管理权限分配，一直没研究出来怎么去进行管理权限分配 2.官方自带的简体中文包存在大量乱码，稍后我会放一个我自己做的简体中文包出来]]></description>
			<content:encoded><![CDATA[<p>最近在研究openx2.8.2，作为国外老牌强劲的开源广告系统，还是很不错的，目前发现两点问题：</p>
<p>1.管理权限分配，一直没研究出来怎么去进行管理权限分配</p>
<p>2.官方自带的简体中文包存在大量乱码，稍后我会放一个我自己做的简体中文包出来</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/737/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>大中型网站web程序开发架构思考</title>
		<link>http://www.lifangjin.com/archives/716</link>
		<comments>http://www.lifangjin.com/archives/716#comments</comments>
		<pubDate>Wed, 09 Sep 2009 10:12:12 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[接口]]></category>
		<category><![CDATA[架构]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=716</guid>
		<description><![CDATA[这几天一直在琢磨这个问题，今天一次会上在白板上粗略了画了一下我的想法，会后抽了点时间自己整理了一下。 基本上这个架构也是按照标准的三层结构来设计的，如下图（点击看大图）： 传统web程序的开发模式基本只有2层：应用层和数据层，有理无理就直接到数据库里去操作（大部分web编程书籍都是这么教的）。 而引入接口层以后，只有对数据的添加、删除和修改是通过接口去数据库里操作，select操作则增加了一个数据缓存，可以大大减轻数据库的压力，而对于一般的大中型网站而言，恐怕更多的访问压力是来自select，而不是对数据的添加、删除和修改的交互性操作。原本，html静态化是解决办法之一，但这个解决办法面临的问题是一旦页面有所变更，则需要全部重新静态化，对于数据量较大的大中型网站，无异是一场噩梦——动静结合，反而能恰到好处。 接口身份验证：采用OAuth，可以做成通用的平台 接口规则：负责将接口方法函数按照select、update、insert、delete进行分类 接口数据缓存：设想是生成数据的XML静态文件，应用层只需要解析这些XML静态文件即可，而接口操作则是输出XML的字符串，可以做成通用平台。引入缓存数据周期，则可以保证不同的应用对于数据本身的实时性的要求得以满足。 接口操作：即实现接口方法函数，根据方法函数到数据库里进行操作，要么输出字符串为XML的结果集，要么输出字符串为XML的操作状态码以告知应用层update、insert、delete操作状态，譬如操作成功、无权限操作等等 应用层：根据业务逻辑的需要调用合适的接口去实现业务逻辑 原则上这样的设计，一方面能平衡网站访问量大带来的程序压力，一方面也能做到应用层与数据层无关。应用层可以采用任何一种开发语言(.net、PHP、java等)，而数据库也可以采用任何一种数据库(MS SQL SERVER、MYSQL、ORACLE)，对服务器操作系统而言，也能做到WINDOWS+LINUX的混合架构，发挥两种操作系统各自的优势。 时间有限，此图还有待完善，譬如可以结合网站的硬件架构。]]></description>
			<content:encoded><![CDATA[<p>这几天一直在琢磨这个问题，今天一次会上在白板上粗略了画了一下我的想法，会后抽了点时间自己整理了一下。</p>
<p>基本上这个架构也是按照标准的三层结构来设计的，如下图（点击看大图）：</p>
<p><a href="http://www.lifangjin.com/wp-content/uploads/2009/09/Snap1.gif" rel="lightbox[716]"><img class="alignnone size-medium wp-image-717" title="Snap1" src="http://www.lifangjin.com/wp-content/uploads/2009/09/Snap1-300x123.gif" alt="Snap1" width="300" height="123" /></a></p>
<p>传统web程序的开发模式基本只有2层：应用层和数据层，有理无理就直接到数据库里去操作（大部分web编程书籍都是这么教的）。</p>
<p>而引入接口层以后，只有对数据的添加、删除和修改是通过接口去数据库里操作，select操作则增加了一个数据缓存，可以大大减轻数据库的压力，而对于一般的大中型网站而言，恐怕更多的访问压力是来自select，而不是对数据的添加、删除和修改的交互性操作。原本，html静态化是解决办法之一，但这个解决办法面临的问题是一旦页面有所变更，则需要全部重新静态化，对于数据量较大的大中型网站，无异是一场噩梦——动静结合，反而能恰到好处。</p>
<p>接口身份验证：采用OAuth，可以做成通用的平台</p>
<p>接口规则：负责将接口方法函数按照select、update、insert、delete进行分类</p>
<p>接口数据缓存：设想是生成数据的XML静态文件，应用层只需要解析这些XML静态文件即可，而接口操作则是输出XML的字符串，可以做成通用平台。引入缓存数据周期，则可以保证不同的应用对于数据本身的实时性的要求得以满足。</p>
<p>接口操作：即实现接口方法函数，根据方法函数到数据库里进行操作，要么输出字符串为XML的结果集，要么输出字符串为XML的操作状态码以告知应用层update、insert、delete操作状态，譬如操作成功、无权限操作等等</p>
<p>应用层：根据业务逻辑的需要调用合适的接口去实现业务逻辑</p>
<p>原则上这样的设计，一方面能平衡网站访问量大带来的程序压力，一方面也能做到应用层与数据层无关。应用层可以采用任何一种开发语言(.net、<a href="http://www.lifangjin.com/archives/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a>、java等)，而数据库也可以采用任何一种数据库(MS SQL SERVER、MYSQL、ORACLE)，对服务器操作系统而言，也能做到WINDOWS+LINUX的混合架构，发挥两种操作系统各自的优势。</p>
<p>时间有限，此图还有待完善，譬如可以结合网站的硬件架构。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/716/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery Quick Pagination——一款很不错的jquery分页插件</title>
		<link>http://www.lifangjin.com/archives/708</link>
		<comments>http://www.lifangjin.com/archives/708#comments</comments>
		<pubDate>Mon, 17 Aug 2009 07:09:32 +0000</pubDate>
		<dc:creator>李 方进</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.lifangjin.com/?p=708</guid>
		<description><![CDATA[众所周知，采用ajax分页，会对SEO不利，因为数据都是从远程采用ajax调用的，而spider未必能找到这些数据。 找了一会，发现jQuery Quick Pagination这款分页插件不错，它的分页原理是对页面源码中已有的html标记进行分页。 比如可以采用这款插件，对页面中连续20个&#60;li&#62;&#60;/li&#62;标记进行每页5个&#60;li&#62;&#60;/li&#62;标记的分页。这样所有的数据其实都在html代码中，只是前端表现形式为ajax的分页。 demo：http://projects.allmarkedup.com/jquery_quick_paginate/demo.html 插件主页：http://projects.allmarkedup.com/jquery_quick_paginate/index.php]]></description>
			<content:encoded><![CDATA[<p>众所周知，采用ajax分页，会对SEO不利，因为数据都是从远程采用ajax调用的，而spider未必能找到这些数据。</p>
<p>找了一会，发现jQuery Quick Pagination这款分页插件不错，它的分页原理是对页面源码中已有的html标记进行分页。</p>
<p>比如可以采用这款插件，对页面中连续20个&lt;li&gt;&lt;/li&gt;标记进行每页5个&lt;li&gt;&lt;/li&gt;标记的分页。这样所有的数据其实都在html代码中，只是前端表现形式为ajax的分页。</p>
<p>demo：<a href="http://projects.allmarkedup.com/jquery_quick_paginate/demo.html" target="_blank">http://projects.allmarkedup.com/jquery_quick_paginate/demo.html</a></p>
<p>插件主页：<a href="http://projects.allmarkedup.com/jquery_quick_paginate/index.php" target="_blank">http://projects.allmarkedup.com/jquery_quick_paginate/index.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifangjin.com/archives/708/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

