中南海保镖 – 儿时最深刻的香港动作电影

         身手不凡的中国特警许正阳(李连杰)因在某次演习中不听指挥犯错而失去继续做中南海保镖的机会,此时香港方面一起杀人案的唯一目击证人Michelle(锺丽缇)正被杀手追杀,因为其未婚夫是与大陆高层关系密切的富商,他便被中央委派去香港保护Michelle。
  两人初接触时互看两生厌,但慢慢都发现了对方的优点并产生了感情,然而因为身份和工作性质,许正阳尽量将感情压抑,却免不了在刻意回避时患得患失,就在两人感觉无从择决时,一个异常危险的杀手悄悄靠近了他们。

syp1397968890

 

PS:经典中的经典,我真的看过不下百遍了。留下的印象非常的深刻。

中南海保镖p1050130965

 

 

PS:一块表引发的爱情故事

中南海保镖p1156057468

 

中南海保镖p1815010096中南海保镖p1155889118 中南海保镖p1672919690  中南海保镖p1815010282 中南海保镖p1815010498 中南海保镖p1672898997 中南海保镖p1156005227 中南海保镖p1156035723  中南海保镖p1329732636 中南海保镖p2153072833中南海保镖p1329725867 中南海保镖p1329727796 

中南海保镖p1815010940 中南海保镖p1815013928  

 

 

 

一到六

一、一个中心:一切以健康为中心 。
二、两个基本点  :
遇事潇洒一点,看世糊涂一点。
三、
忘记年龄 ,忘记过去 ,忘记恩怨 。
四、四个拥有:
无论你多弱或多强,一定要拥有真正爱你的人 ,拥有知心朋友  ,拥有向上的事业 ,拥有温暖的住所 。
五、五个要:
要唱 ,要跳 ,要笑 ,要俏 ,要苗条 。
六、六个不能:
不能饿了才吃 ,不能渴了才喝 ,不能困了才睡 ,不能累了才歇 ,不能病了才检查 ,不能老了再后悔 !
祝大家在2008年里有
“鼠”不尽的快乐 !
“鼠”不尽的收获 !
“鼠”不尽的钞票 !
“鼠”不尽的笑容 !
“鼠”不尽的幸福 !
“鼠”不尽的美满生活

linux – 安装Ctorrent(用命令行进行的bt下载软件)

Ctorrent是一款可以在linux下用命令行进行的bt下载软件

一、官方的安装方法如下:

安装完成

使用方法:

 默认保存在/root

详细参数请用ctorrent –h 查看

PS:不过我用这个方法进行安装的时候,到了make那一步,总提示command not found,无法完成安装

二、于是我就继续在网上搜,找到另一种方法,用修改后的rpm文件安装

首先要下载:

随便你怎么下载,wget或者怎样,下载后放到/root/

然后

 

安装就这样完成了,我觉得这种方法要方便很多,呵呵
三、详细说一下使用方法

例:# 

下载选项:
-e int 下载完毕后的做种时间(单位:小时),默认为72小时。
-p port 绑定端口,默认为2706。
-s save_as 重命名下载的文件,若是下载的是多个文件,则sava_as是包含多文件的目录。
-C cache_size 缓存大小,默认为16MB。
-f 强制做种模式,不进行SHA1 HASH检查。
-b bf_filename piece位图文件名,详见BitField::SetReferFile()。
-M max_peers 客户端最多与多少个peer通信。
-m min_peers 客户端至少与多少个peer通信。
-n file_number 多文件下,选择哪个文件去下载(例如第二个文件file_number就为2)。
-D rate 限制最大下载速率(单位:KB/s)。
-U rate 限制最大上传速率(单位:KB/s)。
-P peer_id 客户端通信的ID,默认为-CD0102-。

CTorrent运行时输出格式如下:
$ / 1/10/40 [3/148/148] 2MB,1MB | 48,20K/s | 80,40K E:0,1

 

各项意义为:
/:表明客户端正在工作的符号,以”- | /”循环。
1:种子数目。
10:客户端正在通信的非种子的peer数目。
40:tracker服务器知道的peer数,也是整个bt通信群的peer数。
3:客户端已经下载的piece数目。
148:数据文件全部的piece数目。
148:客户端可以得到的piece数目,若此数小于全部piece数目则不会下载到完整的数据。
2MB:客户端已经下载的数据量。
1MB:客户端正在上传的数据量。
48:客户端的平均下载速率(KB/s)。
20:客户端的平均上传速率(KB/s)。
80:客户端的即时下载速率(KB/s)。
40:客户端的即时上传速率(KB/s)。
0:客户端与tracker服务器通信失败的次数。
1:客户端与tracker服务器通信成功的次数。

mysql – mysqldump: Couldn’t execute ‘show fields from解决办法

出错提示是

解决办法:
在my.ini最后一行加入:

关于htm和html,shtm与shtml,dhtml,xhtml之间的定义与区别

htm与html:
        html是当今网页文件的一种最基本的,也是使用最广泛的保存格式,与CGI,ASP,JSP或PHP之类的动态网页技术所保存的文件格式不同,页面中没有嵌入任何服务端执行的语句,是一种静态的页面格式,一般的浏览器都能直接解释并显示,无非就是一些标签在页面里,如:<title> <body> <table> … ,相对来讲,其运行速度比.asp .jsp 或.php格式的文件要快,而且更容易被搜索引擎收录。
        htm与html没有实质上的区别,只是为了满足DOS的8+3(文件名不能超过8个字符,扩展名不能超过3个字符)文件命名。
 
shtm与shtml
        shtml是一种基于SSI技术的文件,也就是Server Side Include–SSI 服务器端包含指令,一些Web Server如果有SSI功能的话就会对shtml文件特殊招待,服务器会先扫一次shtml文件看没有特殊的SSI指令存在,如果有的话就按Web Server设定规则解释SSI指令,解释完后像一般html一样调去客户端。shtm与shtml也没有实质上的区别。
 
