<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[李智芸的个人主页]]></title>
<link>http://www.lzy.name/blog/</link>
<description><![CDATA[哈哈哈哈哈哈哈~~~]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[hellolzy@vip.qq.com(逡逡)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>李智芸的个人主页</title> 
	<url>http://www.lzy.name/blog/images/logos.gif</url> 
	<link>http://www.lzy.name/blog/</link> 
	<description>李智芸的个人主页</description> 
</image>

			<item>
			<link>http://www.lzy.name/blog/default.asp?id=24</link>
			<title><![CDATA[交通仿真软件Synchro的资料汇总]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[土木工程]]></category>
			<pubDate>Tue,18 Jan 2011 06:46:23 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=24</guid>	
		<description><![CDATA[<p>当初在学习Synchro的时候曾经遇到了一些问题，不知道是这个软件在国内并不流行，还是觉得他太过简单用处不大，总之找到的资料很少。今天心情不太好，趁这个机会把我对Synchro的了解和资料整理一下，确实不是多复杂的tool, 主要就是signal timing的simulation，另外我还做了一个针对地区事件发生后的evacuation plan，可以借此更详细地介绍一下Sychro的用法。（博客一年多没有更新了，都长草了，自己都看不下去了，我想这也是我打算更新一些东西的初衷。很多名词我学习的时候就是英语，要我逐个翻译也很为难，好在现在金山有道做得都很好，取词即可呵呵。）希望对有需要的人有所帮助。</p>
<p>1. 在国外才知道国内的知识产权保护意识有多么薄弱，才深刻意识到在他们看来，盗版是一件多么shame的事情。。。我也只拿到了一个education only的key，不便分享，但是我相信大家肯定能找到合适的免费的下载地方的，我用的版本是Synchro 7。另外安装完之后会有一系列的PDF文件，比如Synchro Studio 7 Example以及Synchro Studio 7 User's Guide，这些都是英文版的manuals，我个人觉得看看还挺有用的，但是我明白看英文资料的痛苦，如果大家有问题我们可以探讨。</p>
<h2><span class="Title"><font color="#ff0000">英文资料手册：</font><a href="http://www.lzy.name/blog/attachments/month_1101/z20111185241.rar"><font color="#ff0000">点此下载！</font></a></span></h2>
<p><span class="Title"></span>2. 借助某项目介绍Synchro的仿真步骤，部分交通规则可能会有差异，主要是方便介绍Synchro的用法： </p>
<p>2.1&nbsp; 首先采集必要的数据，比如基本的地理位置，Storage length（在进入交叉路口前有些路段会拓宽，比如由两车道变换成左转，直行，右转三条车道，开始拓宽的位置到intersection的长度就是Storage length了），交叉路口处Yellow time（黄灯闪烁时间）和All-Red Time（不是红灯时间，而是交叉路口所有信号灯都转红灯的时间，一般不超过2秒）等等。交通流量自然也是不可少的，记录下每小时经过的车辆数。好了，数据都搜集全了，就可以开始仿真了~~</p>
<p>2.2 我从Google Earth里面截了一张图作为背景，这段道路里面一共有两个交叉路口。</p>
<p><img border="0" alt="" src="http://www.lzy.name/blog/attachments/month_1101/google_map.jpg" /></p>
<p>2.3 在背景图的基础上绘制仿真线路。用add link button（第三排第一个，或者用快捷键），右键可以使道路弯曲。双击线路可以编辑各项属性，比如各个Lanes的方向，车道数，车流量，当然还有之前说的Storage Lanes。画完的成果如下图所示：</p>
<p><img border="0" alt="" src="http://www.lzy.name/blog/attachments/month_1101/1.jpg" /></p>
<p>2.4 接下来就是对Signal timing的优化了，点击其中一个intersection，选择time setting button，或者用快捷键F5。修改设置，包括之前所说的Yellow Time, All-Red Time等等。然后按F6进行Phasing settings。好了，其实也没有多少设置，然后在node下面就可以点那个optimize按钮了，这样就可以得到优化的Cycle Length时间了。此后可以创建一些reports，分析一下数据。最后，按Ctrl+g，进行仿真，如下图所示：</p>
<p><img border="0" alt="" src="http://www.lzy.name/blog/attachments/month_1101/base.jpg" /></p>
<p>2.5 仿真的时候也可以修改一些设置，比如duration和seeding time。所谓的seeding time, 了解AI算法的人应该都知道，比如我手上有100个数据，我可能拿其中50个用来建立模型，然后用剩下50个来验证模型，这个seeding time就是初始建模撒播的数据了。</p>
<p>好了，猛然发现基本上就这些了，Synchro真的是很简单，等我把Paramics和VISSIM玩转了再过来写他们的心得吧。最后还是把源文件附上，大家可以拿去玩。主要就是对intersection的一个优化，以及查看仿真后的一些数据进行分析，看看这个路段的交通情况如何。</p>
<span class="Title">
<h2><font color="#ff0000">Synchro源文件：</font><a href="http://www.lzy.name/blog/attachments/month_1101/synchro_file.rar"><font color="#ff0000">点此下载！</font></a></h2>
</span>
<p>&nbsp;我做这个project已经是好几个月以前的事情了，很多东西没有说清楚，可能漏了很多步骤，如果有问题，还是上首页找我的联系方式，我们可以探讨，我也愿意不断完善这个粗糙的教程呵呵。谢谢。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=23</link>
			<title><![CDATA[第三方应用程序与Ucenter系列整合并同步的终极解决方案（附源代码demo）]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[网站技术]]></category>
			<pubDate>Fri,22 Jan 2010 13:42:28 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=23</guid>	
		<description><![CDATA[<p><a href="http://www.lzy.name/blog/attachments/month_1001/p2010122134047.rar"><strong><font color="#ff0000" size="4"><img style="MARGIN: 0px 2px -4px 0px" border="0" alt="" src="http://www.lzy.name/blog/images/download.gif" />本人修改的实现双向同步的第三方应用源代码，请点此下载</font></strong></a></p>
<p>首先想说的是，知其然，还需知其所以然。我和很多人一样讨厌阅读他人的代码，尤其是ucenter这样复杂的代码，但是你只有靠近他，理解他，才能最终拥有他。上个月我粗浅地写了一篇第三方应用与ucenter的整合方案，其实当时只是实现了单向同步，现在项目做完了，也有时间整理我的思路，给出一个粗糙但尚且可行的整合与同步demo（双向同步）。</p>
<p><strong>需要注明的是：</strong></p>
<p>1.我给出的demo并不是在comsenz官方给出的example的基础上修改的，而是在貌似该公司技术人员难得给出的回帖中提供的源代码基础上修改的，应该说，这也算是半官方的源代码了。其中，ucenter和uc.php针对的版本都是ucenter 1.5.0版本。</p>
<p>2.该版本其实对应的是example_1的接口，换言之，这是无自己的用户表的程序，由于我的新项目没有用户表的整合问题，所以只研究了无用户表的情况。</p>
<p>3.该程序只是在官方基础上进行了修改，使之真正可行，其中注册，同步登录，登出，头像都经过了测试，只是着重针对同步问题修改了代码，而好友，积分，邮件等功能因为没有用到，所以暂时没有测试，不过相信当你明白了个中原理之后，即便有问题修改起来也不麻烦。原来的代码只包含了config.inc.php（配置文件），api接口中的uc.php和uc_client文件夹，相比官方的范例少了使用的code，建议大家结合官方给的example_1来使用。</p>
<p>4.这是ucenter同步机制本身带来的一些问题，比如同步的安全问题（一旦掌握了加密uc_key之后会很危险等等），又比如免激活的问题，程序中并没有体现。一来我对自己的解决方案并不自信，二来相信只要发现了问题，八仙过海可以各显神通，大家可在此基础上进一步改进，难度不大。</p>
<p><strong>我将第三方应用与ucenter中其他应用（discuz,uchome）的整合步骤顺带一点点原理给大家粗浅地讲一下，当然还附带了自己测试过程中遇到的所有问题的解决办法：</strong></p>
<p>1.下载程序，设置config.inc.php。这里要注意的是，如果你在本地测试，请将UC_IP设置成127.0.0.1，如果你在服务器上测试，也一定要加上远程IP，这个在同步跳转到ucenter的过程中非常有用。另外在官方版本的基础上加了两个变量以避免低级错误。同时在ucenter中添加应用。不出意外的话，添加完后通信成功。</p>
<p>2.按照comsenz官方提供的code进行测试，以登录为例：<br />list($uid, $username, $password, $email) = uc_user_login($this-&gt;input-&gt;post('username'), $this-&gt;input-&gt;post('password')); //登录并获取信息<br /><br />&nbsp;&nbsp;$cookie = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'name'&nbsp;&nbsp; =&gt; 'example_auth',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'value'&nbsp; =&gt; '',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'expire' =&gt; '-86400',<br />&nbsp;&nbsp;);</p>
<p>&nbsp;&nbsp;set_cookie($cookie);&nbsp;//先将原cookies清空，注意，1.本人用的是codeigniter框架，用php的同学请改写成正常的清空cookies代码，2.name应当是你的站点程序登录时验证的cookies的名称，本文以example_auth为例。<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;if ($uid &gt; 0)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;$cookie = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'name'&nbsp;&nbsp; =&gt; 'example_auth',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'value'&nbsp; =&gt; uc_authcode($uid.&quot;\t&quot;.$username, 'ENCODE', UC_KEY),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'expire' =&gt; '86500',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );</p>
<p>&nbsp;&nbsp;&nbsp;set_cookie($cookie);//生成站点的cookies，名称应当是主站的cookies名称，加密时的格式请注意<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;$ucsynlogin = uc_user_synlogin($uid); //这是同步登录的代码，输出为js代码，一定要print到屏幕中一次<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp; elseif($uid == -1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;echo &lsquo;用户不存在,或者被删除';<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;elseif($uid == -2)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;echo '密码错误';<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;echo '未定义的错误';<br />&nbsp;&nbsp;}</p>
<p>这一步其实很简单了，也没什么问题，这样就实现了自身的cookies存储（登录）与同步登录。同步登出同理。在这一步中，同步登录时其实是访问了ucenter中的user中的函数，大家可以将ucenter/control/user.php文件打开，其中的onsynlogin即是同步登录函数，他其实是生成了一串js代码，访问除本站以外的其他同步应用的uc.php这个文件，通过传递参数使其他应用也设置好自身的cookies，这样不就同步了嘛呵呵。这一步如果出错，可能性有两点：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;1) 由于是JS代码，一定要在客户端输出并print一次，这样JS才会执行，否则相当于没有执行同步函数。上例中$ucsynlogin = uc_user_synlogin($uid)这一句，你的$ucsynlogin变量一定要输出，如果你用ajax，可以夹杂在其他代码之中，总之一定要让js运行。</p>
<p>&nbsp;&nbsp;&nbsp; 2) 找到你的ucenter/data/cache/apps.php这个文件，看看里面是否包含了你的应用？因为js的代码就是遍历apps.php中的应用生成的，有时候很奇怪，你添加应用的时候他却没有把你的应用加进来。这时候你模仿前面的discuz这些应用也写一个自己的应用，要和config.inc.php设置得一致。</p>
<p>好了，只要你下载了偶小改的程序，并且按以上步骤做下来，单向同步是没有问题了（即在主站中登录登出时，discuz与uchome等也同时登录登出了）。其实很多人都做到了这一步，关键是怎样在discuz中登录时，主站也做到同步，这里的关键无非就是修改api/uc.php这个文件，当你在主站登录时，js代码中并不包括你的站点的uc.php（因为你的站点不需要同步），而discuz他们的uc.php都没问题，所以同步正常。而当其他应用要同步你的站点时，你的uc.php就派上用场了。不管是哪个版本的官方example，似乎都是从discuz的uc.php中剥离出来的，根本不能用，只能自己改动。</p>
<p>3.单向同步完成后是修改主站自身的api/uc.php，目的是当用户在其他应用中登录后，访问你的uc.php能将你的站点的cookies设置好，从而实现同步。主要是修改了synlogin和synlogout两个函数，当然还有后面的_setcookie。</p>
<p>synlogin完全是按discuz的cookies来设置的，和主站的cookies没有半毛钱关系。把require_once开始之后的内容全部删除，只设置自己网站的cookies即可。synlogout同理。而_setcookie这个函数也有问题，首先我在config.inc.php里面没有设置cookies的前缀，所以默认$prefix=0；其次，$cookiepath和$cookiedomain如果设置不对，也会导致你生成的cookies与主站的cookies不符。example中并没有对path和domain进行设置，所以我将path设置在根目录下，&quot;/&quot;，而域也设置为空。</p>
<p>好了，其实也不复杂，这样一来反向的同步也完成了，别说三个应用，三十个程序同步登录退出也没问题。修改的代码其实不多，ucenter的技术人员稍微细心一点点抽出哪怕一个小时的时间也能处理得比我好，但是他们把这堆烂摊子丢给了我们，我们只能自己修改出一个能用的程序，这也是本文的初衷，希望能与大家共同探讨。</p>
<p>最后，之前提过，同步的时候，uc.php虽然传递了password参数，但是同步函数里面并没有对用户名密码的匹配进行验证，一旦有人知道了你的UC_KEY，那么他就可以随心所欲地以任何用户名登录了，这是很大的安全隐患，在设置cookies之前，最好加一个用户名和密码的验证，当然这样要调用数据库。另外所谓的激活与非激活，你看过synlogin的话，其实就是看看你注册后，discuz论坛的用户表里面是否存在uid的那一行记录，要修改成自动激活的话，注册的同时向discuz的members表里面写入该用户的数据即可。</p>
<p>一直凭记忆在写，想到时我会继续更新一些问题，也欢迎大家和我探讨。我的联系方式在首页有：<a href="http://www.lzy.name">http://www.lzy.name</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=22</link>
			<title><![CDATA[在Codeigniter中实现了第三方程序与UCenter的同步(comsenz不厚道)]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[网站技术]]></category>
			<pubDate>Fri,18 Dec 2009 10:55:42 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=22</guid>	
		<description><![CDATA[<p>最终解决方案请点击此文：<a href="http://www.lzy.name/blog/article.asp?id=23">http://www.lzy.name/blog/article.asp?id=23</a></p>
<p>这是上个月初用ucenter整合同步时的一些心得，只实现了单向同步，最终解决方案及源代码在上文中。</p>
<p>上次做了个网站，也整合了discuz，不过只是include了人家的common文件，用了相同的cookies。虽然好用，但是效率低，也不太规范。这回正在做的网站，要将主程序+discuz+uchome一起整合了，而且要实现同步，想来再也不能用这套原始的办法了。UCenter的创意真的很好，一开始接触的时候也大致明白了人家的原理，而且人家给了example，上手应该挺快。结果。。。。我是气愤+无奈+被折腾得没脾气，第一次听说生产产品的公司自己给的demo竟然都是错的，本来只是想调用人家的程序，整合上好用就完了，结果昨天花了整整一天的时间，被动地把整个UCenter机制好好地研究了一番+自己修改了N多代码，终于好用了。估计很多同学都和我遇到了一样的麻烦，赶紧记录下来，大家一起探讨。</p>
<p>一开始，先安装好了ucenter和discuz+uchome自动整合的一套程序（官方整合版），然后下载的是官方论坛上的examples，结果一上来就给我个下马威，通信失败。不管我怎么折腾都不行，别说网上的那些常见问题我挨个试了全都不成功，最后到了什么境界呢，检查通信失败不是check那个uc.php的status嘛，最后我写if (status==1)输出status，是1；else输出status，还是1！太无奈了。总算天无绝人之路，搜索了一百多个链接之后，终于给我找到了comsenz team给的从discuz里面抽出的一套程序，取名test.zip，我心想ucenter都1.5了，怎么demo还是beta，确实应该叫test了。在这里我再上传一遍，注意，该程序仍然有若干小错误（比如网上最常见的config中缺少$database='mysql'），而且因为是从discuz中抽取出来的，所以api里面的uc.php是discuz的同步，所以还是要copy那个examples里面的若干程序，实现第三方的同步。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0912/b20091218103412.zip"><img style="MARGIN: 0px 2px -4px 0px" border="0" alt="" src="http://www.lzy.name/blog/images/download.gif" />点击下载此文件</a></p>
<p>好了，如果你用上面的程序，设置好config.inc.php，加上$database='mysql'，通信成功。折腾了这么久，竟然只是完成了第一步。</p>
<p>因为很喜欢CI框架，所以这次还是用CI开发。本来想到CI官网上报喜说我实现同步了，结果自己发的贴子因为与CI无关被删除了，哎，只能在自己的小地盘上发泄一下了。需要说明的是，由于我在设置同步登录的同时，还用到了ajax登录方式以及div的局部刷新，所以碰到的问题更多。</p>
<p>通信成功之后是登录成功，login的函数没有问题，不再赘述。但是接下来的同步登录确实花了我大半天的时间，调试了好久好久，就是没有返回值，也就是那串&lt;javascript&gt;代码没有输出。惊奇的是，追踪到那个synlogin，要打开ucenter里面的user.php的时候，竟然没有访问到，也就是说根本没有调用到user里面的onsynlogin函数。然后就是无止境地调试，虽然不知不觉中ucenter的机制我已经非常了解，但是仍然琢磨不透，中间的焦虑与烦躁在此省略一万字，最终，我得出了惊人的结论，<font color="#ff0000">大家一定要define那个UC_IP为127.0.0.1</font>，尤其是本地测试的时候，我也不知道自己是怎么开窍的，总之设置完这个之后终于user.php被访问到了，有返回的值了，然后一系列的同步登录登出也完成了。</p>
<p>注意：api.php里面的同步函数必须要设置成自己的cookies的名字，不要用原来discuz的那三个cookies。另外由于我用的是ajax，大家知道innerHTML如果包含&lt;javascript&gt;代码，在某些情况下是不会执行的，这也会导致同步登录失败，innerHTML如何执行JS，大家可以百度，办法很多。（我是因为局部刷新，所以输出一堆代码，我把JS那串嵌在中间了，结果他就执行了，所以也没有遇到什么麻烦。）</p>
<p>好了，我现在只是实现了同步的登录登出（注：FF下面可以同步登录，但是无法同步登出，我还在探索中），其他的也要逐步实现，先把这个放上来吧，因为代码还不成熟，所以只挂了康盛给的原始代码，等做完以后再贴出自己的代码。我发现discuz的官方论坛上气氛很不好，调试成功的人不少，但是给出修改后正确代码的却没有，要么就是显摆的，要么就是收费的，回答问题的人也没有，导致每个开发者都要自己好好琢磨一番才能用上，只能说，太不厚道了。 </p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=21</link>
			<title><![CDATA[自己做过的一些PPT模板]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[灌水及其他]]></category>
			<pubDate>Thu,19 Nov 2009 19:46:08 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=21</guid>	
		<description><![CDATA[下周例会又轮到我讲了，才发现这几年做了好多的PPT模板，拿出来晒一晒。基本上都是建筑类的，毕竟是做研究方向的PPT，有些可能是经网上现成模板改动的，我已经不记得了呵呵，如有版权问题请与我联系删除。
<p><a href="http://www.lzy.name/blog/attachments/month_0911/x20091119184634.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/x20091119184634.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/z20091119184940.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/z20091119184940.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/f20091119185537.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/f20091119185537.jpg" /></a></p>
<p>这是做数据挖掘专题时候做的PPT, 自我感觉不错，动画也很流畅，但是整体感觉有种说不出的别扭。怎么说呢，好像很刻意地将很多好的家具摆放在一起装饰房间，但是整个房间看上去却不是那么自然，是的，不够自然。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/62009111918589.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/62009111918589.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/62009111919018.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/62009111919018.jpg" /></a></p>
<p>这是根据某PPT模板改编的，很多动画效果很好，可惜图片展示不出来，左边menu右边内容的模式倒是很像一般的小网站呵呵，这样就少了菜单页，而且进度很醒目。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/u2009111919747.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/u2009111919747.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/s20091119191156.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/s20091119191156.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/a20091119191331.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/a20091119191331.jpg" /></a></p>
<p>PPT的字体一直很让人头疼，可能是因为一般的文本框不能锐化，锐化过的框好像需要手工调整长短？我总是调整字体，但从来没有感觉舒服过。这个cover还可以，里面就极一般了。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/m20091119192112.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/m20091119192112.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/520091119192710.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/520091119192710.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/a20091119192724.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/a20091119192724.jpg" /></a></p>
<p>该PPT本人认为最帅的地方是我加入了flash和宏，用加入flash的方式可以显示当前时间和PPT持续时间，让观众做到心中有数，不至于感到会议将遥遥无期呵呵。另一种方法就是显示当前页数和总页数，那个很容易实现。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/t2009111919372.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/t2009111919372.jpg" /></a></p>
<p>这是我为教研室做的PPT模板，内页不好看就不上传了呵呵。外页是不知道从哪拷来的动态图片，比较炫。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/s2009111919405.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/s2009111919405.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/e20091119194018.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/e20091119194018.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/120091119194030.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/120091119194030.jpg" /></a></p>
<p>这是非常年轻时候做的东西，改的网上的模板，太幼稚了呵呵，那时候还比较喜欢浮躁华丽的东西。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/w2009112217310.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/w2009112217310.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/j20091122173222.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/j20091122173222.jpg" /></a></p>
<p><a href="http://www.lzy.name/blog/attachments/month_0911/l20091122173354.jpg" target="_blank"><img style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 366px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="" src="http://www.lzy.name/blog/attachments/month_0911/l20091122173354.jpg" /></a></p>
<p>这是上GIS课时候做的课件。没有什么特别的，改的网上的模板，感觉很大。。。。</p>
<p>暂时就找到这么多吧，感觉还有一些，被我不知道抛弃到哪个角落里面去了。有机会再更新。很怀念本科的时候，有时间有精力并且喜欢新鲜的东西，毕业设计答辩的时候，以及研究生面试的时候，用flash做了带倒计时的PPT展示，非常好看呵呵（虽然用的是flash自带的模板）。最近受了一些挫折，感觉心态明显悲观起来，这样不好，要相信自己还是能找到工作的，要相信自己不会成为大龄无业女青年的。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=20</link>
			<title><![CDATA[CodeIgniter应用中的若干备忘问题]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[网站技术]]></category>
			<pubDate>Sun,20 Sep 2009 12:08:15 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=20</guid>	
		<description><![CDATA[<p>一直希望应用一个优秀的php框架来制作一个简洁高效的网站，想不到竟然实现了，而且异常顺利。CI确实很好很强大，尤其是伪静态的网址，帅~~~下面把一些心得记录下来，以飨各位有需要的同学。</p>
<p>应用CodeIgniter制作了一个简单的网站（<a href="http://www.winddut.com">www.winddut.com</a>），版本1.7.1，虽然只是试水，但是仍然有满满的成就感。自己第一次做了一个正规的php网站，第一次做了没有后缀网址的网站，第一次真正地学会了做网站。天知道这一年的时间里面我都经历了哪些挫折，几乎没有一件事情是成功的。而我在准备GT的紧张空档里面竟然还连做了两个网站，还都尝试了.net和php的两种新技术，我想我一定是疯了。这就能解释为什么我的英语总是考不好了。当然，今天很幸运，终于发表了一篇土木专业领域的论文，而这个网站也终于正式上线了。</p>
<p>1. CI中的controller都应当小写。刚开始为了区分单词，把第二个单词大写了，结果就是不认default_controller。事实证明这是错误的。放到linux下面就不灵了，应该全部小写，如果你大写了，CI会认为这是libraries里面的东西。不管怎样都应该全部小写，至少可以避免linux下区分大小写的问题。</p>
<p>2. 分页的问题。CI的官方论坛下提供了一些源代码，怎样写分页函数我就不多说了，可以直接看高手的。关键是传递页面参数的时候，不要忘了修改segment。一开始怎么传都不对，后来才想起来我的网址已经是localhost/codeigniter/aaa/bbb/3/10了，这样segment也要相应改变。分页参数在第几个/后，他就是uri-&gt;segment(几)。如果是搜索之后的分页，那么$config['total_rows']就不是count_all了，而是加入where之后的query的记录数。想起来倒是有一个问题还没解决，就是在你点search之后，一般需要用JS把网址转换成CI固有的模式，但是怎样使这个js生成的网址包含到site_url中，我没有解决，只能手工了（仔细想想还是挺简单的呵呵，自己造网址不用site_url）。</p>
<p>3. MVC模式我已经比较适应了。将页面都放在view中，控制语句放在controller中，而函数放在model中。刚开始有很多人和我一样想要在view或者control中加一些语句，只能说，不行，也不规范。最好的办法是写成helper，如果是数据库的二次调用的话，可以用inner join合并。</p>
<p>4. htaccess的问题。很多人肯定和我一样，一开始接触的时候就是感兴趣怎样可以去掉index.php。虽然网上已经泛滥了，但是我再写一次吧。其实就两个工作，第一，在根目录写一个.htaccess的文档，第二，开启apache中的rewrite模块。</p>
<p>1）htaccess的写法很多。这是基于你对CI各层目录的安排决定的。我的安排：除了application中的内容外。将其他所有东西放在根目录下的www目录下，其中图片放在www/images/下，flash放在www/flash/下，xml放在www/xml下，js放在www/js下。。。。总之全堆在www里面。所有views在title下面加上&lt;base href=&quot;&lt;?=base_url()?&gt;&quot; /&gt;这句话，系统就能识别你的根目录了，所有链接改成site_url()就可以保证路径不会出错了。于是，我的htaccess是这样的：</p>
<p>RewriteEngine on&nbsp;&nbsp; </p>
<p>RewriteCond $1 !^(index\.php|www|uploadfiles|robots\.txt)&nbsp;&nbsp; </p>
<p>RewriteRule ^(.*)$ /index.php/$1 [L] [L]</p>
<p>第一行是将rewrite打开，第二行是不rewrite的例外，包括index.php本身，www目录，uploadfiles（这个参见5），还有robots搜索，第三行自然就是将index.php隐藏的rewrite规则了，即剩下的网址由于原来都是localhost/codeigniter/index.php/aaa/bbb的模式，现在可以去掉index.php了。而www下的网址不涉及index.php，用不到这个规则，所以要排除。</p>
<p>2）首先找到apache下面的http.conf，路径是apache的conf目录下。找到这一行：LoadModule rewrite_module modules/mod_rewrite.so，将前面的#去掉，也就是说开启这个module。另外需要找到rewrite的目录行，将AllowOverride设置为All，其实就是roadmodule下面的那个directory.</p>
<p>&nbsp;&nbsp;&nbsp; # AllowOverride controls what directives may be placed in .htaccess files.<br />&nbsp;&nbsp;&nbsp; # It can be &quot;All&quot;, &quot;None&quot;, or any combination of the keywords:<br />&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp; Options FileInfo AuthConfig Limit<br />&nbsp;&nbsp;&nbsp; #<br />&nbsp;&nbsp;&nbsp; AllowOverride All</p>
<p>3）在CI的config目录下的config.php中，将$config['index_page'] = &quot;index.php&quot;改为$config['index_page'] = &ldquo;&rdquo;，这样就大功告成啦！！不用输入index.php也可以访问了。其实更关键的是你的各个目录的路径安排。</p>
<p>5.FCKEditor的问题。应该说我在应用的时候没有遇到任何麻烦，除了上传时候的路径让我一顿好找。我觉得设置成根目录下的/uploadfiles是不错的选择，当然别忘了在htaccess中把uploadfiles也放在不rewrite的队伍中。因为我现在的习惯是所有的文件编码都设置成utf-8，所以网上经常说的乱码的现象没有遇到。</p>
<p>基本上就是这些基本的问题了，我做的其实就是简单的企业网站，没有高级应用，所以也没有遇到更复杂的问题。等考完GT可以尝试做一个更复杂的网站，和AJAX结合后再写一些心得。下次要再做这样的CMS，后台直接搞定，省了不少时间。而且对于我这样的PHP烂人来说，CI帮我解决了很多安全问题，同时也提高了效率。</p>
<p>有点过度兴奋了，写得超级乱，我自己都不愿意回过头去细细检查了，具体问题可以再联系我，只要我能解答。最后上传一个验证码的helper吧，版权归CI论坛上的同学所有，我只是转一下，顺便写一下用法。。。</p>
<p><a href="http://www.lzy.name/blog/attachments/month_0909/4200992185227.rar"><img style="MARGIN: 0px 2px -4px 0px" border="0" alt="" src="http://www.lzy.name/blog/images/download.gif" />点击下载此文件</a></p>
<p>1）首先在controller中引用getcode_helper.php， $this-&gt;load-&gt;helper('getcode');</p>
<p>建立一个function比如</p>
<p>function createcode()<br />{<br />&nbsp;&nbsp;&nbsp; code();<br />}</p>
<p>2）验证码图片链接地址：&lt;img id=&quot;codeimage&quot; src=&quot;&lt;?=site_url('controller路径/createcode')?&gt;</p>
<p>3）表单提交时验证函数：</p>
<p>function seccode_check($str)<br />{<br />&nbsp;&nbsp;&nbsp; if(chk_code($str))<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return TRUE;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp; {&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return FALSE;<br />&nbsp;&nbsp;&nbsp; }<br />}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=19</link>
			<title><![CDATA[崩溃]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[灌水及其他]]></category>
			<pubDate>Mon,11 May 2009 09:37:11 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=19</guid>	
		<description><![CDATA[<p>研究室的域名快到期了，赶紧跑去续费，结果一不留神，把花一块钱注册着玩的另一个域名给续上了。</p>
<p>现在好了。原先的域名续不上，另外一个域名续到了2010年11月。。。。本来是想做一个减肥网站的~~</p>
<p>这一年多里，暂时委屈研究室域名改为：<a href="http://www.loseurweight.cn">http://www.loseurweight.cn</a>了。。。污污污。。。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=18</link>
			<title><![CDATA[终于也在大工首页秀了一把]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[灌水及其他]]></category>
			<pubDate>Sun,29 Mar 2009 14:54:10 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=18</guid>	
		<description><![CDATA[<div style="TEXT-ALIGN: center"><a href="http://www.lzy.name/upload/pic/2009032429894079.jpg" target="_blank"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 350px; HEIGHT: 440px; BORDER-RIGHT-WIDTH: 0px" alt="大连理工大学科学发展观专题" src="http://www.lzy.name/upload/pic/2009032429894079.jpg" /></a></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个网站做得很仓促，一开始我是拒绝的，可是一时间找不到合适的替代人选，只好趁着夜黑风高赶了几个通宵，终于完工了。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也不知道自己在忙些什么，拒绝了好多网站，理由都是很忙。可问题是现在论文憋不出，工作没找到，考试临近了却也没准备好。更讽刺的是，无心插柳的活却偏偏得到了重视，史无前例地挂在学校首页，还用红字突出显示了出来。其他重要的网站上也加上了相关链接。</p>
<div style="TEXT-ALIGN: center"><a href="http://www.dlut.edu.cn" target="_blank"><img alt="大工首页" src="http://www.lzy.name/taobao/dlut.jpg" border="0" /></a></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我当然知道这不是我的网站的功劳，但仍然觉得很兴奋，算是给平淡的生活泛一点小波。网站底部署了自己的名字，老师完全没有意见。很好，不知道lzy.name的pr会不会因此摆脱0的尴尬~~~</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .net总算是会用了，其实也有以项目代练的意思，很好。其实一直想写一些论文，免得年底毕不了业。但一来自己太懒了，二来总觉得即使写出什么，也无非是给cnki制造100多k的冗余信息。sigh，又笨，又不肯努力，算了，还是赶紧找到一份糊口的工作要紧，嘻嘻。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=17</link>
			<title><![CDATA[基于B/S架构的建设项目管理解决方案的探讨]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[学术研究]]></category>
			<pubDate>Tue,11 Nov 2008 17:26:04 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=17</guid>	
		<description><![CDATA[<p>一直很想写一些东西，来纪念我这一年的研究生生活，可惜竟然发现一无所获，不得不承认，人生最美好的时刻，被我浪费了。</p>
<p>接下来fighting。。。其实有很多的思想，主要还是集中在建设项目管理集成自动化、可视化、智能化等方面。当然是要基于B/S的。今天教研室的学术讨论由我主持，我大大夸奖了一番B/S的优势，当然一方面大多数人认同这个事实，另一方面，我只会B/S。</p>
<p>建设项目工程管理已经从单一的局部管理转向全面管理，如果要开发有实际意义的管理系统，那么必然会是一个庞大的工程。之前我曾经试图研究web3D技术，但看多了发现他的效果似乎没有flash来得平滑与流畅？当然也有可能是我的显卡太破。webGIS是一个不错的选择，一定要整合进我的小系统里面。在网上曾经看到有人骂E都市之类的网站没有技术含量，曾经我也信以为真，但现在看来实在是幼稚，除了3dmax制图，开源的js框架之外，如何切图进而整合，如何建立坐标，如何增加公交查询等等，都是让人头疼的问题。但既然我选择了它，不妨下定决心研究一番。</p>
<p>另一方面系统开发的语言也是一个不小的问题，表面上asp,php,c#.net都曾经被我应用于各种网站之中，但深入的研究实在有限。国内一般的观点都认同.net+mssql和j2ee+oracle这样的组合，但事实上开源的php确实不可小视，这点国外的讨论更为激烈一些，我也更愿意看国外的debate。php5已经融入了众多面向对象的思想，何况有两个不被国内重视的问题却常常被老外提及，一个是licencing, 另一个是server platform,粗略看了一下，一款visual studio 2005大概13500，其实也不多啦，可惜微软树敌太多.net暂时也只能应用于windows平台吧。后来思考了很久，这样的讨论不会有绝对的结论，把哪个研究透彻了都会有收获。于是决定好好看看php而不是.net，也有人拿就业来说事，不过那不是我想考虑的问题。php加上pear啦，zend啦，smarty啦，应该也会有不错的效果，sina股票之类的栏目也都是利用php制作的，好吧，我就是在为我决定学习php寻找支持的理由。</p>
<p>当然这些毕竟是我的爱好，而不是我的专业，但却可以将两者揉合在一起做一些事情。指望三峡看一眼我的系统是没戏了，不过可以煽动别的小公司，我觉得和被三峡采用的成就感是相同的。就造价管理而言，就有如下事情可做：</p>
<p>1. 招投标管理系统。利用internet，招标方，招标代理机构，投标方可以随时随地查看该系统，上传相关文档，如果数据结构合理而且统一，在清单计价的模式下还可以导入相应的数据。当然资格预审之类的问题不在话下。评标阶段，符合性评审，技术性评审和商务性评审可以一个不落地用相应的模型实现，可以综合打分。最重要的是，可以过滤一些不符合要求的标书，或者说有重大偏差的标书，比如不合格的不均衡报价法，可以设定参数，工期的前20%的工程结算费用如果超过50%，可以认定为不合格的不均衡报价等等，当然这些模型还未成型，只是一种思想。</p>
<p>2.webgis在项目建设管理过程中的运用。文献库里面的文献不要太多喔，不过实际的系统我是一个没看见，倒是E都市和都市圈之类的网站给了人们很好的启迪，我觉得也是很直观也很实用的模式。比如搜索区域，坐标点和路线等等。至于如何与系统相结合，这是一个问题，更重要的是，我觉得他更适合工程项目在使用期的管理，建设期的地图其实时刻在变化着，对于维护而言工作量很大。</p>
<p>3.索赔管理系统。计算机的一个优势是他的客观公平性，我曾经举例过，我制作的在线考勤系统，哪怕晚到一秒钟也会当做迟到处理。这种看似冷酷的方式其实在项目管理过程中却很适用。国家和地方出台的各类法规，方针和政策不少，可是实际的执行效果可能并不好。如果计算机参与项目过程管理，效果应该是&ldquo;嗷嗷的&rdquo;。以一个简单的流程为例，承包商登录系统申请合同变更，需要提交变更原因，在FIDIC合同条款下，如果是因为发现文物而造成的损失，业主方应当负责赔偿窝工费用并延长合同工期，此时系统可以填写工期数和费用，如果是因为遭受了异常不利的气候条件，那就只能索赔工期，费用这一栏是不允许填写的。因为这都是合同的规定，计算机很好地执行了，承包商是没有权利进行更改的。之后监理单位审核工程量，一旦通过，业主方便能够查看到变更申请，从而进行处理。当然网络化的办公仍然是没有法律效力的，为了符合纸质化办公的需求，还需要加一个过渡环节，比如申请内容可以生成word文档，可以打印，然后签字盖章生效。当然计算机对于时间的限制也能很好地执行。总体来说，这一套流程肯定能够提高合同变更的工作效率，而且通过internet，各方都可以查看到相关信息，使工程管理进一步集成化与透明化。</p>
<p>4.另外就是一些简单的oa系统或者mis系统所实现的日常办公的功能，当然这些功能是必要的，是办公自动化的良好体现。不再赘述。</p>
<p>土木工程建设项目管理是一个庞大的系统工程，可以研究的方面很多，这也是我20天来开始思考的成果，暂且记录下来，也当作标记，希望本月能够有所收获。如果有人不小心看到了这篇文章，也权当抛砖引玉，希望能够共同探讨，提高，谢谢。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=16</link>
			<title><![CDATA[当Ajax send&amp;return失败时utf-8编码的原因分析]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[网站技术]]></category>
			<pubDate>Sun,28 Sep 2008 18:00:26 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=16</guid>	
		<description><![CDATA[<p>新手，接触不久。制作网站，在本地好好的，传到服务器上就不好用了。使用的是utf-8的编码，具体症状表现为ajax不作为。经过了一夜的测试，觉得哪里都没有问题。古狗一下，才发现是这样：</p>
<p>当你post或者get数据给文件1时，文件1的开头需要加上这样一句话header(&quot;Content-type: text/css; charset=UTF-8&quot;);</p>
<p>这就是解决方案。使所有send和return的数据都统一为utf-8编码，与我之前提到的XML文件的utf-8编码有异曲同工之处，相信之后如果遇到类似的问题，就不再是问题了。</p>
<p>解决起来看似简单，但是让我想起了要价一万美元的那根粉笔线。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.lzy.name/blog/default.asp?id=15</link>
			<title><![CDATA[基于XML的二级联动菜单及其在Ajaxtab中的应用]]></title>
			<author>hellolzy@vip.qq.com(admin)</author>
			<category><![CDATA[网站技术]]></category>
			<pubDate>Sun,28 Sep 2008 17:47:05 +0800</pubDate>
			<guid>http://www.lzy.name/blog/default.asp?id=15</guid>	
		<description><![CDATA[<p>搜索XML+二级联动，会有基于XML的一些二级联动菜单的现成源码。在这里不一一贴过了。</p>
<p>其实用XML读取与用数据库读取的原理是差不多的，当然XML从客户端读取，第一次访问网站不明显，此后便会有速度上的优势了，当然也节省了服务器的资源。有一点需要注意，即编码问题。一般我们采用后台生成XML文件的形式存储数据，如果是UTF-8编码，除了加上&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;这句之外，生成XML文件的页面也应加上&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;之类的代码~~</p>
<p>phpx上有一段源码，先初始化表单，然后在body中onload，可是如果表单文件都是include进来的话，在body中onload似乎不太方便，不妨用window.onload使代码独立于body之外。当然，phpx上的源码给了我们很大的便利，可以在此基础上做多方面的加工。比如增加为无限级的联动，比如做一些细节上的改动。这样，一个像样的联动表单就生成了。</p>
<p>可是问题来了。一旦表单应用在Ajaxtab中，如果采用的是innerHTML的形式读取的代码，那么load的过程中是不会执行JS函数的，除非用其他方式触发load。这个问题苦恼了偶狠久。思考良久，决定采用比较笨的折中办法，即XML中只存储子分类，而联动菜单的第一级菜单仍然从数据库中读取，这样第一级分类下的目录可以显示，而onchange之后即可触发js函数。如果有同学有更好的解决方案，欢迎指点一二，非常感谢！！</p>]]></description>
		</item>
		
</channel>
</rss>
