<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[原创]用zend for eclipse格式化Php代码。。。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 13 Feb 2009 09:20:30 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;开发代码结束或者基本结束后，往往由于前面时间紧张写的代码可能不符合公司的规范，所以需要对代码加以格式化，也方便阅读等等：<br/>打开zend for eclipse6.1,当然是D版，然后选择以前开发的代码工程，然后，preferences-『窗口』-〉 『首选项』如图：<br/><br/><br/><br/>1.选择php的格式模板，如何缩进等，花括号如何摆放etc。。。<br/><br/><br/><br/>在工程上选择需要格式的几个php目录（同时选择php文件可能出不了source的菜单），用菜单source里面的format，即可格式化目录里面的php文件！<br/><br/><br/><br/>ctrl+shift+f对代码进行格式化<br/><br/>如图：<br/>[img]./pic/zend4eclise/zend for eclipse format set.bmp[/img]<br/>[img]./pic/zend4eclise/zend for eclise format dir.jpg[/img]<br/><br/><br/><br/>在通过zend for eclipse6.1.0格式化代码发现有两个配置文件在zend for eclipse里面换行而在editplus里面没有换行，程序在linux下执行正常，估计是在格式化时候出现换行符&#92;n&#92;t和&#92;t造成，经过查问题发现出现了如下字符：'OA'(16进制换行)！<br/>于是我们参看如下文章：<br/>小议linux与windows回车换行问题<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>所谓回车、换行这些控制符，都是从以前的电传打字机的控制命令继承下来的。回车就是打印头复位，换行就是走纸。 Dos/Windows和Unix/Linux对回车、换行的理解差别就在于Dos/Windows认为0d=0d0a=0a，而Unix/Linux坚持沿用电传打字机的工作方式（这个其实是比较正确的）。<br/><br/>所以在回车换行在Linux中是"0d",在Windows中是"0d0a".我们可以通过下面的程序测试一下：<br/><br/><br/><div class="code">#define MAX_LENGTH 15536<br/>#include &lt;iostream&gt;<br/>#include &lt;string&gt;<br/>#include &lt;fstream&gt;<br/><br/>using namespace std;<br/><br/>string delEnter(const string src) // 过滤掉串中的回车换行符<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;string des;<br/>&nbsp;&nbsp;&nbsp;&nbsp;for(int i = 0; i &lt; src.length(); i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>char tempChar = src&#91;i&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( tempChar!=10 &amp;&amp; tempChar!=13)<br/>&nbsp;&nbsp;&nbsp;&nbsp;des.append(1,tempChar);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; return des;<br/>&#125;<br/><br/>int main()<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char html&#91;MAX_LENGTH&#93; = &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FILE *fp = fopen(&quot;Linux.txt&quot;, &quot;rb&quot;); //FILE *fp = fopen(&quot;Windows.txt&quot;, &quot;rb&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char buf&#91;16384&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (fgets(buf, 16384, fp))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcat(html, buf);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcat(html,&quot;&#92;0&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string s(html);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;string is: &quot; &lt;&lt; s &lt;&lt; endl;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;The size of string is: &quot; &lt;&lt; s.length() &lt;&lt; endl;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;after del string is: &quot; &lt;&lt; delEnter(s) &lt;&lt; endl;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &quot;The size of string is: &quot; &lt;&lt; delEnter(s).length() &lt;&lt; endl;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose(fp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/>&#125;</div><br/><br/>程序中文件Linux.txt是从Linux系统中copy过来的。<br/>我们可以通过这个程序观察到，通过过滤掉回车换行符，Linux文件中的字符数的减少等于其行数，而<br/><br/>Windows中等于其行数的两倍。但有一个问题要注意，程序中行：<br/>FILE *fp = fopen("Linux.txt", "rb");<br/>不能写成：<br/>FILE *fp = fopen("Linux.txt", "r");<br/>后者默认的文件打开方式是文本方式，这时系统自动对文本进行了转换，就不能得到上述的结论。<br/><br/>不过大家可以在Windows下用工具HexWorkShop，在Linux下用命令hexdump直接观察具体的二进制代码，更为直接。<br/>我的结果发现如下：0D 0a 0a od 0a 0d 0a<br/>删除上面的，显示马上正常！<br/><br/><br/><br/><br/><br/>解决方法：<br/>windows换行是&#92;r&#92;n，十六进制数值是：0D0A。<br/>LINUX换行是&#92;n，十六进制数值是：0A<br/>所以在linux保存的文件在windows上用记事本看的话会出现黑点，我们可以在LINUX下用命令把linux的文件格式转换成win格式的。<br/>unix2dos 是把linux文件格式转换成windows文件格式<br/>dos2unix 是把windows格式转换成linux文件格式<br/>总结：<br/>在zend for eclipse格式化代码的时候，会按照Linux换行符去格式化代码，但是显示的时候会对linux和windows的代码进行兼容，但是editplus在发现windows和linux的回车的时候会出现按照windows的回车去处理问题，导致windows的换行换了，但是linux的换行没有换，出现editplus出现显示问题。。<br/><br/><br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [原创]用zend for eclipse格式化Php代码。。。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>