xhtml
        XHTML是The Extensible HyperText Markup Language可扩展标识语言的缩写。目前推荐遵循的是W3C于2000年1月26日推荐XML1.0(参考http://www.w3.org/TR/xhtml1)。XML虽然数据转换能力强大,完全可以替代HTML,但面对成千上万已有的站点,直接采用XML还为时过早。因此,我们在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML。简单的说,建立XHTML的目的就是实现HTML向XML的过渡。
        大部分常见的浏览器都可以正确地解析XHTML,即使老一点的浏览器,XHTML作为HTML的一个子集,许多也可以解析。也就是说,几乎所有的网页浏览器在正确解析HTML的同时,可兼容XHTML。当然,从[[HTML]]完全转移到XHTML,还需要一个过程。 
        跟[[CSS]](Cascading Style Sheets,层叠式样式表)结合后,XHTML能发挥真正的威力;这使实现样式跟内容的分离的同时,又能有机地组合网页代码,在另外的单独文件中,还可以混合各种XML应用,比如[[MathML]]、[[SVG]]。
        从[[HTML]]到XHTML过渡的变化比较小,主要是为了适应[[XML]]。最大的变化在于文档必须是[[良构]]的,所有[[标签]]必须闭合,也就是说开始标签要有相应的结束标签。另外,XHTML中所有的标签必须小写。而按照HTML 2.0以来的传统,很多人都是将标签大写,这点两者的差异显著。在XHTML中,所有的参数值,包括数字,必须用双引号括起来(而在[[SGML]]和 HTML中,引号不是必须的,当内容只是数字、字母及其它允许的特殊字符时,可以不用引号)。所有元素,包括空元素,比如img、br等,也都必须闭合,实现的方式是在开始标签末尾加入斜扛,比如<code><nowiki><img … /></nowiki></code> 、<code><nowiki><br /></nowiki></code>。省略参数,比如<code><nowiki><option selected></nowiki></code>,也不允许,必须用<code><nowiki><option selected=”selected”></nowiki></code>。
 
DHTML
Dynamic HTML也就是动态HTML,以下称之为DHTML。但到底DHTML是什么呢?
我们首先来看一看HTML。它是一种“静态”的网叶设计语言,主要提供文本和图形的显示功能。但它很难提供多媒体、二维空间移动、精确定位文字、图形的大小和位置。
 

DHTML作为浏览器自带的功能,实际上只是一种概念,它并不属于一种专门技术(如Javascript,Activex),它也不是指标签, Plug-in,或者是浏览器。

DHTML是近年来网络发展进程中最振奋人心也最具实用性的创新之一。它是一种通过各种技术的综合发展而得以实现的概念(当然,不同的浏览器,实现的程度也不同),这些技术包括Javascript, VBScript, Document Object Model(文件目标模块)简称DOM,Layers和Cascading Style Sheets(CSS)等。

那么,什么是DHTML?简而言之,DHTML就是一种即使在网页下载进浏览器以后仍然能够随时变换更新网叶内容排版样式以及动画等等。

 

html和xhtml的区别:

HTML 和 XHTML 的区别简单来说,XHTML 可以认为是 XML 版本的 HTML,为符合 XML 要求,XHTML 语法上要求更严谨些。

以下是 XHTML 相对 HTML 的几大区别:
XHTML 要求正确嵌套
XHTML 所有元素必须关闭
XHTML 区分大小写
XHTML 属性值要用双引号
XHTML 用 id 属性代替 name 属性
XHTML 特殊字符的处理
XHTML 要求正确嵌套

WML语言详解

元素和标签是wml的主要语法,它们决定了wml编程的基本原则。本章我们将从wml的元素、标签、属性等方面详细讲解wml的编程方法。学习本章知识之前,读者应当了解wml元素与标签的区别。wml的元素通常有一个首标签、内容、其它元素及一个尾标签组成。也就说,单独的标签是一个元素,成对出现的标签与其包含的内容也构成一个元素。由于元素牵涉及标签,标签又涉及属性。 

3.1卡片、卡片组及其属性 
我们这里则从卡片、卡片组的组成、相关元素、标签技术性等编程角度进行分析和讲解。3.1.1共有属性 
wml元素的共有属性主要有3个:id、class和xml:lang属性。 
wml的所有元素都有两个核心属性,即标示(id)和类(class)属性。它们主要用于服务器方的信息传输。其中,id属性用于定义元素在卡片组中的唯一标示,即它的名称;class属性用于给当前元素定义一个或更多的类(class)。与卡片组一样,类(class)也是有名字的,而且多个元素可以使用一个类(class)名。具有相同类名的单一卡片组中的所有元素均可被看作相同类的一个部分。类名是区分大小写的。如果在class属性列表中,一个元素多个唯一的类名,那么该元素可以看作这些类中的一部分。具有同一属性的多个类名必须用两个以上的空格间隔,wml程序执行时将忽视其中多余的类名及其属性。 
另外,在wml程序,所有包含文本的元素均具有“xml:lang”属性。该属性用于指定当前元素及其属性所用的描述语言,如英国英语、美国英语、法语、德语等,并可以为用户浏览器选择显示文本的语言提供依据。 
3.1.2wml程序的文件头 
合法的wml卡片组均属合法的wml文件,因此它必须包含wml的声明及文件类型的声明。典型的wml程序的文件头包括我们前面多次提到的以下两行程序: 
<!doctypewmlpublic” -//wapforun//dtdwml1.1//en” 
” http://www.wapforum.org/dtd/wml_1.1.xml” > 
编写wml程序时,我们必须写入这两行程序,并放在程序的开始处。其中” -//wapforun//dtdwml1.1//en” 是标准通用标记语言sgml的公共标示;” http://www.wapforum.org/dtd/wml_1.1.xml” 是wml程序文档类型的标示。文档类型标示也可以是” text/vnd.wap.wml” 或“application/vnd.wap.wmlc”,其中前者制定wml的原文类型,后者贫╓ml程序编译后代码类型。 
3.1.3wml元素 
wml的wml元素用于定义一个卡片组,并通过与标签包含和封装该卡片组中的所有卡片及信息。它的语法格式如下: 
内容(content) 
其中xml:lang =” lang” 用于指定文档所用语言(前面已有介绍),语言” lang” 的值属于nmtoken型数据。 
wml元素中包含的内容(content)中除了文本、图像等信息之外,还可以包含head、template及card元素。其中head、template元素如果包含的话则只可包含一次,而card元素必须至少包含一次。有关这些元素的用法我们后面介绍。 
3.1.4template元素 
template元素用于为当前卡片组中的所有卡片定义一个模板,同一规定卡片的某些参数。模版中的事件处理功能则可将这些参数自动应用于同一卡片组中的所有卡片。不过,我们也可以是其中某个或某几个卡片不采用模板规定的形式,方法是在该卡片中定义一个同名的事件来替代模板块中相应的事件。template元素通过和标签含所需内容(content)而实现模板功能的,其语法格式如下: 
onenterbackwared =” href” ontimer =” href” >内容(content) 
template元素包含的内容中,除了卡片的一般参数外,还可以包含任意多次的do元素和onevent元素。template元素属性的功能及用法说明如下: 
1)oneterforward。当用户在浏览器中进入当前卡片时,该属性将指定超链(href)的url地址,浏览器将据此打开url指定的卡片或事件。 
2)oneterbackward。与上一属性类似,该属性也可以指定其相应卡片或事件的url地址。如果用户浏览时执行prev任务,那么浏览器就会定位到该属性所指定超链(href)的url地址,并打开url指定的卡片或事件。 
3)ontimer。当指定时间timer过期的时候,用户浏览器就根据ontimer属性指定的url打开相应的卡片。 
3.1.5card元素 
wml的卡片组是由一个或多个卡片(card)构成的,每个卡片都包含有一套用户和浏览器交互操作的配置及模式。用户对交互操作的需求是多样性的,所以卡片定义时也必须是多样性的。为此,wml提供了card元素,通过和标签定义一个卡片的各种属性、包含内容。它的语法格式如下: 
onenterforward =” href” onenterbackward =” href” ontimer =” href” >内容(content) 
card元素中包含的内容(content)中除了文本、图像信息之外,还可以包含onevent、timer、do和p元素。其中,timer元素只可使用一次,其余3种可使用多次。而且,如果card元素包含onevent元素或timer元素的话,那么onevent元素必须放在最前面,timer元素放在onevent元素的后面,随后才可以使用do或p元素。这个优先顺序是不能乱的。 
card元素属性的功能及用法介绍如下: 
1)id。用于指定card的名字。改名字是程序导航定位的依据,可以用作程序段锚点,比如。其中的cardname便是由id指定的卡片名。 
2)title。用于为卡片制订一个简单的标题或说明信息。 
3)newcontext。用于指定wap手机浏览当用户重新进入的时候是否需要初始化卡片中所有的内容。它有true和false两种选择,当指定newcontext =” ture” 时,卡片的所有内容在用户重新进入时将进行初始化,也不清除历史纪录;否则,指定newcontext =” false” 时,将不进行初始化设置,也不清除历史纪录。默认状态下的设置值为false。另外,newcontext仅当作为go任务的一部分时才可被执行。 
4)ordered。用于向用户手机的浏览器指明卡片内容的组织形式,以便让浏览器根据自身特点及卡片内容组织及时安排显示布局。它有两种布尔值得设置,即true和false。 
当ordered =” true” 时,浏览器将按照线性顺序显示卡片各区域的内容。这个线性顺序通常是大多数用户所习惯采用的信息浏览顺序,比如发送e-mail信息时,我们依次需要e-mail首件人地址、主题及e-mail内容,这个逻辑顺序就数线性顺序。 
当ordered =” flase” 时,浏览器将根据用户选择或指定的顺序来显示内容。这种情况主要是用于显示用户选项、无序组建或用户输入的简单数据纪录等。 
5)onenterforward。onenterforward事件仅当用户使用go任务或类似于go的任务位和浏览卡片时才可发生,即如果用户执行go任务,则浏览器就会定位标签中指定超链(href)的url指定的卡片。card元素中的onenterforward属性是onevent元素的一个简单格式,用于直接指定onenterforward事件的url地址。 
6)onenterbackward。该属性可以指定其响应时间的url地址。如果用户浏览时执行prev任务,那么浏览器就会定位到该属性所制定超链(href)的url地址,并打开url指定的卡片。onenterbackward属性也属于onevent元素的一个简单格式。 
7)ontimer。当指定时间timer过期的时候,用户浏览器就根据ontimer属性指定的url打开相应的卡片。它也属于onevent元素的一个简单格式。 
3.1.7access元素 
access元素是由一个单独的的标签标签实现的元素。用于定义wml整个卡片组的操作权限,即访问控制参数。access元素必须在head元素内和其它的meta信息一起声明,而且每个卡片组只能有一个access元素。其语法格式如下: 
… 
access元素属性的功能及用法如下: 
1)domain。用于指定对卡片组进行操作的url域,默认域是当前卡片组所在的域。domain的目的是限制访问,用户浏览时浏览器将根据domain值所规定的值来得出与值匹配的地址,并访问该地址对应的卡片或事件。2)path。用于指定卡片组操作的其它卡片组所在的根目录。默认目录是“/”,即当前卡片组所在的根目录。默认目录的规定使得所有在domain域下的卡片组都可以操作当前卡片组。path的值是访问时需要匹配的路径,它的工作原理与domain十分相似,需要与路径的每个子路径相匹配,否则均属无效。 
3.1.8meta元素 
meta元素用于定义wml卡片组相关的通用meta信息。该元素是由一个单独的标签即标签实现的元素,其语法格式如下: 
http-equiv =” name” content =” value” forua =” true 
false” scheme =” format” /> 
其中,name属性和http-equiv属性只能选择使用一个;content属性是必选的,其值根据属性而定;scheme属性目前尚不支持;forua属性为可选属性。各属性功能及用法说明如下: 
1)content。该属性用于指定meta信息的性质的值,是不必选的。 
2)name。用于指定meta信息性质的名称。用户浏览器通常忽略已经命名meta数据,网络服务企业拒绝发送包含该属性所指定meta数据名称的内容。 
3)http-equiv。该属性用于替代name属性,可将meta数据转为wsp或http协议的响应头。 
4)forua。该属性用于指定那些开发者希望传送值用户浏览器的性质。它有ture和fales两个取值,如果取false,则卡片组在发送往客户端以前必须用中间代理去除meta元素信息,这是因为传输的协议可能改变;若取值为true,则meta数据必须如实送往用户的浏览器。默认的状态下,该属性的值为false。 
5)scheme。该属性用于指定解释meta信息性质值的形式或结构。具体的形式或结构因meta数据的类型不同而不同。 
3.2任务及其元素 
wml允许我们在程序中指定一些任务,当某些特定的事件激活时,即可执行这些任务,从而完成需要的操作。例如,我们可以设定任务,当用户按下相应的功能键时,浏览器就可以打开指定的卡片组或卡片。目前,wml提供了4个任务元素,即go、prev、noop和refresh,它们主要与do元素和onevent元素中指定的事件相响应。本节我们就对任务的这些元素做一详细介绍。 
3.2.1go任务 
go任务是通过go元素来声明的,而go元素是通过和标签进行定义的。go元素主要用来定义浏览器需要导航的url地址。如果该地址是一个wml卡片或卡片组的名字,则浏览器就会打开并显示相应的卡片、卡片组;否则,浏览器就会执行该url指定的任务或事件等。在历史推栈中,go任务执行的是一个“推进(push)”操作,也就是说,它执行时浏览器浏览的url地址将送入历史纪录列表中,以被它用。 
go元素中可以包含任意次的setvar元素或postfield元素。postfield元素前面已有介绍,这里不再重述,setvar元素我们后面介绍。 
go任务的语法格式如下: 
accept-charset =” charset” >内容(context) 
其中属性的功能及用法介绍如下: 
1)href。该属性用于指定目标url地址,比如让浏览器显示的卡片的地址即名称等。属性是必选的,其它属性为可选。 
2)sendreferer。该属性用于指定是否传递调用href所指定的url的卡片的url,也是当前页的url,即http头中http_referer。有两种选择:true或false。其中,默认值为false。 
3)method。与html中的表单form的method属性一样,该属性用于指定表单是以get的方式还是post的方式递交,以便通用网关接口cgi处理。默认值为get,但如果没有指定method属性,而和之间存在postfield元素,则wap手机浏览器会自动以post方式传递。 
4)accept-charset。当web服务器处理来自浏览器的输入信息时,该属性可指定服务器进行数据编码时必须采用的字符集列表。也就是说,该属性指定的字符集替代http头里指定的字符集,以便作为服务器选用字符集的标准。 
3.2.2prev任务 
prev任务是由prev元素实现的。该元素通常是一个单独的标签,不过有时也可由和一对标签进行定义。它用于指定将浏览器导航至历史推栈中的前一个url地址。在浏览器操作的历史推栈中,prev任务执行的是“取出”操作,将前一个url地址取出,并把当前url地址推进历史推栈。如果历史推栈中没有前一个url地址,即prev/元素不执行任何任务。 
prev任务的语法格式为: 
或内容(content) 
在后一语法格式中,prev元素包含的内容里面一般是setvar元素,该元素的含义前面已有介绍,这里不再重述,具体的用法随后介绍。 
3.2.3refresh任务 
refresh任务由refresh元素声明,它用于刷新当前的卡片,对卡片内指定的变量进行更新。其语法格式为: 
内容(context) 
其中包含的内容(content)中一般有setvar元素,其语法格式为,它可指定更新的变量名name,即更新的变量值value。另外,refresh元素也可以不包含setvar元素。而通过时间限制(timer元素)对卡片进行刷新。 
3.2.4noop任务 
noop任务由noop元素进行声明,表示什么也不做,是一个空操作,在替代卡片组级的do元素是十分有用。该元素是一个单独的标签,即标签。其语法格式如下: 
 
