<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.motian.org" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/motian" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 02 Oct 2011 01:34:33 GMT</lastBuildDate><title>漠天博客</title><description>学习和研究操作系统，致力于开源项目的发展，开发基于网络云的开放式、共享式的操作系统的技术性博客！</description><image><url>http://www.feedsky.com/feed/motian/sc/gif</url><title>漠天博客</title><link>http://motian.org</link></image><link>http://motian.org</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Sun, 02 Oct 2011 01:38:05 GMT</pubDate><item><title>[转载]浅谈JavaScript编程语言的编码规范</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/562320896/6113216/1/item.html</link><content:encoded>&lt;p&gt;&lt;strong&gt;前言&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;提及C/C++和Java编码规范，相信许多工程师并不生疏。但说到 JavaScript 语言的编码规范，也许您会忍俊不禁。JavaScript 不是语法很灵活吗？变量随时用随时可以声明；语句结束符可以不要；字符串和数字也可以相加；参数多一个少一个也不会报错。没错，当您从 C/C++ 和 Java 严格的语法规定之下，转向 JavaScript 语言，会觉得自由了很多，轻松了很多。语法松散是 JavaScript 重要的特征。它灵活易懂，给开发人员带来了很多方便，但如果编写过程中不注意，代码的调试成本和维护成本则会无形地增加。&lt;/p&gt;
&lt;p&gt;JavaScript 编码会随应被直接发送到客户端的浏览器，代码规范不只是代码质量的保证，也影响到产品的长期信誉。希望 JavaScript 编程语言的规范问题也能同样引起更多朋友的关注。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JavaScript 编码规范建议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本文就JavaScript 编码过程中涉及的排版、命名、声明、作用域、及一些特殊符号的使用等方面，根据个人在学习工作中的总结，给出自己的一些建议，并分析其中缘由，以供参考。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JavaScript 文件引用&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JavaScript 程序应该尽量放在 .js 的文件中，需要调用的时候在 HTML 中以 &amp;lt;script src=&quot;filename.js&quot;&amp;gt; 的形式包含进来。JavaScript 代码若不是该 HTML 文件所专用的，则应尽量避免在 HTML 文件中直接编写 JavaScript 代码。因为这样会大大增加 HTML 文件的大小，无益于代码的压缩和缓存的使用。&lt;/p&gt;
&lt;p&gt;另外，&amp;lt;script src=&quot;filename.js&quot;&amp;gt; 标签应尽量放在文件的后面。这样会降低因加载 JavaScript 代码而影响页面中其它组件的加载时间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码排版&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;行长度&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;每行代码应小于 80 个字符。如果代码较长，应尽量选择换行，下一行代码应缩进 8 个空格。这样可以使代码排版整齐，减轻阅读代码的疲劳感。换行缩进 8 个空格可以和代码段的缩进 4 个空格区分开，以增强代码的可阅读性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;行结束&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JavaScript 语句应该以分号结束。但大多数浏览器允许不写分号，只要在本应是分号的地方有一个换行符就行。但是如果代码行较长需要换行的时候，有哪些注意事项呢？换行应选择在操作符和标点符号之后，最好是在逗号','之后，而不要在变量名、字符串、数字、或')' ']' '++' '--'等符号之后换行。&lt;/p&gt;
&lt;p&gt;这样可以有效的防止拷贝、粘贴而引起的错误，并可有效地增强代码的可阅读性。请见清单 1，代码的输出符合我们的期望。但就写法而言，对 valueB 的赋值语句是在变量 valueA 之后进行的换行，这很容易被误解为 valueB=ValueA，给阅读造成障碍。而对 valueC 的复制语句是在'+'之后进行的换行，就容易理解的多。这也是本文所提倡的换行方式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 1. 行结束的位置&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;var valueA = 1;&lt;/li&gt;
&lt;li&gt;var valueB = valueA ///bad&lt;/li&gt;
&lt;li&gt;+1;&lt;/li&gt;
&lt;li&gt;var valueC = valueB + ///good&lt;/li&gt;
&lt;li&gt;valueA;&lt;/li&gt;
&lt;li&gt;alert(valueB); //output: valueB=2&lt;/li&gt;
&lt;li&gt;alert(valueC);//output: valueC=3&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;缩进&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关于缩进的问题，不只是 JavaScript，几乎所有的语言编写的时候，都会提及缩进的问题。缩进几乎是代码编写规范的第一课，是代码可阅读性判断的直接因素。&lt;/p&gt;
&lt;p&gt;代码缩进的好处是不言而喻的，但是对于如何缩进，则没有标准而言。最受欢迎的是方便使用 TAB 键缩进，也有些喜欢用 2 个、4 个、8 个空格进行缩进。这样缩进风格不一，也同样给代码的阅读带来障碍。&lt;/p&gt;
&lt;p&gt;本文提倡用 4 个空格来进行缩进，并在同一产品中采用同一种缩进标准。不支持用 TAB 键进行缩进。这是因为直到现在还没有统一的标准来定义 TAB 键所代替的空白大小，有些编辑器解析为 4 个空格大小，有些则解析为 8 个。因而用不同的编辑器查看代码，可能造成格式混乱。当然 TAB 简单易用，为解决这个问题，建议在设置开发环境时，将编辑器里的 TAB 快捷键重新设置为 4 个空格。据了解 Eclipse, Vi, Nodepad++，Editplus, UltraEdit 等流行的编辑器，均提供了此功能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注释&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;代码中的注释很重要，自然也是毋庸置疑的。通常我们会强调代码中注释数量的多少，而轻视了对注释质量的提高。编码是及时添加注释，会给后续代码的维护人员带来很大的便利。但是如果注释不注意更新，或者由于拷贝、粘贴引起的错误的注释，则会误导阅读人员，反而给阅读带来障碍。&lt;/p&gt;
&lt;p&gt;除了注释要 及时更新外，我们还应对注释的内容要特别关注。注释要尽量简单、清晰明了，避免使用含混晦涩的语言，同时着重 注释的意义，对不太直观的部分进行注解。请见清单 2。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 2. 有意义的注释&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;//following section is used to initialize golbal variables (good)&lt;/li&gt;
&lt;li&gt;var valueA = 0; //initialize valueA to be sero (bad)&lt;/li&gt;
&lt;li&gt;var valueB = 1;&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;//call f1 function after waiting for 50 seconds. (good)&lt;/li&gt;
&lt;li&gt;setTimeout(f1,50000); //set timeout to be 20s (copy error)&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;这样的注释方式在 JavaScript 代码中经常见到。&quot;initialize valueA to be sero&quot; 这样的注释有什么用呢？难道阅读程序的工程师从&quot;var valueA = 0;&quot;复制语句中看不出来么？&quot;set timeout to be 20s&quot;这条注释，不只是因拷贝、粘贴引起的时间大小的错误，同时也误导了程序员对这条语句的理解。setTimeout() 函数的作用并非是设置函数执行的超时时间，而是等待一定时间后执行所调用的函数，害人匪浅呀。这样的注释内容宁可删掉。&lt;/p&gt;
&lt;p&gt;此外，JavaScript 的注释有两种&quot;//&quot; 和&quot;/* .... */&quot;，建议&quot;//&quot;用作代码行注释，&quot;/* .... */&quot;形式用作对整个代码段的注销，或较正式的声明中，如函数参数、功能、文件功能等的描述中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;标识符命名&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JavaScript 中的标识符的命名规则：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;• 以字母、下划线'_'或美元符号'$'开头&lt;/p&gt;
&lt;p&gt;• 允许名称中包含字母，数字，下划线'_'和美元符号'$'&lt;/p&gt;
&lt;p&gt;• 区分大小写&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;变量、参数、成员变量、函数等名称均以小写字母开头，构造器的名称以大写字母开头。下划线'_'开头的变量一般习惯于标识私有 / 局部成员。而美元符号'$'开头的变量习惯于标识系统相关，比如系统进程等。应避免用下划线'_'或美元符号'$'来命名标识符。尽可能地降低代码的阅读负担。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;声明&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;变量的声明&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;尽管 JavaScript 语言并不要求在变量使用前先对变量进行声明。但我们还是应该养成这个好习惯。这样可以比较容易的检测出那些未经声明的变量，避免其变为隐藏的全局变量，造成隐患。&lt;/p&gt;
&lt;p&gt;在函数的开始应先用 var 关键字声明函数中要使用的局部变量，注释变量的功能及代表的含义，且应以字母顺序排序。每个变量单独占一行，以便添加注释。这是因为 JavaScript 中只有函数的 {} 表明作用域，用 var 关键字声明的局部变量只在函数内有效，而未经 var 声明的变量则被视为全局变量。我们来看下清单 3。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 3. 局部变量声明&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;var valueA = &quot;a&quot;;&lt;/li&gt;
&lt;li&gt;var valueB = &quot;b&quot;;&lt;/li&gt;
&lt;li&gt;function f1() {&lt;/li&gt;
&lt;li&gt;var valueA = &quot;c&quot;;&lt;/li&gt;
&lt;li&gt;alert(&quot;valueA=&quot;+valueA); //output: valueA=c&lt;/li&gt;
&lt;li&gt;valueB = &quot;d&quot;;&lt;/li&gt;
&lt;li&gt;alert(&quot;valueB=&quot;+valueB); //output: valueB=d&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;f1();&lt;/li&gt;
&lt;li&gt;alert(&quot;valueA=&quot;+valueA); //output: valueA=a&lt;/li&gt;
&lt;li&gt;alert(&quot;valueB=&quot;+valueB); //output: valueB=d&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;从上例的输出惊奇地发现，用 var 声明过的变量 valueA 和没有声明的变量 valueB 是有区别的。特别需要注意的是，在函数内部用 var 声明的变量为局部变量，这样可以有效地避免因局部变量和全局变量同名而产生的错误。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;函数的声明&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;函数也应在调用前进行声明，内部函数应在 var 声明内部变量的语句之后声明，可以清晰地表明内部变量和内部函数的作用域。&lt;/p&gt;
&lt;p&gt;此外，函数名紧接左括号'('之间，而右括号')'和后面的'{'之间要有个空格，以清楚地显示函数名以其参数部分，和函数体的开始。若函数为匿名 / 无名函数，则 function 关键字和左括号'('之间要留空格，否则可能误认为该函数的函数名为 function。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 4. 内部函数声明&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;var innerA = 1;&lt;/li&gt;
&lt;li&gt;function outF() {&lt;/li&gt;
&lt;li&gt;var innerA = 2;&lt;/li&gt;
&lt;li&gt;function _inF() {&lt;/li&gt;
&lt;li&gt;alert(&quot;valueA=&quot;+innerA);&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;_inF();&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;outF(); //output: valueA=2&lt;/li&gt;
&lt;li&gt;_inF(); //error: innerF is not defined&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;从清单 4 的输出可以看出，inF() 函数仅在 outF() 函数的内部生效，局部变量 innerA 对内部函数的作用域生效。这样的编码方式使得变量和函数的作用域变得清晰。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;语句&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于简单语句而言，需要提及的仍然是分号必要性，同时，一行最多有一个语句。如果一个赋值语句是用函数和对象来赋值，可能需要跨多行，一定切记要在赋值语句末加上分号。&lt;/p&gt;
&lt;p&gt;这是因为 JavaScript 中，所有表达式都可以当语句，遇换行符时会解析为表达式的结束，此时不规范的换行和分号的丢失，可能引入新的错误。&lt;/p&gt;
&lt;p&gt;对于复合语句，if, for, while, do, switch, try … catch 等代码体，函数定义的函数体，对象的定义等都需要放在花括号'{}'里面。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;• '{' 应在行末，标志代码块的开始。&lt;/p&gt;
&lt;p&gt;• '}' 应在一行开头，标志代码块的结束，同时需要和'{'所在行的开始对齐，以表明一个完整的复合语句段。这样可以极大地提高代码的可阅读性，控制逻辑能清晰地表现出来。&lt;/p&gt;
&lt;p&gt;• 被包含的代码段应该再缩进 4 个空格。&lt;/p&gt;
&lt;p&gt;• 即使被包含的代码段只有一句，也应该用花括号'{}'包含。尽管不用花括号代码也不会错，但如若需要增加语句的话，则较容易因花括号遗漏而引起的编译错误或逻辑错误。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;return语句在使用时也需慎重，如果用表达式的执行作为返回值，请把表达式和 return 放在同一行中，以免换行符被误解析为语句的结束而引起返回错误。return 关键字后若没有返回表达式，则返回 undefined。构造器的默认返回值为 this。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 5. return 表达式&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;function F1() {&lt;/li&gt;
&lt;li&gt;var valueA = 1;&lt;/li&gt;
&lt;li&gt;var valueB = 2;&lt;/li&gt;
&lt;li&gt;return valueA + valueB;&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;function F2() {&lt;/li&gt;
&lt;li&gt;var valueA = 1;&lt;/li&gt;
&lt;li&gt;var valueB = 2;&lt;/li&gt;
&lt;li&gt;return&lt;/li&gt;
&lt;li&gt;valueA + valueB;&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;alert( F1() ); //output: 3&lt;/li&gt;
&lt;li&gt;alert( F2() ); //ouput: undefined&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;在清单 5 中显示了因返回表达式没有和 return 关键字放在同一行而引起的返回错误，需重视。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;特殊符号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;空白符&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;适当的空白行可以大大提高代码的可阅读性，可以使代码逻辑更清晰易懂。同时，在表达式中适当的留空白，也会给代码的阅读带来方便。&lt;/p&gt;
&lt;p&gt;关键字的后面如有括号，则最好在关键字和左括号'('之间留空白，如 for, if, while 等。而函数名和括号之间则不宜留空白，但若是匿名函数，则必须在 function 和左括号'('之间留空白，否则，编辑器会误认为函数名为 function。&lt;/p&gt;
&lt;p&gt;在表达式中，二元运算符 ( 除左括号'('，左方括号'['，作用域点'.') 和两个操作数之间最好留空白。一元运算符（若不是词 typeof 等）和其操作数之间不宜留空白。&lt;/p&gt;
&lt;p&gt;逗号','的后面需要留空白，以显示明确的参数间隔，变量间隔等。&lt;/p&gt;
&lt;p&gt;分号';'之后通常表明表达语句的结束，而应空行。在 for 的条件语句中，分号之后则应该留空白。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;{ } 和 [ ]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 JavaScript 中，如需定义空对象和空数组，通常很自然地想到用 new Object() 和 new Array() 的方法。其实花括号'{}'和方括号'[]'可以直接用来定义一个空对象和一个空数组。这种书写方法可以使代码看起来简单易懂。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;== 和 ===&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;判断&quot;逻辑等&quot;在代码里太平常的不过事情了，但 JavaScript 与其他熟知的编程语言不同的是，除了可以使用两个等号'=='来作判断以为，还可以使用三个等号'==='来进行逻辑等判断。两者的不同是'=='作逻辑等判断时，会先进行类型转换后再进行比较。'==='则不会。因而，'=='进行的判断结果可能产生偏差。'!='与'!=='的区别亦是如此。本文提倡尽量使用'==='来进行逻辑等的判断，用'!=='进行逻辑不等的判断。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 6. === 的使用&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;var valueA = &quot;1&quot;;&lt;/li&gt;
&lt;li&gt;var valueB = 1;&lt;/li&gt;
&lt;li&gt;if ( valueA == valueB) {&lt;/li&gt;
&lt;li&gt;alert(&quot;Equal&quot;);&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;else {&lt;/li&gt;
&lt;li&gt;alert(&quot;Not equal&quot;)&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;//output: &quot;Equal&quot;&lt;/li&gt;
&lt;li&gt;if ( valueA === valueB) {&lt;/li&gt;
&lt;li&gt;alert(&quot;Equal&quot;);&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;else {&lt;/li&gt;
&lt;li&gt;alert(&quot;Not equal&quot;)&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;li&gt;//output: &quot;Not equal&quot;&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;清单 6 中，valueA 和 valueB 两个变量的值显然是不相等的，起码 valueA 是个字符串，而 valueB 是一个数字。但用'=='进行判断是，程序却输出相等的字样。这是因为编译器对两个变量进行比较时，因为他们的类型不同，而自动地将 valueB 转换成字符串，而后再和 valueA 进行比较的。用'==='得到的判断结果正和预期的结果相符。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;加号'+'也同样是程序员所熟知的操作符之一。JavaScript 和其他编程语言不同的是，在 JavaScript 中，'+'除了表示数字值相加，字符串相连接以外，还可以作一元运算符用，把字符串转换为数字。因而如果使用不当，则可能与自增符'++'混淆而引起计算错误。这一点，在清单 7 中可以清楚地看出。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;清单 7. 巧用 + 号&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt;&lt;/li&gt;
&lt;li&gt;var valueA = 20;&lt;/li&gt;
&lt;li&gt;var valueB = &quot;10&quot;;&lt;/li&gt;
&lt;li&gt;alert( valueA + valueB); //ouput: 2010&lt;/li&gt;
&lt;li&gt;alert( valueA + (+valueB)); //output: 30&lt;/li&gt;
&lt;li&gt;alert( valueA + +valueB); //output:30&lt;/li&gt;
&lt;li&gt;alert( valueA ++valueB); //Compile error&lt;/li&gt;
&lt;li&gt;&amp;lt;/script&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本文就 JavaScript 代码的排版、命名、声明、语句、和一些特殊字符的使用等方面，谈了自己对 JavaScript 编程规范的建议。此外，还有许多方面需要深入了解研究，如 with, eval 语句和 this 对象的使用等等。我们在认识其普遍性的同时也需要注意其特殊性，在编写代码时多用心留意，以创造更多更优质的程序代码。&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 06 月 21 日  //  &lt;a href=&quot;http://motian.org/post/5-javascript-ui-frame.html&quot; title=&quot;推荐5 款JavaScript UI 框架&quot;&gt;推荐5 款JavaScript UI 框架&lt;/a&gt; (1)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/javascript-program-code-standard.html&quot;&gt;《[转载]浅谈JavaScript编程语言的编码规范》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/javascript-program-code-standard.html&quot; title=&quot;[转载]浅谈JavaScript编程语言的编码规范&quot;&gt;http://motian.org/post/javascript-program-code-standard.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/562320896/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/562320896/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/javascript-program-code-standard.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>前言 提及C/C++和Java编码规范，相信许多工程师并不生疏。但说到 JavaScript 语言的编码规范，也许您会忍俊不禁。JavaScript 不是语法很灵活吗？变量随时用随时可以声明；语句结束符可以不要；字符串和数字也可以相加；参数多一个少一个也不会报错。没错，当您从 C/C++ 和 Java 严格的语法规定之下，转向 JavaScript 语言，会觉得自由了很多，轻松了很多。语法松散是 JavaScript 重要的特征。它灵活易懂，给开发人员带来了很多方便，但如果编写过程中不注意，代码的调试成本和维护成本则会无形地增加。 JavaScript 编码会随应被直接发送到客户端的浏览器，代码规范不只是代码质量的保证，也影响到产品的长期信誉。希望 JavaScript 编程语言的规范问题也能同样引起更多朋友的关注。 JavaScript 编码规范建议 本文就JavaScript 编码过程中涉及的排版、命名、声明、作用域、及一些特殊符号的使用等方面，根据个人在学习工作中的总结，给出自己的一些建议，并分析其中缘由，以供参考。 JavaScript 文件引用 JavaScript 程序应该尽量放在 .js 的文件中，需要调用的时候在 HTML 中以 &amp;#60;script src=&quot;filename.js&quot;&amp;#62; 的形式包含进来。JavaScript 代码若不是该 HTML 文件所专用的，则应尽量避免在 HTML 文件中直接编写 JavaScript 代码。因为这样会大大增加 HTML 文件的大小，无益于代码的压缩和缓存的使用。 另外，&amp;#60;script src=&quot;filename.js&quot;&amp;#62; 标签应尽量放在文件的后面。这样会降低因加载 JavaScript 代码而影响页面中其它组件的加载时间。 代码排版 行长度 每行代码应小于 80 个字符。如果代码较长，应尽量选择换行，下一行代码应缩进 8 个空格。这样可以使代码排版整齐，减轻阅读代码的疲劳感。换行缩进 8 个空格可以和代码段的缩进 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/562320896/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/562320896/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>编程&amp;开发</category><category>JavaScript</category><pubDate>Sun, 02 Oct 2011 09:34:33 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/javascript-program-code-standard.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=1110</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/javascript-program-code-standard.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/562320896/6113216</fs:itemid></item><item><title>33个高质量的免费导航菜单PSD</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/561746729/6113216/1/item.html</link><content:encoded>&lt;p&gt;导航菜单是一个网站最为重要的部分之一，设计精良的导航菜单可在第一时间吸引用户，给用户准确直观的信息传达，引导用户去浏览更多的网站内容。这里便收集了33个高质量的免费导航菜单PSD，以供欣赏下载。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://freebiesbooth.com/simple-navigation-menu&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Simple navigation menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Simple navigation menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399187.jpg&quot; alt=&quot;Simple navigation menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://freebiesbooth.com/pretty-dropdown-menu&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Pretty dropdown menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Pretty dropdown menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399761.jpg&quot; alt=&quot;Pretty dropdown menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://freebiesbooth.com/slick-horizontal-menu&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Slick horizontal menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Slick horizontal menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399581.jpg&quot; alt=&quot;Slick horizontal menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/simple-tabbed-navigation-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Simple Tabbed Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Simple Tabbed Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399332.jpg&quot; alt=&quot;Simple Tabbed Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/dark-button-navigation-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Dark Button Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Dark Button Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399821.jpg&quot; alt=&quot;Dark Button Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/checkout-process-navigation-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Checkout Process Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Checkout Process Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399452.jpg&quot; alt=&quot;Checkout Process Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/simple-dark-navigation-menu-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Simple Dark Navigation Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Simple Dark Navigation Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399660.jpg&quot; alt=&quot;Simple Dark Navigation Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/clean-simple-navigation-menu-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Clean &amp;amp; Simple Navigation Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Clean &amp;amp; Simple Navigation Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399625.jpg&quot; alt=&quot;Clean &amp;amp; Simple Navigation Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.tutegate.net/2011/06/sleek-breadcrumb-nav/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Sleek breadcrumb nav&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Sleek breadcrumb nav&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399742.jpg&quot; alt=&quot;Sleek breadcrumb nav&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/7152/simple-colorful-navigation-bars/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Simple Colorful Navigation Bars&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Simple Colorful Navigation Bars&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399391.jpg&quot; alt=&quot;Simple Colorful Navigation Bars&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/5330/drop-down-navigation-bar-free-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Drop-down navigation bar&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Drop-down navigation bar&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399453.jpg&quot; alt=&quot;Drop-down navigation bar&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/4630/multi-color-nav-bar/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Multi Color Nav Bar&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Multi Color Nav Bar&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399161.jpg&quot; alt=&quot;Multi Color Nav Bar&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/4237/mini-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Mini Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Mini Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399137.jpg&quot; alt=&quot;Mini Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/4017/ribbon-menu/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Ribbon Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Ribbon Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399576.jpg&quot; alt=&quot;Ribbon Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/4014/yellow-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Yellow Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Yellow Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399605.jpg&quot; alt=&quot;Yellow Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.designkindle.com/2011/02/18/header-navigation-pack/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Header Navigation Pack&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Header Navigation Pack&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399142.jpg&quot; alt=&quot;Header Navigation Pack&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.designkindle.com/2010/11/18/horizontal-dropdown-menu-bar/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Horizontal dropdown menu bar&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Horizontal dropdown menu bar&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399614.jpg&quot; alt=&quot;Horizontal dropdown menu bar&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.designkindle.com/2010/10/28/elegant-ribbon-menu/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Elegant Ribbon Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Elegant Ribbon Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399192.jpg&quot; alt=&quot;Elegant Ribbon Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/dark-button-navigation-2-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Dark Button Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Dark Button Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399483.jpg&quot; alt=&quot;Dark Button Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/glossmilk-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Gloss Milk Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Gloss Milk Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399714.jpg&quot; alt=&quot;Gloss Milk Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/textured-header-design/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Textured Header Design&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Textured Header Design&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399708.jpg&quot; alt=&quot;Textured Header Design&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/profile-menu/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Profile Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Profile Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399239.jpg&quot; alt=&quot;Profile Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/smooth-slider-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Smooth Slider Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Smooth Slider Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399484.jpg&quot; alt=&quot;Smooth Slider Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/psd-breadcrumbs-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Breadcrumbs Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Breadcrumbs Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399394.jpg&quot; alt=&quot;Breadcrumbs Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/psd-vivid-menu-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Vivid Menu Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Vivid Menu Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399463.jpg&quot; alt=&quot;Vivid Menu Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/psd-minimalist-horizontal-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Minimalist Horizontal Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Minimalist Horizontal Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399375.jpg&quot; alt=&quot;Minimalist Horizontal Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/tutorials/html-css-building-anders-vivid-menu-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Vivid Menu with tutorial&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Vivid Menu with tutorial&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399453.jpg&quot; alt=&quot;Vivid Menu with tutorial&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pixelsdaily.com/resources/photoshop/psds/a-bold-and-chunky-navigation/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Bold and Chunky Navigation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Bold and Chunky Navigation&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399865.jpg&quot; alt=&quot;Bold and Chunky Navigation&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://premiumcoding.com/nour-navigation-menu-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Nour Navigation Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Nour Navigation Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399271.jpg&quot; alt=&quot;Nour Navigation Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://premiumcoding.com/slick-dark-navigation-menu/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Slick Dark Navigation Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Slick Dark Navigation Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399344.jpg&quot; alt=&quot;Slick Dark Navigation Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://designmoo.com/5847/clean-crisp-settings-menu-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Clean Crisp Setting Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Clean Crisp Setting Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399439.jpg&quot; alt=&quot;Clean Crisp Setting Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://thefinishedbox.com/freebies/scripts/jquery-dropdown-gui-menu/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Drop Down GUI Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Drop Down GUI Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399571.jpg&quot; alt=&quot;Drop Down GUI Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.premiumpixels.com/freebies/mini-drop-down-menu-psd/&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #257393; font-size: medium;&quot;&gt;Mini Drop-Down Menu&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title=&quot;Mini Drop-Down Menu&quot; src=&quot;http://img.motian.org/images/2011/09/1317274399213.jpg&quot; alt=&quot;Mini Drop-Down Menu&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 08 月 28 日  //  &lt;a href=&quot;http://motian.org/post/c-study-process.html&quot; title=&quot;[ 转载]简述C和C++的学习历程&quot;&gt;[ 转载]简述C和C++的学习历程&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 08 月 20 日  //  &lt;a href=&quot;http://motian.org/post/soft-revision.html&quot; title=&quot;软件版本介绍&quot;&gt;软件版本介绍&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2010 年 03 月 07 日  //  &lt;a href=&quot;http://motian.org/post/diary-share-ajax-javascript.html&quot; title=&quot;推荐几款热门的Ajax/JavaScript脚本&quot;&gt;推荐几款热门的Ajax/JavaScript脚本&lt;/a&gt; (9)&lt;/li&gt;&lt;li&gt;2009 年 12 月 19 日  //  &lt;a href=&quot;http://motian.org/post/share-open-fluxbb.html&quot; title=&quot;推荐一个轻量级的开源论坛&quot;&gt;推荐一个轻量级的开源论坛&lt;/a&gt; (24)&lt;/li&gt;&lt;li&gt;2009 年 09 月 10 日  //  &lt;a href=&quot;http://motian.org/post/image-wailian.html&quot; title=&quot;多服务器平衡负载,文章轻松加图片&quot;&gt;多服务器平衡负载,文章轻松加图片&lt;/a&gt; (3)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/33-nav-psd.html&quot;&gt;《33个高质量的免费导航菜单PSD》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/33-nav-psd.html&quot; title=&quot;33个高质量的免费导航菜单PSD&quot;&gt;http://motian.org/post/33-nav-psd.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/561746729/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/561746729/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/33-nav-psd.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>导航菜单是一个网站最为重要的部分之一，设计精良的导航菜单可在第一时间吸引用户，给用户准确直观的信息传达，引导用户去浏览更多的网站内容。这里便收集了33个高质量的免费导航菜单PSD，以供欣赏下载。 Simple navigation menu Pretty dropdown menu Slick horizontal menu Simple Tabbed Navigation Dark Button Navigation Checkout Process Navigation Simple Dark Navigation Menu Clean &amp;#38; Simple Navigation Menu Sleek breadcrumb nav Simple Colorful Navigation Bars Drop-down navigation bar Multi Color Nav Bar Mini Navigation Ribbon Menu Yellow Navigation Header Navigation Pack Horizontal dropdown menu bar [...]&lt;img src=&quot;http://www1.feedsky.com/t1/561746729/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/561746729/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>资源分享</category><category>博客杂文</category><pubDate>Thu, 29 Sep 2011 20:30:01 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/33-nav-psd.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=933</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/33-nav-psd.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/561746729/6113216</fs:itemid></item><item><title>屏蔽优酷的片头广告</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/561567157/6113216/1/item.html</link><content:encoded>&lt;p&gt;当我们点击优酷视频时，是不是往往看到片头广告感觉挺郁闷的，但是我们应该以谅解的心态对待。不过我们也可以使点小伎俩。&lt;/p&gt;
&lt;h3&gt;第一种：更改static.youku.com文件的属性&lt;/h3&gt;
&lt;p&gt;在Windows7系统的C:\Users\系统用户\AppData\Roaming\Macromedia\FlashPlayer\#SharedObjects\CXQLYXGT文件下，找到static.youku.com文件夹。然后将其删除并新建一个文档，重命名为static.youku.com，同时删掉其扩展名，并修改其属性为只读。&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;注&lt;/strong&gt;&lt;/span&gt;：如果隐藏了扩展名，那么通过“控制面板”=》“文件夹选项”=》“查看”=》隐藏已知文件类型的扩展名“，取消选中。&lt;/p&gt;
&lt;h3&gt;第二种：更改host文件&lt;/h3&gt;
&lt;p&gt;1、打开hosts文件所在的文件夹。即： C:\Windows\System32\drivers\etc 这个文件夹。hosts文件没有扩展名。运行系统的记事本程序，将hosts文件直接拖动到记事本，这时候记事本就会直接打开hosts；&lt;/p&gt;
&lt;p&gt;2、下载”&lt;a title=&quot;利用hosts文件屏蔽优酷、土豆等视频网站15秒广告&quot; href=&quot;http://115.com/file/aqyx1q38&quot; target=&quot;_blank&quot;&gt;利用hosts文件屏蔽优酷、土豆等视频网站15秒广告&lt;/a&gt;“，把里面的代码粘贴到hosts文件中。&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 08 月 30 日  //  &lt;a href=&quot;http://motian.org/post/set-xampp-db-passwd.html&quot; title=&quot;设置XAMPP的数据库密码&quot;&gt;设置XAMPP的数据库密码&lt;/a&gt; (2)&lt;/li&gt;&lt;li&gt;2010 年 07 月 10 日  //  &lt;a href=&quot;http://motian.org/post/shiftrefresh-open-site.html&quot; title=&quot;网站打不开，你Shift+Refresh了吗    &quot;&gt;网站打不开，你Shift+Refresh了吗    &lt;/a&gt; (7)&lt;/li&gt;&lt;li&gt;2010 年 04 月 06 日  //  &lt;a href=&quot;http://motian.org/post/it-internet-os.html&quot; title=&quot;[转]Internet 操作系统在哪里？&quot;&gt;[转]Internet 操作系统在哪里？&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2009 年 12 月 11 日  //  &lt;a href=&quot;http://motian.org/post/tech-dilifaxian-2009.html&quot; title=&quot;国家地理2009十大考古发现&quot;&gt;国家地理2009十大考古发现&lt;/a&gt; (10)&lt;/li&gt;&lt;li&gt;2009 年 11 月 14 日  //  &lt;a href=&quot;http://motian.org/post/tech-nasa-huoxingdixing.html&quot; title=&quot;美国宇航局公布”火星地表”精彩图片&quot;&gt;美国宇航局公布”火星地表”精彩图片&lt;/a&gt; (11)&lt;/li&gt;&lt;li&gt;2009 年 11 月 13 日  //  &lt;a href=&quot;http://motian.org/post/it-tech-yinshen.html&quot; title=&quot;英科学家称隐形衣将有可能变为现实(图)&quot;&gt;英科学家称隐形衣将有可能变为现实(图)&lt;/a&gt; (3)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/screen-youku-ads.html&quot;&gt;《屏蔽优酷的片头广告》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/screen-youku-ads.html&quot; title=&quot;屏蔽优酷的片头广告&quot;&gt;http://motian.org/post/screen-youku-ads.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/561567157/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/561567157/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/screen-youku-ads.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>当我们点击优酷视频时，是不是往往看到片头广告感觉挺郁闷的，但是我们应该以谅解的心态对待。不过我们也可以使点小伎俩。 第一种：更改static.youku.com文件的属性 在Windows7系统的C:\Users\系统用户\AppData\Roaming\Macromedia\FlashPlayer\#SharedObjects\CXQLYXGT文件下，找到static.youku.com文件夹。然后将其删除并新建一个文档，重命名为static.youku.com，同时删掉其扩展名，并修改其属性为只读。 注：如果隐藏了扩展名，那么通过“控制面板”=》“文件夹选项”=》“查看”=》隐藏已知文件类型的扩展名“，取消选中。 第二种：更改host文件 1、打开hosts文件所在的文件夹。即： C:\Windows\System32\drivers\etc 这个文件夹。hosts文件没有扩展名。运行系统的记事本程序，将hosts文件直接拖动到记事本，这时候记事本就会直接打开hosts； 2、下载”利用hosts文件屏蔽优酷、土豆等视频网站15秒广告“，把里面的代码粘贴到hosts文件中。 相关日志2011 年 08 月 30 日 // 设置XAMPP的数据库密码 (2)2010 年 07 月 10 日 // 网站打不开，你Shift+Refresh了吗 (7)2010 年 04 月 06 日 // [转]Internet 操作系统在哪里？ (0)2009 年 12 月 11 日 // 国家地理2009十大考古发现 (10)2009 年 11 月 14 日 // 美国宇航局公布”火星地表”精彩图片 (11)2009 年 11 月 13 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/561567157/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/561567157/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>应用技术</category><pubDate>Thu, 29 Sep 2011 07:50:02 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/screen-youku-ads.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=929</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/screen-youku-ads.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/561567157/6113216</fs:itemid></item><item><title>解决SSH登录Ubuntu系统中文乱码的方法</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525401/6113216/1/item.html</link><content:encoded>&lt;p&gt;&lt;strong&gt;题注&lt;/strong&gt;：我的使用的系统是Ubuntu10.04版本，在次不敢保证次方法在其他版本或者其他Linux系统中成功！我不过我感觉11版本也可以。 &lt;strong&gt;症状:&lt;/strong&gt;当使用SSH远程登录Ubuntu系统时，发现在编辑文件内容有中文字符的内容时，中文字符为乱码，这是不是让人很郁闷。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://img.motian.org/images/2011/ssh-ecoding-1.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-921&quot; title=&quot;ssh-ecoding-1&quot; src=&quot;http://img.motian.org/images/2011/ssh-ecoding-1.png&quot; alt=&quot;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法：&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;服务器端&lt;/h3&gt;
&lt;p&gt;第一步：首先是使用locale命令查看系统的默认语言。 第二步：如果为显示的是zh_CN，那么说明你的系统的是没有问题，而问题来自SSH端，那么就跳过此步。如果是显示en_US，那么就需要修改了。&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=&quot;en_US.UTF-8&quot;
LC_NUMERIC=&quot;en_US.UTF-8&quot;
LC_TIME=&quot;en_US.UTF-8&quot;
LC_COLLATE=&quot;en_US.UTF-8&quot;
LC_MONETARY=&quot;en_US.UTF-8&quot;
LC_MESSAGES=&quot;en_US.UTF-8&quot;
LC_PAPER=&quot;en_US.UTF-8&quot;
LC_NAME=&quot;en_US.UTF-8&quot;
LC_ADDRESS=&quot;en_US.UTF-8&quot;
LC_TELEPHONE=&quot;en_US.UTF-8&quot;
LC_MEASUREMENT=&quot;en_US.UTF-8&quot;
LC_IDENTIFICATION=&quot;en_US.UTF-8&quot;
LC_ALL=&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;第三步：编辑/etc/default/locale文件，没有就创建。输入如下内容&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;LANG=&quot;zh_CN.UTF-8&quot;
LANGUAGE=&quot;zh_CN:zh&quot;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;然后保存该文件并退出。 第四步：安装中文语言包。如果你确定你的系统中有此包，可以跳过此步。命令如下&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;$cd  /usr/share/locales $sudo  
./install-language-pack zh_CN&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;第五步：重新启动。命令如下&lt;/p&gt;
&lt;pre&gt;$reboot&lt;/pre&gt;
&lt;h3&gt;客户端：&lt;/h3&gt;
&lt;p&gt;在打开PUTTY登录以前，找到Windows=》Translation，将&quot;Remote character set &quot;设置为UTF-8。最后在登录到服务器。 &lt;a href=&quot;http://img.motian.org/images/2011/ssh-ecoding-2.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-920&quot; title=&quot;ssh-ecoding-2&quot; src=&quot;http://img.motian.org/images/2011/ssh-ecoding-2.png&quot; alt=&quot;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://img.motian.org/images/2011/ssh-ecoding-3.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-919&quot; title=&quot;ssh-ecoding-3&quot; src=&quot;http://img.motian.org/images/2011/ssh-ecoding-3.png&quot; alt=&quot;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 09 月 26 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-apt-get-command.html&quot; title=&quot;关于Ubuntu的APT-GET的常用命令&quot;&gt;关于Ubuntu的APT-GET的常用命令&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 04 月 09 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-11-04-banner.html&quot; title=&quot;Ubuntu 11.04 倒计时 Banner&quot;&gt;Ubuntu 11.04 倒计时 Banner&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2010 年 09 月 06 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-10-10-deb.html&quot; title=&quot;Ubuntu 10.10开始由软件中心接管deb包安装过程&quot;&gt;Ubuntu 10.10开始由软件中心接管deb包安装过程&lt;/a&gt; (14)&lt;/li&gt;&lt;li&gt;2010 年 09 月 03 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-10-10-beta.html&quot; title=&quot;Ubuntu 10.10 Beta 发布&quot;&gt;Ubuntu 10.10 Beta 发布&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2010 年 08 月 18 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-11-0-natty-narwhal.html&quot; title=&quot;Ubuntu 11.04开发代号:Natty Narwhal &quot;&gt;Ubuntu 11.04开发代号:Natty Narwhal &lt;/a&gt; (2)&lt;/li&gt;&lt;li&gt;2010 年 08 月 17 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-10-10-touch.html&quot; title=&quot;Ubuntu 10.10支持多点触摸&quot;&gt;Ubuntu 10.10支持多点触摸&lt;/a&gt; (2)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/resolve-ssh-login-ubutnu-code.html&quot;&gt;《解决SSH登录Ubuntu系统中文乱码的方法》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/resolve-ssh-login-ubutnu-code.html&quot; title=&quot;解决SSH登录Ubuntu系统中文乱码的方法&quot;&gt;http://motian.org/post/resolve-ssh-login-ubutnu-code.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525401/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525401/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/resolve-ssh-login-ubutnu-code.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>题注：我的使用的系统是Ubuntu10.04版本，在次不敢保证次方法在其他版本或者其他Linux系统中成功！我不过我感觉11版本也可以。 症状:当使用SSH远程登录Ubuntu系统时，发现在编辑文件内容有中文字符的内容时，中文字符为乱码，这是不是让人很郁闷。 方法： 服务器端 第一步：首先是使用locale命令查看系统的默认语言。 第二步：如果为显示的是zh_CN，那么说明你的系统的是没有问题，而问题来自SSH端，那么就跳过此步。如果是显示en_US，那么就需要修改了。 LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_CTYPE=&quot;en_US.UTF-8&quot; LC_NUMERIC=&quot;en_US.UTF-8&quot; LC_TIME=&quot;en_US.UTF-8&quot; LC_COLLATE=&quot;en_US.UTF-8&quot; LC_MONETARY=&quot;en_US.UTF-8&quot; LC_MESSAGES=&quot;en_US.UTF-8&quot; LC_PAPER=&quot;en_US.UTF-8&quot; LC_NAME=&quot;en_US.UTF-8&quot; LC_ADDRESS=&quot;en_US.UTF-8&quot; LC_TELEPHONE=&quot;en_US.UTF-8&quot; LC_MEASUREMENT=&quot;en_US.UTF-8&quot; LC_IDENTIFICATION=&quot;en_US.UTF-8&quot; LC_ALL= 第三步：编辑/etc/default/locale文件，没有就创建。输入如下内容 LANG=&quot;zh_CN.UTF-8&quot; LANGUAGE=&quot;zh_CN:zh&quot; 然后保存该文件并退出。 第四步：安装中文语言包。如果你确定你的系统中有此包，可以跳过此步。命令如下 $cd  /usr/share/locales $sudo   ./install-language-pack zh_CN 第五步：重新启动。命令如下 $reboot 客户端： 在打开PUTTY登录以前，找到Windows=》Translation，将&quot;Remote character set &quot;设置为UTF-8。最后在登录到服务器。 相关日志2011 年 09 月 26 日 // 关于Ubuntu的APT-GET的常用命令 (0)2011 年 04 月 09 日 // Ubuntu [...]&lt;img src=&quot;http://www1.feedsky.com/t1/560525401/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525401/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>Ubuntu</category><category>操作系统</category><pubDate>Mon, 26 Sep 2011 15:42:20 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/resolve-ssh-login-ubutnu-code.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=918</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/resolve-ssh-login-ubutnu-code.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525401/6113216</fs:itemid></item><item><title>关于Ubuntu的APT-GET的常用命令</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525402/6113216/1/item.html</link><content:encoded>&lt;p&gt;apt-get update&lt;/p&gt;
&lt;p&gt;——在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。&lt;/p&gt;
&lt;p&gt;apt-get install packagename&lt;/p&gt;
&lt;p&gt;——安装一个新软件包（参见下文的aptitude）&lt;/p&gt;
&lt;p&gt;apt-get remove packagename&lt;/p&gt;
&lt;p&gt;——卸载一个已安装的软件包（保留配置文件）&lt;/p&gt;
&lt;p&gt;apt-get --purge remove packagename&lt;/p&gt;
&lt;p&gt;——卸载一个已安装的软件包（删除配置文件）&lt;/p&gt;
&lt;p&gt;dpkg --force-all --purge packagename&lt;/p&gt;
&lt;p&gt;——有些软件很难卸载，而且还阻止了别的软件的应用，就可以用这个，不过有点冒险。&lt;/p&gt;
&lt;p&gt;apt-get autoclean apt&lt;/p&gt;
&lt;p&gt;——会把已装或已卸的软件都备份在硬盘上，所以如果需要空间的话，可以让这个命令来删除你已经删掉的软件&lt;/p&gt;
&lt;p&gt;apt-get clean&lt;/p&gt;
&lt;p&gt;——这个命令会把安装的软件的备份也删除，不过这样不会影响软件的使用的。&lt;/p&gt;
&lt;p&gt;apt-get upgrade&lt;/p&gt;
&lt;p&gt;——更新所有已安装的软件包&lt;/p&gt;
&lt;p&gt;apt-get dist-upgrade&lt;/p&gt;
&lt;p&gt;——将系统升级到新版本&lt;/p&gt;
&lt;p&gt;apt-cache search string&lt;/p&gt;
&lt;p&gt;——在软件包列表中搜索字符串&lt;/p&gt;
&lt;p&gt;dpkg -l package-name-pattern&lt;/p&gt;
&lt;p&gt;——列出所有与模式相匹配的软件包。如果您不知道软件包的全名，您可以使用“*package-name-pattern*”。&lt;/p&gt;
&lt;p&gt;aptitude&lt;/p&gt;
&lt;p&gt;——详细查看已安装或可用的软件包。与apt-get类似，aptitude可以通过命令行方式调用，但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息，可以说它更适合用来进行安装和卸载。&lt;/p&gt;
&lt;p&gt;apt-cache showpkg pkgs&lt;/p&gt;
&lt;p&gt;——显示软件包信息。&lt;/p&gt;
&lt;p&gt;apt-cache dumpavail&lt;/p&gt;
&lt;p&gt;——打印可用软件包列表。&lt;/p&gt;
&lt;p&gt;apt-cache show pkgs&lt;/p&gt;
&lt;p&gt;——显示软件包记录，类似于dpkg –print-avail。&lt;/p&gt;
&lt;p&gt;apt-cache pkgnames&lt;/p&gt;
&lt;p&gt;——打印软件包列表中所有软件包的名称。&lt;/p&gt;
&lt;p&gt;dpkg -S file&lt;/p&gt;
&lt;p&gt;——这个文件属于哪个已安装软件包。&lt;/p&gt;
&lt;p&gt;dpkg -L package&lt;/p&gt;
&lt;p&gt;——列出软件包中的所有文件。&lt;/p&gt;
&lt;p&gt;apt-file search filename&lt;/p&gt;
&lt;p&gt;——查找包含特定文件的软件包（不一定是已安装的），这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须 先使用apt-get install来安装它，然后运行apt-file update。如果apt-file search filename输出的内容太多，您可以尝试使用apt-file search filename | grep -w filename（只显示指定字符串作为完整的单词出现在其中的那些文件名）或者类似方法，例如：apt-file search filename | grep /bin/（只显示位于诸如/bin或/usr/bin这些文件夹中的文件，如果您要查找的是某个特定的执行文件的话，这样做是有帮助的）。&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 09 月 26 日  //  &lt;a href=&quot;http://motian.org/post/resolve-ssh-login-ubutnu-code.html&quot; title=&quot;解决SSH登录Ubuntu系统中文乱码的方法&quot;&gt;解决SSH登录Ubuntu系统中文乱码的方法&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2011 年 09 月 25 日  //  &lt;a href=&quot;http://motian.org/post/linux-sys-dir-illustrate.html&quot; title=&quot;Linux系统目录简介&quot;&gt;Linux系统目录简介&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 08 月 20 日  //  &lt;a href=&quot;http://motian.org/post/puppy-linux-5-2-8.html&quot; title=&quot;Puppy Linux 5.2.8 发布&quot;&gt;Puppy Linux 5.2.8 发布&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 08 月 17 日  //  &lt;a href=&quot;http://motian.org/post/linux-bfs.html&quot; title=&quot;Linux BFS 两年&quot;&gt;Linux BFS 两年&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2011 年 08 月 12 日  //  &lt;a href=&quot;http://motian.org/post/2011-best-linux.html&quot; title=&quot;2011 年 7 个最佳的 Linux 发行版&quot;&gt;2011 年 7 个最佳的 Linux 发行版&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2011 年 06 月 14 日  //  &lt;a href=&quot;http://motian.org/post/linux-kernel-3-0-rc3-%e5%8f%91%e5%b8%83.html&quot; title=&quot;Linux Kernel 3.0 RC3 发布&quot;&gt;Linux Kernel 3.0 RC3 发布&lt;/a&gt; (0)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/ubuntu-apt-get-command.html&quot;&gt;《关于Ubuntu的APT-GET的常用命令》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/ubuntu-apt-get-command.html&quot; title=&quot;关于Ubuntu的APT-GET的常用命令&quot;&gt;http://motian.org/post/ubuntu-apt-get-command.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525402/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525402/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/ubuntu-apt-get-command.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>apt-get update ——在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。 apt-get install packagename ——安装一个新软件包（参见下文的aptitude） apt-get remove packagename ——卸载一个已安装的软件包（保留配置文件） apt-get --purge remove packagename ——卸载一个已安装的软件包（删除配置文件） dpkg --force-all --purge packagename ——有些软件很难卸载，而且还阻止了别的软件的应用，就可以用这个，不过有点冒险。 apt-get autoclean apt ——会把已装或已卸的软件都备份在硬盘上，所以如果需要空间的话，可以让这个命令来删除你已经删掉的软件 apt-get clean ——这个命令会把安装的软件的备份也删除，不过这样不会影响软件的使用的。 apt-get upgrade ——更新所有已安装的软件包 apt-get dist-upgrade ——将系统升级到新版本 apt-cache search string ——在软件包列表中搜索字符串 dpkg -l package-name-pattern ——列出所有与模式相匹配的软件包。如果您不知道软件包的全名，您可以使用“*package-name-pattern*”。 aptitude ——详细查看已安装或可用的软件包。与apt-get类似，aptitude可以通过命令行方式调用，但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息，可以说它更适合用来进行安装和卸载。 apt-cache showpkg pkgs ——显示软件包信息。 apt-cache dumpavail ——打印可用软件包列表。 apt-cache show pkgs ——显示软件包记录，类似于dpkg [...]&lt;img src=&quot;http://www1.feedsky.com/t1/560525402/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525402/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>Ubuntu</category><category>Linux</category><category>操作系统</category><pubDate>Mon, 26 Sep 2011 08:57:03 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/ubuntu-apt-get-command.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=915</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/ubuntu-apt-get-command.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525402/6113216</fs:itemid></item><item><title>Linux系统目录简介</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525403/6113216/1/item.html</link><content:encoded>&lt;blockquote&gt;&lt;p&gt;/ 根目录&lt;br /&gt;
│&lt;br /&gt;
├boot/ 启动文件。所有与系统启动有关的文件都保存在这里&lt;br /&gt;
│ └grub/ Grub引导器相关的文件&lt;br /&gt;
│&lt;br /&gt;
├dev/ 设备文件&lt;br /&gt;
├proc/ 内核与进程镜像&lt;br /&gt;
│&lt;br /&gt;
├mnt/ 临时挂载&lt;br /&gt;
├media/ 挂载媒体设备&lt;br /&gt;
│&lt;br /&gt;
├root/ root用户的$HOME目录&lt;br /&gt;
├home/&lt;br /&gt;
│ ├user/ 普通用户的$HOME目录&lt;br /&gt;
│ └.../&lt;br /&gt;
│&lt;br /&gt;
├bin/ 系统程序&lt;br /&gt;
├sbin/ 管理员系统程序&lt;br /&gt;
├lib/ 系统程序库文件&lt;br /&gt;
├etc/ 系统程序和大部分应用程序的全局配置文件&lt;br /&gt;
│ ├init.d/ SystemV风格的启动脚本&lt;br /&gt;
│ ├rcX.d/ 启动脚本的链接，定义运行级别&lt;br /&gt;
│ ├network/ 网络配置文件&lt;br /&gt;
│ ├X11/ 图形界面配置文件&lt;br /&gt;
│&lt;br /&gt;
├usr/&lt;br /&gt;
│ ├bin/ 应用程序&lt;br /&gt;
│ ├sbin/ 管理员应用程序&lt;br /&gt;
│ ├lib/ 应用程序库文件&lt;br /&gt;
│ ├share/ 应用程序资源文件&lt;br /&gt;
│ ├src/ 应用程序源代码&lt;br /&gt;
│ ├local/&lt;br /&gt;
│ │ ├soft/ 用户程序&lt;br /&gt;
│ │ └.../ 通常使用单独文件夹&lt;br /&gt;
│ ├X11R6/ 图形界面系统&lt;br /&gt;
│&lt;br /&gt;
├var/ 动态数据&lt;br /&gt;
│&lt;br /&gt;
├temp/ 临时文件&lt;br /&gt;
├lost+found/ 磁盘修复文件&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 09 月 26 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-apt-get-command.html&quot; title=&quot;关于Ubuntu的APT-GET的常用命令&quot;&gt;关于Ubuntu的APT-GET的常用命令&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 08 月 20 日  //  &lt;a href=&quot;http://motian.org/post/puppy-linux-5-2-8.html&quot; title=&quot;Puppy Linux 5.2.8 发布&quot;&gt;Puppy Linux 5.2.8 发布&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 08 月 17 日  //  &lt;a href=&quot;http://motian.org/post/linux-bfs.html&quot; title=&quot;Linux BFS 两年&quot;&gt;Linux BFS 两年&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2011 年 08 月 12 日  //  &lt;a href=&quot;http://motian.org/post/2011-best-linux.html&quot; title=&quot;2011 年 7 个最佳的 Linux 发行版&quot;&gt;2011 年 7 个最佳的 Linux 发行版&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2011 年 06 月 14 日  //  &lt;a href=&quot;http://motian.org/post/linux-kernel-3-0-rc3-%e5%8f%91%e5%b8%83.html&quot; title=&quot;Linux Kernel 3.0 RC3 发布&quot;&gt;Linux Kernel 3.0 RC3 发布&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 04 月 03 日  //  &lt;a href=&quot;http://motian.org/post/gpl-10-linux-soft.html&quot; title=&quot;采用GPL许可证的10款linux的地球科学自由软件&quot;&gt;采用GPL许可证的10款linux的地球科学自由软件&lt;/a&gt; (7)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/linux-sys-dir-illustrate.html&quot;&gt;《Linux系统目录简介》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/linux-sys-dir-illustrate.html&quot; title=&quot;Linux系统目录简介&quot;&gt;http://motian.org/post/linux-sys-dir-illustrate.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525403/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525403/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/linux-sys-dir-illustrate.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>/ 根目录 │ ├boot/ 启动文件。所有与系统启动有关的文件都保存在这里 │ └grub/ Grub引导器相关的文件 │ ├dev/ 设备文件 ├proc/ 内核与进程镜像 │ ├mnt/ 临时挂载 ├media/ 挂载媒体设备 │ ├root/ root用户的$HOME目录 ├home/ │ ├user/ 普通用户的$HOME目录 │ └.../ │ ├bin/ 系统程序 ├sbin/ 管理员系统程序 ├lib/ 系统程序库文件 ├etc/ 系统程序和大部分应用程序的全局配置文件 │ ├init.d/ SystemV风格的启动脚本 │ ├rcX.d/ 启动脚本的链接，定义运行级别 │ ├network/ 网络配置文件 │ ├X11/ 图形界面配置文件 │ ├usr/ │ ├bin/ 应用程序 │ ├sbin/ [...]&lt;img src=&quot;http://www1.feedsky.com/t1/560525403/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525403/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>Linux</category><category>操作系统</category><pubDate>Sun, 25 Sep 2011 09:33:08 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/linux-sys-dir-illustrate.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=912</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/linux-sys-dir-illustrate.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525403/6113216</fs:itemid></item><item><title>6KBBS在Nginx中的伪静态实现</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525404/6113216/1/item.html</link><content:encoded>&lt;p&gt;最近刚买了一款低端的VPS，目前感觉还可以，除了内存少得可怜之外。以前在我的网站中安装了6KBBS这款程序，但是现在使用了Nginx这款服务器，在伪静态方面可能因为资料少的原因吧，总给人触之棘手的感觉，其实，仔细研究研究就发现原来是拨云见雾。&lt;/p&gt;
&lt;p&gt;这段代码是我在官方给出的Apache服务器的伪静态规则改写了下，你会发现其实没多大的变化。&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;location /forum/{
        rewrite ^/forum/index\.html$ /forum/index.php last;
        rewrite ^/forum/forum-([0-9]+)(-([0-9]+))*\.html$ /forum/forum.php?fid=$1&amp;amp;page=$3 last;
        rewrite ^/forum/view-([0-9]+)(-([0-9]+))*\.html$ /forum/view.php?tid=$1&amp;amp;page=$3 last;
        rewrite ^/forum/user-([0-9]+)(-([0-9]+))*\.html$ /forum/user.php?uid=$1&amp;amp;page=$3 last;
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;注：我使用子目录安装的，所以如果你安装在更目录下，你可以把“forum/”去掉。&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;随机日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2010 年 08 月 20 日  //  &lt;a href=&quot;http://motian.org/post/git-1-7-2-2.html&quot; title=&quot;Git 1.7.2.2 发布&quot;&gt;Git 1.7.2.2 发布&lt;/a&gt; (3)&lt;/li&gt;&lt;li&gt;2010 年 06 月 01 日  //  &lt;a href=&quot;http://motian.org/post/ubuntu-10-04-install.html&quot; title=&quot;Ubuntu 10.04 安装基本配置&quot;&gt;Ubuntu 10.04 安装基本配置&lt;/a&gt; (5)&lt;/li&gt;&lt;li&gt;2009 年 09 月 28 日  //  &lt;a href=&quot;http://motian.org/post/tech-nanji-faxian.html&quot; title=&quot;南极发现:地球最冷最干最安静地点&quot;&gt;南极发现:地球最冷最干最安静地点&lt;/a&gt; (4)&lt;/li&gt;&lt;li&gt;2009 年 09 月 09 日  //  &lt;a href=&quot;http://motian.org/post/ceshi-web-jiazhi.html&quot; title=&quot;测试你的网站值多少钱&quot;&gt;测试你的网站值多少钱&lt;/a&gt; (3)&lt;/li&gt;&lt;li&gt;2010 年 02 月 02 日  //  &lt;a href=&quot;http://motian.org/post/os-tomos.html&quot; title=&quot;操作系统TomOS &quot;&gt;操作系统TomOS &lt;/a&gt; (19)&lt;/li&gt;&lt;li&gt;2010 年 04 月 11 日  //  &lt;a href=&quot;http://motian.org/post/program-c-des.html&quot; title=&quot;DES加密程序代码&quot;&gt;DES加密程序代码&lt;/a&gt; (6)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/6kbbs-nginx-rewrite.html&quot;&gt;《6KBBS在Nginx中的伪静态实现》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/6kbbs-nginx-rewrite.html&quot; title=&quot;6KBBS在Nginx中的伪静态实现&quot;&gt;http://motian.org/post/6kbbs-nginx-rewrite.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525404/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525404/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/6kbbs-nginx-rewrite.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>最近刚买了一款低端的VPS，目前感觉还可以，除了内存少得可怜之外。以前在我的网站中安装了6KBBS这款程序，但是现在使用了Nginx这款服务器，在伪静态方面可能因为资料少的原因吧，总给人触之棘手的感觉，其实，仔细研究研究就发现原来是拨云见雾。 这段代码是我在官方给出的Apache服务器的伪静态规则改写了下，你会发现其实没多大的变化。 location /forum/{ rewrite ^/forum/index\.html$ /forum/index.php last; rewrite ^/forum/forum-([0-9]+)(-([0-9]+))*\.html$ /forum/forum.php?fid=$1&amp;#38;page=$3 last; rewrite ^/forum/view-([0-9]+)(-([0-9]+))*\.html$ /forum/view.php?tid=$1&amp;#38;page=$3 last; rewrite ^/forum/user-([0-9]+)(-([0-9]+))*\.html$ /forum/user.php?uid=$1&amp;#38;page=$3 last; } 注：我使用子目录安装的，所以如果你安装在更目录下，你可以把“forum/”去掉。 随机日志2009 年 11 月 17 日 // 为博客添加欢迎首页 (11)2009 年 10 月 20 日 // 对付恶意网站诡计的六大绝招 (7)2010 年 08 月 08 日 // ULTILEX &amp;#8212; 终极Linux体验 (13)2009 年 12 月 24 日 // [...]&lt;img src=&quot;http://www1.feedsky.com/t1/560525404/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525404/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>博客杂文</category><category>nginx</category><pubDate>Sat, 24 Sep 2011 16:02:24 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/6kbbs-nginx-rewrite.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=908</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/6kbbs-nginx-rewrite.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525404/6113216</fs:itemid></item><item><title>主流浏览器的内核简介</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525405/6113216/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href=&quot;http://img.motian.org/images/2011/browser-kernel.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-900&quot; title=&quot;主流浏览器内核简介&quot; src=&quot;http://img.motian.org/images/2011/browser-kernel.png&quot; alt=&quot;主流浏览器内核简介&quot; width=&quot;549&quot; height=&quot;361&quot; /&gt;&lt;/a&gt;、&lt;/p&gt;
&lt;h3&gt;Trident&lt;/h3&gt;
&lt;h3&gt;IE浏览器使用的内核，该内核程序在1997年的IE4中初次使用，是微软在Mosaic代码的基础之上修改而来的，并沿用到目前的IE9。Trident实际上是一款开放的内核，其接口内核设计的相当成熟，因此才有许多采用IE内核而非IE内核的浏览器涌现，例如Maxthon,The World, TT, GreenBrowser等。&lt;/h3&gt;
&lt;p&gt;Geckos&lt;/p&gt;
&lt;h3&gt;Netcape6开始采用的内核，后来的Mozilla FireFox也采用了该内核，Geckos的特点是代码完全公开化，因此，其可开发程度很高，全世界的程序员都可以为其编写代码，增加功能。&lt;/h3&gt;
&lt;p&gt;Presto&lt;/p&gt;
&lt;h3&gt;目前Opera采用的内核，该内核在2003年的Opera7中首次被采用，该款引擎的特点就是渲染速度的优化达到了极致，也是目前公认的网页浏览器速度最快的浏览器内核，然而代价是牺牲了网页的兼容性。&lt;/h3&gt;
&lt;p&gt;Webkit&lt;/p&gt;
&lt;pre&gt;Safari浏览器使用的内核，Webkit引擎包括WebCore排版引擎以及JavascriptCore解析引擎，均是从KDE的KHTML以及KJS引擎衍生而来。它们都是自由软件，在GPL协议下授权，同时支持BSD系统的开发。所以Webkit也是自由软件，同时开放源代码。在安全方面不受IE,FireFox的制约，所以Safari浏览器还是比较安全的浏览器。（Google的chrome浏览器也采用了该内核）&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;随机日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2009 年 10 月 11 日  //  &lt;a href=&quot;http://motian.org/post/blog-wordpress-officetheme.html&quot; title=&quot;分享下我的主题，需要的随便拿！&quot;&gt;分享下我的主题，需要的随便拿！&lt;/a&gt; (81)&lt;/li&gt;&lt;li&gt;2011 年 06 月 25 日  //  &lt;a href=&quot;http://motian.org/post/five-best-java-book.html&quot; title=&quot;推荐五款最棒的java电子书&quot;&gt;推荐五款最棒的java电子书&lt;/a&gt; (5)&lt;/li&gt;&lt;li&gt;2009 年 09 月 23 日  //  &lt;a href=&quot;http://motian.org/post/blog-wordpress-loudong.html&quot; title=&quot;WordPress 2.8.4 存在注入漏洞！&quot;&gt;WordPress 2.8.4 存在注入漏洞！&lt;/a&gt; (4)&lt;/li&gt;&lt;li&gt;2010 年 06 月 16 日  //  &lt;a href=&quot;http://motian.org/post/wordpress-eventscalendarlarge.html&quot; title=&quot;WordPress日历插件events-calendar&quot;&gt;WordPress日历插件events-calendar&lt;/a&gt; (4)&lt;/li&gt;&lt;li&gt;2010 年 05 月 22 日  //  &lt;a href=&quot;http://motian.org/post/os-ubuntu-update.html&quot; title=&quot;Ubuntu系统升级方法&quot;&gt;Ubuntu系统升级方法&lt;/a&gt; (4)&lt;/li&gt;&lt;li&gt;2010 年 06 月 21 日  //  &lt;a href=&quot;http://motian.org/post/os-kiddix-platform.html&quot; title=&quot;Kiddix Platform —儿童操作系统&quot;&gt;Kiddix Platform —儿童操作系统&lt;/a&gt; (5)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/browser-kernel.html&quot;&gt;《主流浏览器的内核简介》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/browser-kernel.html&quot; title=&quot;主流浏览器的内核简介&quot;&gt;http://motian.org/post/browser-kernel.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525405/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525405/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/browser-kernel.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>、 Trident IE浏览器使用的内核，该内核程序在1997年的IE4中初次使用，是微软在Mosaic代码的基础之上修改而来的，并沿用到目前的IE9。Trident实际上是一款开放的内核，其接口内核设计的相当成熟，因此才有许多采用IE内核而非IE内核的浏览器涌现，例如Maxthon,The World, TT, GreenBrowser等。 Geckos Netcape6开始采用的内核，后来的Mozilla FireFox也采用了该内核，Geckos的特点是代码完全公开化，因此，其可开发程度很高，全世界的程序员都可以为其编写代码，增加功能。 Presto 目前Opera采用的内核，该内核在2003年的Opera7中首次被采用，该款引擎的特点就是渲染速度的优化达到了极致，也是目前公认的网页浏览器速度最快的浏览器内核，然而代价是牺牲了网页的兼容性。 Webkit Safari浏览器使用的内核，Webkit引擎包括WebCore排版引擎以及JavascriptCore解析引擎，均是从KDE的KHTML以及KJS引擎衍生而来。它们都是自由软件，在GPL协议下授权，同时支持BSD系统的开发。所以Webkit也是自由软件，同时开放源代码。在安全方面不受IE,FireFox的制约，所以Safari浏览器还是比较安全的浏览器。（Google的chrome浏览器也采用了该内核） &amp;#160; &amp;#160; 随机日志2009 年 09 月 05 日 // WordPress模板常用函数 (1)2010 年 01 月 15 日 // 也许这就是谷歌退出中国的原因 (34)2009 年 12 月 14 日 // 国人开发的一个的微博客程序 (7)2009 年 08 月 31 日 // 站长成功需要具有的个人素质 (0)2009 年 12 月 08 日 // 5个基于Linux的商业云计算 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/560525405/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525405/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>博客杂文</category><category>浏览器</category><pubDate>Tue, 13 Sep 2011 18:00:10 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/browser-kernel.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=899</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/browser-kernel.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525405/6113216</fs:itemid></item><item><title>PHP中UTF-8的输出</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525406/6113216/1/item.html</link><content:encoded>&lt;p&gt;在PHP编程中，经常因为数据库和程序的编码方式设置不正确，而导致输出乱码。这与设置的编码方式不同，或者忽略了设置。&lt;/p&gt;
&lt;p&gt;对于PHP文件中的中文输出乱码的问题，可以通过添加头部元素来设置。在这有两种方式：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=UTF-8&quot; /&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;lt;?php header(&quot;content-type:text/html; charset=UTF-8&quot;);?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;对于写入MYSQL数据库时，在数据库连接后，添加如下代码：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;mysql_query(&quot;SET NAMES 'utf8' &quot;);&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;mysqli_query(&quot; SET NAMES 'utf8' &quot;);&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;在这里需要禁忌，不要把utf8写成utf-8,通过的经历，发现在这种情况下，你在插入和输出是没问题，但是在phpmyadmin中浏览的中文却是乱码。&lt;/p&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;随机日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2010 年 05 月 12 日  //  &lt;a href=&quot;http://motian.org/post/os-ylmf-xp-3.html&quot; title=&quot;雨林木风推高仿XP系统3.0版&quot;&gt;雨林木风推高仿XP系统3.0版&lt;/a&gt; (12)&lt;/li&gt;&lt;li&gt;2010 年 04 月 17 日  //  &lt;a href=&quot;http://motian.org/post/diary-phpsay-mcrioblog.html&quot; title=&quot;PHPSay-Mcrioblog很好很强大&quot;&gt;PHPSay-Mcrioblog很好很强大&lt;/a&gt; (8)&lt;/li&gt;&lt;li&gt;2009 年 09 月 23 日  //  &lt;a href=&quot;http://motian.org/post/blog-wordpress-loudong.html&quot; title=&quot;WordPress 2.8.4 存在注入漏洞！&quot;&gt;WordPress 2.8.4 存在注入漏洞！&lt;/a&gt; (4)&lt;/li&gt;&lt;li&gt;2009 年 09 月 05 日  //  &lt;a href=&quot;http://motian.org/post/wordpress-muban-hanshu.html&quot; title=&quot;WordPress模板常用函数&quot;&gt;WordPress模板常用函数&lt;/a&gt; (1)&lt;/li&gt;&lt;li&gt;2010 年 01 月 19 日  //  &lt;a href=&quot;http://motian.org/post/cn-zhuce-geren.html&quot; title=&quot;CN拟允许个人注册实乃亡羊补牢&quot;&gt;CN拟允许个人注册实乃亡羊补牢&lt;/a&gt; (35)&lt;/li&gt;&lt;li&gt;2009 年 12 月 24 日  //  &lt;a href=&quot;http://motian.org/post/diary-shengji-luyou-lslslsl.html&quot; title=&quot;都是路由惹的祸&quot;&gt;都是路由惹的祸&lt;/a&gt; (41)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/php-echo-utf-8.html&quot;&gt;《PHP中UTF-8的输出》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/php-echo-utf-8.html&quot; title=&quot;PHP中UTF-8的输出&quot;&gt;http://motian.org/post/php-echo-utf-8.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525406/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525406/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/php-echo-utf-8.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>在PHP编程中，经常因为数据库和程序的编码方式设置不正确，而导致输出乱码。这与设置的编码方式不同，或者忽略了设置。 对于PHP文件中的中文输出乱码的问题，可以通过添加头部元素来设置。在这有两种方式： &amp;#60;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=UTF-8&quot; /&amp;#62; 或者 &amp;#60;?php header(&quot;content-type:text/html; charset=UTF-8&quot;);?&amp;#62; 对于写入MYSQL数据库时，在数据库连接后，添加如下代码： mysql_query(&quot;SET NAMES 'utf8' &quot;); 或者 mysqli_query(&quot; SET NAMES 'utf8' &quot;); 在这里需要禁忌，不要把utf8写成utf-8,通过的经历，发现在这种情况下，你在插入和输出是没问题，但是在phpmyadmin中浏览的中文却是乱码。 随机日志2009 年 12 月 19 日 // 推荐一个轻量级的开源论坛 (24)2011 年 09 月 25 日 // Linux系统目录简介 (0)2009 年 10 月 19 日 // 三年打了一个大西瓜 (2)2009 年 10 月 28 日 // 4年内云计算在华带来1.1万亿新业务收入 (0)2011 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/560525406/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525406/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>MySQL</category><category>应用技术</category><category>编程&amp;开发</category><pubDate>Wed, 07 Sep 2011 21:10:37 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/php-echo-utf-8.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=895</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/php-echo-utf-8.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525406/6113216</fs:itemid></item><item><title>PHP中向文本文件写入换行</title><link>http://item.feedsky.com/~feedsky/motian/~8004217/560525407/6113216/1/item.html</link><content:encoded>&lt;pre&gt;今天在写一个小程序时，用到了PHP中向文本文件中写入时换行的问题。开始，本以为就是写入“\n”这样简单，但是打开写入的文件发现并没有实现换行，而且照样输出。然后，就去百度上Google了下，发现，原来在Windows下是“\r\n”。NND，麻烦。接着修改，发现仍然是上边的情况。再次Google，看到有的网友提到\r\n需要使用双引号而不是单引号，我就犯了一个这样的错误。
单引号和双引号的区别
” ” 双引号里面的字段会经过编译器解释，然后再当作HTML代码输出。
‘ ‘ 单引号里面的不进行解释，直接输出&lt;/pre&gt;
&lt;h3  class=&quot;related_post_title&quot;&gt;相关日志&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;2011 年 08 月 25 日  //  &lt;a href=&quot;http://motian.org/post/reg-exp-note.html&quot; title=&quot;正则表达式的模式编写语法&quot;&gt;正则表达式的模式编写语法&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2011 年 08 月 21 日  //  &lt;a href=&quot;http://motian.org/post/php-browser-type.html&quot; title=&quot;判断浏览器的类型（PHP）&quot;&gt;判断浏览器的类型（PHP）&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;2009 年 08 月 31 日  //  &lt;a href=&quot;http://motian.org/post/php-bian-cheng-gaoshou.html&quot; title=&quot;成为PHP编程高手应该遵循的三个准则&quot;&gt;成为PHP编程高手应该遵循的三个准则&lt;/a&gt; (1)&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;color:#808080;padding:5px;border:1px solid #D7D7D7;&quot;&gt;&lt;br&gt;&lt;blockquote&gt;&lt;li&gt;&lt;strong&gt;本文来自:&lt;/strong&gt; &lt;a href=&quot;http://motian.org&quot;&gt;漠天博客&lt;/a&gt;&amp;raquo;&lt;a href=&quot;http://motian.org/post/php-text-line.html&quot;&gt;《PHP中向文本文件写入换行》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;本文链接:&lt;/strong&gt; &lt;a href=&quot;http://motian.org/post/php-text-line.html&quot; title=&quot;PHP中向文本文件写入换行&quot;&gt;http://motian.org/post/php-text-line.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/560525407/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525407/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://motian.org/post/php-text-line.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>今天在写一个小程序时，用到了PHP中向文本文件中写入时换行的问题。开始，本以为就是写入“\n”这样简单，但是打开写入的文件发现并没有实现换行，而且照样输出。然后，就去百度上Google了下，发现，原来在Windows下是“\r\n”。NND，麻烦。接着修改，发现仍然是上边的情况。再次Google，看到有的网友提到\r\n需要使用双引号而不是单引号，我就犯了一个这样的错误。 单引号和双引号的区别 ” ” 双引号里面的字段会经过编译器解释，然后再当作HTML代码输出。 ‘ ‘ 单引号里面的不进行解释，直接输出 相关日志2011 年 08 月 25 日 // 正则表达式的模式编写语法 (0)2011 年 08 月 21 日 // 判断浏览器的类型（PHP） (0)2009 年 08 月 31 日 // 成为PHP编程高手应该遵循的三个准则 (1)本文来自: 漠天博客&amp;#187;《PHP中向文本文件写入换行》本文链接: http://motian.org/post/php-text-line.html&lt;img src=&quot;http://www1.feedsky.com/t1/560525407/motian/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/motian/~8004217/560525407/6113216/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>PHP</category><category>应用技术</category><pubDate>Wed, 07 Sep 2011 18:24:09 +0800</pubDate><author>漠天</author><comments>http://motian.org/post/php-text-line.html#comments</comments><guid isPermaLink="false">http://motian.org/?p=892</guid><dc:creator>漠天</dc:creator><fs:srclink>http://motian.org/post/php-text-line.html</fs:srclink><fs:srcfeed>http://motian.org/feed</fs:srcfeed><fs:itemid>feedsky/motian/~8004217/560525407/6113216</fs:itemid></item></channel></rss>