noop元素没有属性,下面的简单程序中就包含了noop元素实现得空任务操作: 
 
… 
3.3时间及其元素 
wml提供了几个元素,专门用于处理用户浏览器的导航和事件。利用这些元素用户可以给某任务制定关联事件。那么当事件触发时,浏览器就会执行相应的任务,比如url导航就是通过事件实现的。而且,事件可以和一个需要完成的任务捆绑在一起。事件捆绑时一般是通过几种元素及其标签声明来实现的,如go、do和onevent等元素。下面我们就讲解wml的事件元素及事件。 
3.3.1do元素 
do元素提供了一个通用的事件处理机制,使得用户可以参与当前卡片的事件处理。通过和标签将用户交互和某一个任务联系在一起。用户交互可以是用户按下的功能键、选择的菜单项,也可以是用户的声音提示。当用户激活这些交互功能时,用户浏览器就会执行与do元素相关的任务。其语法格式如下: 
任务(task) 
其中tast是与do元素关联的动作,也是条件激活时浏览器即将执行的内容。在do元素中,用户必须绑定且只能绑定go、prev、noop和refresh四种元素所实现任务中的一个任务(task)。go元素用于定位制定的url地址,prev元素用于定位并打开前一操作或任务,doop为空操作,refresh用于刷新当前卡片组或任务,有关他们的详细用法我们后面会陆续介绍。 
do元素可以用于卡片一级,也可用于卡片组一级。当用于卡片一级时,do元素必须包含在card元素中;而用于卡片组一级时,do元素必须包含在template元素中,由此定义的do元素将同时应用于当前卡片组的所有卡片。此时如果某个卡片不想应用模板中的do元素及其任务,则需采用我们前面介绍的方法,使用同名事件处理来替代模板中的do元素的事件处理。而且,不论事件关联的任务是否相同,当do元素定义的事件名称相同时,卡片的do元素将忽视卡片组一级do元素的影响,及卡片一组的do元素将被优先执行。 
另外,含有空操作任务的do元素,不论它是否被激活,它都不会传送或显示到用户的浏览器中,这在一定程度上可以加快浏览器的工作效率,因为服务器端体它抛弃了一些空任务的判断。do元素各个属性的功能及用法讲解如下: 
1)type。用于指定do元素的类型(type),也即需要关联、绑定的用户交互事件,是必选属性。用户浏览器接到这些事件后,就会激活它们并执行相应的操作与处理。如果在一个卡片中定义了多个do元素并拥有同样type,那么用户必须为每个do指定不同的事件名才行,否则就会发生判断混乱的错误。 
do元素典型的类型(type)及执行条件介绍如下: 
1、accept。当用户选择或按下相应功能键时(accept)、选项、命名或按钮时,浏览器接收或激活当前所作选择。2、prev。激活prev键时,浏览器将导航到历史记录中的前一个卡片。 
3、help。激活help功能键或相应按钮、命名时,浏览器显示与当前内容相关的帮助信息。 
4、reset。激活reset功能键或相应按钮、命名时,清除或重置当前卡片组或浏览器的状态。 
5、options。激活options功能键或相应按钮、命名时,浏览器显示与当前内容有关的选项或附加操作。 
6、delete。激活delete功能键或相应按钮、命名时,删除当前项目或选择。 
7、unknown。如果给出的类型不能为do元素所识别,则一律按照unknown型处理,相当于类型为空,即type =” ” 。 
8、vnd.*。vnd.*及其它不同大小写组合[vv][nn][dd].*。这种类型定义的都是vnd.cotype,用于激活供应商或用户浏览器自定义的某个特定功能,其中co为公司(company)名的缩写。 
9、x-*与x-*。扩展类型,目前wml中还没有使用。 
2)label。该属性指定的文本字符串可以表示用户的交互事件。例如,当涯骋桓鋈挝癜蠖ㄔ赼ccept键上之后,并设置了label属性,比如label =” gone” ,那么浏览器就会将label的值“gome”显示在屏幕上;如果不指定,浏览器则会显示默认的“ok”字符串。为了保证能在较小的手机上显示出来,label的属性值最多不超过6个字符。不过这可能因wap手机品牌、型号不同而稍有不同,有的手机最多不能超过5个字符。而且,如果手机浏览器不支持动态标签显示,那么它就会忽视label属性。 
3)该属性用于指定do元索所绑定事件的名称。如果多个do元素制定了相同的name,那么他们绑定的事件统属一个。如果卡片一般与卡片组一级中do元素制定了相同的事件名,那么卡片一级的时间将被优先执行,卡片组一级的事件将被忽视。 
wml规定,在同一卡片或在同一模板中,不得指定具有相同事件名(name)的两个或两个以上的do元素。 
另外,如果name属性值为空,则相当于没有指定name属性,这时do元素执行的事件或操作由type的属性值决定。 
4)optional。指定浏览器是否忽视do元素及其包含的任务。有两个可选值:true和false。如果值为true,则浏览器将忽视当前do元素,即不执行它所绑定的任务。反之,若值为false,则执行do元素。 
3.3.2ontimer事件 
ontimer用于指定一个事件。当标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。ontimer的时间可以是一个url地址,一个卡片组,一个wml网页,一幅图像或其他符合url定位的规则的文件。标签指定的时间为正整数,单位大小为1/10秒。 
ontimer时间只能包含在card元素或template元素的标签中进行定义,其语法形式如下: 
onenterforward =” href” onenterbackward =” href” ontimer =” href” >内容(content) 
或: 
ontimer =” href” >内容(content) 
ontimer事件只有一个属性,即ontimer。它用于指定一个超链(href)的url地址,指定时间timer过期的时候,用户浏览器就会按照超链(href)的url打开相应的卡片。 
3.3.3onenterforward事件 
onenterforward事件仅当用户使用go任务或类似于go任务的任务来定位和浏览卡片时才可发生。设置onenterforward事件后,当用户进入当前卡片组时,浏览器就会定位onenterforward属性或标签中指定超链(href)的url地址,并打开url指定的卡片。 
onenterforward事件需要包含在card元素、template元素或onevent元素的标签中进行定义,其语法格式为: 
onenterforward =” href” onenterbackward =” href” ontimer =” href” >内容(content) 
或: 
ontimer =” href” >内容(content) 
或: 
其他任务(task) 
前两种格式中,onenterforward事件作为card元素或template元素标签中的一个属性进行定义的,该属性即为onenterforward,它制定了一个超链(href)的url地址,当用户进入当前卡片时,浏览器就据此打开url指定的卡片。这种格式制定的任务相当与go任务。 
3.3.4onenterbackward事件 
当用户使用prev任务或类似的任务来导航至某一卡片时,onenterbackward事件才可发生。换句话说,当用户从历史堆栈中选取url地址,并通过浏览器打开这一地址对应的卡片时,onenterbackward事件才可能发生。 
与onenterforward事件类似,onenterbackward事件也需要包含在card元素、template元素或onevent元素的标签中进行定义。其具体语法格式如下: 
onenterforward =” href” onenterbackward =” href” ontimer =” href” >内容(content) 
或: 
内容(content) 
或: 
其他任务(task) 
前两种格式中,onterbackward事件是作为card元素或template元素标签中的一个属性进行定义的,该属性即为onterbackward,它指定了一个超链(href)的url地址,当用户使用prev等任务项回到地址时,浏览器就会打开url指定的卡片。 
后一种格式中,onterbackward事件作为onevent元素的一给类型值,并结合标签指定事件激活时浏览器需要打开的卡片的url地址。 
3.3.5onpick事件 
onpick事件在定义时一般通过onpick属性指定一些项目,当用户选择或取消这些项目时,即可触发onpick事件,执行onpick属性所指定的项目,如打开卡片、卡片组或其他事件等。onpick事件通常在option元素的标签中进行定义,其语法格式如下: 
内容(content) 
可以看出onpick时间作为option元素的一个属性来定义具体的动作。这个属性即onpick,它指定了事件触发时浏览器需要定位的超链的url地址。 
3.3.6onevent元素 
onevent元素通过和标签可以把包含的任务与特定的时间捆绑在一起。当用户激活这一特定事件时,onevent元素所绑定的任务就会被立即执行。onevent元素的语法格式如下: 
任务(task) 
其中task是与onevent元素关联的动作,也是条件激活时浏览器即将执行的内容。与do元素一样,onevent元素中用户也必须绑定且只能绑定go、prev、noop和refresh四种元素所实现任务中的一个任务,go元素用于定位指定url地址、prev元素用于定位并打开前一操作或任务,noop为空操作,refresh用于刷新当前卡片组或任务。 
onevent元素只有一个属性,即type属性,它是必选属性,主要用于定义特定事件的名称。该属性值的数据类型为cdata型。 
3.3.7postfield元素 
postfield元素用于指定当浏览器接到url请求时,向原服务器(originserver)传送的域名其域值。传输时,传输域及传输值的实际编码方式主要依赖于浏览器与原服务器的通信方式。postfield元素是通过单独?lt;postfield/>标签进行定义的,其语法格式如下: 
 
它共有两个属性:name与value,它们的取值均属于vdata型数据。其中,name属性用于指定传输域的名称,value属性用于定义传输的值。这两个属性均为必选属性。 
3.4变量设置元素与变量设置的有关规定 
几乎所有的wml内容都可通过设置参数来实现,这为我们灵活的开发wml程序提供了方便。本节我们先介绍一个变量设置元素,然后再介绍与变量设置有关的一些具体规定。 
3.4.1setvar元素 
setvar元素用于指定在当前上下文内容中的变量的值,从侧面影响正在运行的任务。其语法格式如下: 
它有两个属性:name和value。前者用于指定变量的名称,后者用于指定所需赋给变量的值。这两个属性都是必选的,它们的数据类型均属于vdata型。如果name属性所规定的变量名不合法或不符合运行环境的要求,那么setvar元素在wml程序运行中将被忽视,不能发挥其应有的作用。 
3.4.2变量设置 
wml编程中可以使用变量,变量使用前必须进行定义。变量的命名原则及定义方法我们上一章已经讲过了,这里不再重述。在这里,我们主要介绍wml程序中设置变量的规定。 
如前所述,setvar元素可用来设置变量,设置时setvar元素一般需要在go、prev或refresh元素中进行定义。另外,利用input和select元素也可以设置变量。其中前者是将用户输入的文本赋给变量,作为变量的值;而后者则将用户从option元素中选择的value属性的值赋给变量。有关input元素和select元素的语法格式及具体用法我们后面再行介绍。 
设置变量时,以下几种情况还应当引起大家注意: 
1)可以使用wmlscript的变量值设置wml的变量,反之亦然。也就是说,使用wml及wmlscript编写程序时,它们可以使用同名编程。 
2)在wap开发工具中,通常提供有对变量进行管理和维护的选项卡或对话框,开发人员从中也可以对相应的变量进行设置及编辑。 
3)在当前上下文内容中,可以使用card元素的newcontext属性来消除所有的变量值。 
3.5用户输入处理元素 
通过wap手机的按键,用户可以向浏览器显示的卡片中输入数据信息或操作信息。wml为此专门提供了处理用户输入的元素。 
3.5.1input元素 
input元素用于定义文本实体对象,包含有对输入文本内容的格式、数据类型、长度、值、变量名等多种属性的具体规定。当用户输入满足input元素的规定时,则接收输入信息,并赋给指定的变量灵活进行相应的操作、处理;否则,就通过浏览器给出具体的处理意见,并进行是单个输入处理或变量初始化操作,比如刷新卡片以让用户重新输入,或给用户指出输入错误所在并等待进一步的处理指令等。input元素是wml编程中处理用户交互活动的重要元素,它通过单独的标签进行定义,其语法格式如下: 
default =” default” format =” specifier” emptyok =” false 
true” size =” n” maxlength =” n” tabindex =” n” /> 
其中除了name属性是必选的以外,其他属性都是可选的。这些属性的功能和用法介绍如下:1)name。该属性用于指定用来保存用户输入文本的变量和名称。定义name属性后wml将根据该属性也即变量名,为即将输入的文本实体对象与之存储空间,以便接收用户输入。 
2)title。该属性用于input元素的标签,通常是位于输入框前的提示信息。 
3)type。用于指定文本输入区的类型,有text和password两种选择。默认值为text,指定的用户可以输入文本,而且输入的文本会同时逐渐响应并显示在浏览器中。如果选择password,则指定用户输入的文本作为密码文本处理,wml程序按文本实体接收输入的数据,而浏览器上响应用户输入显示时逐渐均为星号(*),由此起到保密的目的。 
4)value。该属性用于指定name属性所定义变量的值,它将显示在输入框中。 
5)default。该属性用于指定name属性所定义变量的默认值。 
6)format。该属性用于格式化输入的数据。 
7)maxlength。该属性用于指定用户可输入字符串的最大长度。该属性的上限为256,最多不能超过256个字符。 
8)emptyok。用于指定用户是否可以不在输入框内输入内容。 
9)size。该属性用于指定输入框的宽度,宽度值为字符个数。 
10)tabindex。用于指定多个输入框存在时,类似于html中tab键的具体位置。 
3.5.2select元素 
选择列表属于输入元素,允许用户从选项列表中选择需要的项目。wml不仅支持单选列表,及单选项,而且支持多选列表,也就是复选项。select元素允许用户从选列表中选择所需的项目。列表中的选项采用后面我们就要讲到的option元素进行定义,一般是一行格式化的文本。编程时,我们可以使用optgroup元素将option元素的情况项目分成不同级别或层次的选项组,为用户选择提供方便。 
select元素是通过标签进行定义的,语法格式如下: 
ivalue =” default” tabindex =” n” >内容(content) 
其中所有属性都是可选的。select元素各个属性的功能和用法介绍如下: 
1)multiple。该属性用于指定选择列表是否可以使用复选框。 
2)name。该属性用于指定接收选项值的变量的名称,变量值由value属性预设定。 
3)value。用于制定name属性所定义变量的默认值。 
4)iname。用于指定包含排序号的变量的名称。 
5)ivalue。用于指定选择列表中被选中选项的值,是一个具有排序号性质的值。6)title。用于指定选择列表的标题。 
7)tabindex。用于指定当前选择光标在选择列表中的具体位置,该位置即为当前选择操作将要选择的选项所在的位置。 
3.5.3option元素 
option元素用于定义select元素中的一组单选项。它通过和标签进行定义,并可包括事件和单选项的显示文本等信息,其语法格式如下: 
内容(content) 
option元素的属性均为可选,各属性功能及用法说明如下: 
1)value。该属性用于设置键值。当用户选到该选项之后,option元素就会将该值赋给selet元素的name属性所指定的变量。 
2)title。用于option元素制定的一个标题,以便提示用户操作。 
3)onpick。该属性用于指定用户选到该项并按accept键后所打开卡片组的l。 
3.5.4optgroup元素 
optgroup元素用于将多个相关的option元素进行分组,用户浏览器可以借助这种分组来安排选项列表的显示布局,以方便用户选择。optgroup元素是通过和标签进行定义的,其语法格式如下: 
内容(content) 
它所包含的内容中需要包含至少一次option元素或其他的optgroup元素。 
optgroup元素只有一个属性,即title属性,用于定义optgroup元素的标题,以便提示用户操作。 
3.5.5fieldset元素 
fieldset元素用于设定输入框和相应的说明文本,从而用户就可以利用input元素等借助该输入框输入所需的数据信息。fieldset元素的语法格式如下: 
内容(content) 
由于fieldset元素和输入有关,所以它们的内容中可以包含与输入有关的其他元素。其语法格式可以看出,fieldset元素只有一个属性,即title属性,用于定义fieldset元素的标题,以便提示用户操作。 
3.6锚、图像、定时器及其元素 
本节我们讲解与定位和定时控制有关的3类元素,包括anchor、a、img、timer几种元素。使用它们可以在wml卡片中创建超链接,或在文本流中显示一幅图像,或设置定时器来控制用户操作及卡片显示等。 
3.6.1anchor元素 
anchor元素用于创建一个超链接的头部,超链接的其余部分为用户指定的url地址。当程序运行中用户选中该超链接时,浏览器就会被引入到超连接指定的地址,如其他卡片组或同一卡片组中的其他卡片。 
anchor元素由和标签进行定义,它所包含的超连接必须是真实存在的,而且是能够正确连接的超连接。anchor元素定位超链接时,必须通过相关的任务元素完成定位处理,如go元素、prev元素、refresh元素等。不过,在anchor元素中只能包含1个定位任务,多于一个时会导致wml运行错误。 
anchor元素的语法格式如下: 
任务文本 
其中的任务需要包含一个进行定位的任务元素。可以看到,anchor元素只有一个属性,即title属性,用于定义fieldset元素的标题,它用于定义即title属性,用于定义fieldset元素的标题,以便提示用户操作。元素的超连接的标题。用户浏览时可利用这一标题来及时了解操作的超连接的名称或者有关提示信息。 
3.6.2a元素 
a元素是由anchor元素的简化形式,它内含了anchor元素需要包含的go元素功能爱完成超连接定位,并且不再包含其他任何变量设置。它使用标签进行定义。 
3.6.3img元素 
img元素用于格式化的文本中防止和显示一幅图像。当然,前提是用户所用的浏览器必须支持图像显示。img元素由单独的标签进行定义,它不包含其它元素。其语法格式如下: 
height =” n” width =” n” vspace =” n” hspace =” n” /> 
属性中alt和src是必须要有的,其他可选。另外,需要注意的是img元素要放在p元素里,而不能放在do或option元素里。 
img元素各个属性的功能和用法介绍如下: 
1)alt。该属性用来指定当手机不支持图像显示用来替代现实的文字文本。 
2)src。该属性用于指定图像文件的url地址。 
3)localscr。该属性用来指定显示存在手机rom的图标文件。 
4)align。该属性用来指定图像显示是相对当前文本行的对齐方式。 
5)height。用于设定图像显示时的高度。 
6)width。与height属性类似,用于设定图像显示时的宽度或宽度百分比。 
7)vspace。该属性用于指定图像显示时的上边距和下边距,默认值为0。 
8)hspace。与vspace属性类似,该属性用于指定图像显示时的左边距和右边距。 
3.6.4timer元素 
timer元素用于设定一个定时器,可以延时显示卡片组、卡片,或实现wml程序的等待操作,或在卡片组和卡片之间实现切换以取得动画效果。 
一个卡片只能使用一次timer元素,也即是说只能设置一个定时器。当用户进入还有定时器的卡片时,定时器就会开始工作,其时间值就会逐渐减小。timer元素指定的时间值单位1/10秒。其语法格式如下: 
 
它的两个属性中,value属性是必选的,name属性为可选。name属性用于指定表示时间值的变量的名称,该变量的取值由定时器的时间值决定,时间值减小,该变量的值也相应地减小,并终始保持不变。 
value属性用于指定name属性所定义变量的初始值。如果name属性定义的变量在定时器初始化时还没有值,那么该变量就将采用value属性指定的值;否则,改变量就会忽视value属性的值。如果没有定义name属性,也就是说,没有指定时间变量,那么timer元素指定的定时器仍将采用value属性的值进行延时处理。 
3.7文本格式化及其元素 
wml程序中,为使显示的文本呈现出丰富的样式,wml提供了一些用于格式化的元素,我们通过这些元素及其相应的标签可以对文本进行标注和控制,从而实现不同的显示效果。 
3.7.1增强元素 
增强元素都是一些成对的标签,用于指定文本的增强显示信息。比如b元素通过标签可以控制其中的文本按照粗体字进行显示。3.7.2br元素 
“br”即break,是用于换行的元素,它是使用单独的
标签进行定义的。br元素的作用相当于插入一个回车符。 
3.7.3p元素 
“p”即指paragraph,p元素用于划分段落,是当前文本换行并插入一个空白行。p元素可以使用单独的

 

标签进行定义,也可以使用

标签成对的进行定义。其语法格式为: 
 
或 
文本

 
1)align。该属性用于设置段落在浏览器中的对齐方式,有left、center和righ三种取值。这三种参数值分别表示p元素当前定义的文本段落及浏览器窗口的左侧、中间和右侧进行对齐。默认值为left,及段落与浏览器窗口的左侧对齐排列。 
2)mode。该属性用于指定下一段落的换行方式。 
3.7.4td元素 
td元素用于规定表格单元格的内容。其语法格式如下: 
单元格内容 
3.7.5tr元素 
wml中的表格是按照行、列进行组织的。一个表格由若干行组成,每行由若干列组成。tr元素用于定义表格的行。其语法格式如下: 
单元格内容 
3.7.6table元素 
table元素与tr元素、td元素一起,可用来创建能容纳文本和图像的表格,并可设置表格各列中文本和图像的对齐方式。其语法格式如下: 
 
或 
内容 
其中各个属性的功能和用法介绍如下: 
1)align。该属性用于指定表各个列中文本和图像的对齐方式。 
2)title。该属性用于指定table元素的标题。 
3)columns.该属性用于指定表格的列数,该数不能为0。 

HTML标记参考手册

总类(所有HTML文件都有的) 

文件类型(放在档案的开头与结尾) 
文件主题(必须放在「文头」区块内) 
文头(描述性资料,像是「主题」) 
文体(文件本体) 

结构性定义(由浏览器控制的显示风格) 

标题 <H?> (从1到6,有六层选择) 
3.0 标题的对齐 <H? ALIGN=LEFT|CENTER|RIGHT> 
3.0 区分

 

 
3.0 区分的对齐

 

 
引文区块 (通常会内缩) 
强调 (通常会以斜体显示) 
特别强调 (通常会以加粗显示) 
引文 (通常会以斜体显示) 
(显示原始码之用) 
样本  
键盘输入  
变数  
定义 (有些浏览器不提供) 
地址

 

 
3.0 大字  
3.0 小字  

与外观相关的标签(作者自订的表现方式) 

加粗  
斜体  
3.0 底线 (尚有些浏览器不提供) 
3.0 删除线 (尚有些浏览器不提供) 
3.0 下标  
3.0 上标  
打字机体 (用单空格字型显示) 
预定格式

(保留文件中空格的大小) 
预定格式的宽度

(以字元计算) 
N1.0+ 向中看齐

(文字与图片都可以) 
N1.0 闪耀 (有史以来最被嘲弄的标签) 
N1.0 字体大小 (从1到7) 
N1.0 改变字体大小  
N1.0 基本字体大小 (从1到7; 内定为3) 
N2.0 字体颜色  

连结与图形 

链接  
链接到锚点 (如果锚点在另一个档案) 
(如果锚点目前的档案) 
N2.0 链接到目的视框  
设定锚点  
图形  
图形看齐方式  
N1.0 图形看齐方式 ALIGN=LEFT|RIGHT|TEXTTOP|ABSMIDDLE|BASELINE|ABSBOTTOM> 
取代文字 *** (如果没有办法显示图形则显示此文字) 
点选图 (需要CGI程式) 
N2.0 点选图  
N2.0 地图

(描述地图) 
N2.0 段落

 
3.0 大小 (以pixels为单位) 
N1.0 图形边缘 (以pixels为单位) 
N1.0 图形边缘空间 (以pixels为单位) 
N1.0 低解析度图形  
N1.1 用户端拉(使用端自动更新 ) 
N2.0 内嵌物件 (将物件插入页面) 
N2.0 内嵌物件大小  

分隔 

段落

(通常是两个return) 
3.0 段落

 

(新定义成容器型标签) 
3.0 文字看齐方式

 

 
换行
(一个return) 
N1.0 文字部份看齐方式
(与图形合用时) 
横线


 
N1.0 横线对齐


 
N1.0 横线厚度


(以pixels为单位) 
N1.0 横线宽度


(以pixels为单位) 
N1.0 横线比率宽度


(以页宽为100%) 
N1.0 实线


(没有立体效果) 
N1.0 不可换行 (不换行) 
N1.0 可换行处 (如果需要,可在此断行) 

列举 (可以巢状列举) 

无次序式列举 (

  • 放在每一项前) 
    N1.0 公布式列举
        (定义全部的列举项) 

    • (定义这个及其後的列举项) 
      有次序式列举 (
    • 放在每一项前) 
      N1.0 数标型态
          (定义全部的列举项) 

      1. (定义这个及其後的列举项) 
        N1.0 起始数字
            (定义全部的列举项) 

        1. (定义这个及其後的列举项) 
          定义式列举

          (项目,定义) 
          表单式列举

        2. 放在每一项前) 
          目录式列举
        3. 放在每一项前) 

          背景与颜色 

          3.0 重复排列的背景 
          N1.1+ 背景颜色(依序为红、绿、蓝) 
          N1.1+ 文字颜色 
          N1.1+ 连结颜色 
          N1.1+ 看过的连结 
          N1.1 使用中的连结 

          特殊字元(以下标签需用小写) 

          特别符号 &#?; (其中 ? 代表 ISO 8859-1 的编码) 
          < < > > & lt;& gt; 
          注册商标TM & reg; 
          N1.0+ 注册商标TM & reg; 
          著作权符号 & copy; 
          N1.0+ 著作权符号 & copy; 

          表单 (通常需要与CGI程式配合) 

          定义表单

           
          N2.0 上传档案

           
          输入栏位  
          栏位名称  
          栏位内定值  
          已选定 (适用於checkboxes与 radio boxes) 
          栏位宽度 (以字元数为单位) 
          最长字数 (以字元数为单位) 
          下拉式选单 
          下拉式选单名称 
          选单项目数量 
          多选式选单







           N1.1 储存格上下留白 N1.1 表格宽度(以pixels为单位) N1.1 宽度比率(页宽为100%) 3.0 表格列 3.0 表格列内容看齐 3.0 储存格(须与列并用) 3.0 储存格内容看齐

             
          3.0 不换行
           
          N3.0 储存格背景颜色
           
          3.0 储存格横向连接
           
          3.0 储存格纵向连接
           
          N1.1 储存格宽度
          (以pixels为单位) 
          N1.1 储存格宽度比率
          (页宽为100%) 
          3.0 表格标题 (跟
          一样,不过会对中并加粗) 
          3.0 表格标题对齐 
          3.0 表格标题不换行 
          3.0 表格标题占几栏 
          3.0 表格标题占几列 
          N1.1 表格标题宽度(以pixels为单位) 
          N1.1 表格标题比率宽度(页宽为100%) 
          3.0 表格抬头  
          3.0 表格抬头看齐(在表格之上/之下) 

          视框 (定义与控制萤幕上的特定区域) 

          N2.0 视框格式总定义 (取代) 
          N2.0 视框行长度分配 (pixels 或 %) 
          N2.0 视框行长度分配 (* = 相对大小) 
          N2.0 视框栏宽度分配 (pixels 或 %) 
          N2.0 视框栏宽度分配 (* =相对大小) 
          N2.0 定义个别视框 (定义个别视框) 
          N2.0 个别视框内容  
          N2.0 个别视框名称  
          N2.0 边缘宽度 (「左」与「右」边界) 
          N2.0 边缘高度 (「天顶」与「地底」边界) 
          N2.0 卷动条  
          N2.0 不可改变大小  
          N2.0 无视框时的内容 (如果浏览器不提供视框功能的话) 

          杂项 

          说明 (浏览器不会显示) 
          档案型态声明  
          3.0 档案型态声明  
          可搜寻



          (指示可搜寻的索引项) 
          N1.0 提示



          (要求输入的提示文字) 
          送出搜寻条件 (其中的问号不是数字,而是「问号」) 
          基本档案的 (必须放在「文头」区段内) 
          N2.0 基本视窗名称 (必须放在「文头」区段内) 
          相关性 (必须放在「文头」区段内) 
          背景资讯(必须放在「文头」区段内) 

 

爱在最美时放手

自己,是什么让我们走近;总想问自己,是什么让我们回避;总想问自己,是什么让我们彼此默默关注又刻意漠视。也许假装洒脱的挥手就能说再见,也许假装没有爱过说放手就可以放手。
可是我却清晰记得,我的生命中你来过。

相遇是缘,尽管情深缘浅,可从初相遇的那一刻起我就在找寻一个可以接受的理由。

时光不会为我而慵懒,等着我将一切从头再来,过去的岁月里,留下不可磨灭的印迹,坚硬,堆积成壳,有光滑的表面,也有裂隙的渗漏,我只能站在远处,或愉悦,或忧伤的看着这一切,不能回转。

春夏秋冬,四季皆有可以流传动人的故事。那些飘散在风中的歌儿,在黄土高坡的沟壑九曲十八弯缠绕,在江南水乡的浆声灯影幽幽潜入,在西风怒号的咽声中吼叫,也在热带密密的雨林中伴着虫鸣和蛙声。

一切在梦里,在画里,在泛黄的书页上。

那些不是我的故事,我的故事写在心里。

我只仿佛在写别人的故事。

也有牵心动情的话,也有痛彻心扉的思念,也有夜不能寐的沉重。是我?还是你?

人生若只初相遇,谁和谁的相遇。是前世奈何桥边无涯的等待不够长久?还是今生我走得太匆忙,忘了聚拢飘散在风中的誓言。

于是,我们错过。

于是,我们只能故做洒脱的笑笑,然后各向天涯,在某一个静夜里,也许还会想起说过的一些撕心裂肺的情话。然后,或者痛,或者伤,抑或者哼一曲旧日的歌,像是我俩的故事。
再然后,假装睡了,心一瓣瓣的碎成落英的样子,却无处葬,清冷的月光下,一个失意的女子再也不会独自走在这条路上。

那些花儿早已开过,春风里,落红随着流水去了远方,谁为她埋了芳骨。
荒漠中出土的干尸,已不是美丽爱情的化身,写在古旧的羊皮书上的传说,披一袭轻纱,我能不能演绎。
不能给你承诺,却以为可以在梦中相聚。可那些梦在曙色初现时仍不愿走,挂在窗上,一扭头就可以看得很分明。就这样,白日里沉在夜的梦中,而夜里,又在回想着白日生出的无奈。日夜交错中,岁月已匆匆过去,春去了又来,四时的花开过又开,而我和你,却越来越远。

有没有一张车票,能带我逃离这一切,有没有一个乐园,能让我忘记这一切。我躺在这面青草坡上,头上的丽日一览无余的照射下来。闭上眼,又感觉到天地的旋转,身体轻飘得只剩一片比纸薄的灵魂。飘上云端,我看见人间的爱情仍然在上演,有一些注定是悲剧。

除了呼吸就是想念。
竟如我一般的心境,收藏起这句经典的情话,我开始整理一些心情,开始写下故事的开头。

可是,结局我却没有想好,也许没有结局,如果有,我宁愿如歌里唱的那样——爱在最美时我们放开手。