学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> ASP >> 为自己的ASP网站系统构建一套标记语言


为自己的ASP网站系统构建一套标记语言


  作为动态网站在建设过程中难免遇到在线编辑文章的问题。HTML提供了一个textarea标记,但是实际上没有解决这个问题,因为从textarea的是纯文本。除非在输入的时候使用了HTML标记,否则在输出的时候将获得从头到尾毫无结构的一盘文字。WEB设计中通过DHTML构建一类所见即所得的在线编辑器对这个问题有了很好的解决。

  但是所见即所得并不是唯一的解决办法。笔者在上网过程中发现一些门户网站的在线编辑器非常有特色。它并不是所见即所得(但是提供了一个预览功能),而是一个textarea的文本域,但是又不支持HTML标记语言。而是有它自己的一套标记语言。


图1

图2

  笔者使用觉得非常流畅,总结其优点如下:

  第一, 它的标记不多,相对于HTML而言非常简单,而且通过回车可以自动生成段落,容易被一般用户所接受。笔者认为如果使用中文标记,可以被更多国内用户接受。

  第二, 相对所见即所得的编辑器而言用户更能掌握自己的文章结构,生成乱码少。

  第三, 可见性相对于HTML而言要好得多,加上预览功能后更佳。

  第四, 由于自己的标记语言不支持脚本,因而是更安全的.

  经过笔者一番思考和实践,现把构建这种属于自己的标记语言的方法公示:

  首先,我们为自己的网站确定一套简单而必要的标记语言。确定时把一些不必要的省略。拿我而言,我为自己的网站确定的标记语言如下:

  [图片]图片的网址[/图片]
  [大标题]文字内容[/大标题]
  [小标题]文字内容[/小标题] (考虑到用户可能会细分所以加上)
  [粗体]文字内容[/粗体]
  [斜体]文字内容[/斜体]
  [链接]网址[/链接]

  然后,提供一定的机制,让浏览器读懂我们的标记.那么,怎么让浏览器读懂我们自己确定的标记呢? 在内容显示的页面,我们需要写一个程序将我们的所有标记翻译成为标准的HTML标记,但是此前必须过滤掉用户输进来的HTML代码。

  第一步:过滤HTML代码.

  这个其实很简单,只要将所有的 “<” 标签替换为 “&lt;” ,另外把所有 “>” 替换为 “&gt;” 就可以了。在ASP中通过如下语句实现:

Content=replace(content,”<”,”&lt;”)

Content=replace(content,”>”,”&gt;”)

  (以上代码中,content是储存了我们要显示的内容的变量,下文中若出现也表示一样的意思。)

  第二步:将我们的标记翻译为HTML

  这个相对复杂一些,因为并不是简单的将所有[标签替换为<和]替换为>然后将里面的中文(比如图片)翻译为英文(比如IMG)就可以的。原因有两个:

  1 是我们的标记里面的内容,根据不同的分类需要做不同的处理:

  第一类,直接显示给用户的,比如:

[大标题]文字[/大标题]

  此时确实是只要将标签翻译成相应的英文,比如上面的标记翻译为<h1>文字</h1>就可以了.

  第二类,不直接呈现给用户的,比如:

[图片]图片网址[/图片]

  此时,标签中间的内容”图片网址”只是我们要显示的网址,在HTML中是作为<IMG>标签的SRC属性,而且这个标签在HTML中是不要结尾标签的.所以直接翻译的结果是肯定错误的.

  第三类,直接呈现同时又作为属性,比如:

  [链接]网址[/链接]

  2 是并非所有出项标记的地方都是要翻译的,比如,有时候用户需要用符号”[“和符号”]”来表现他们的内容,而这时候如果将这样的标记翻译为”<”和”>”肯定不是符合用户的心意的。

  分析了出现的问题,笔者将在下面给出编写程序的思路参考和一个参考的程序.

  由于不同的标签需要的翻译方式不一样,所以必须针对不同的标签,一个个的翻译.

  对于任何单个的标记,一篇文章内可能出现多此,也可能一次也不出现,程序应当从头到尾首先检查某一标记的开始标记(比如对”图片]图片地址[/图片]”是”[图片]”)出现的位置,一旦检查到了,然后从那个位置开始检查结束标记,如果也检查到了,则说明这是我们要的标记;如果结束标记没有检查到,那么说明那不是我们要的标记,而只是用户自己展示的内容。检查到之后,将标记翻译为HTML标记,并根据不同类型对标记中的内容作不同的处理.坐完以后从结束标记的位置又继续检查,直到文章结束。

  实际编写中,需要用到递归的思想.下面给出翻译[图片]图片地址[/图片]这个标记的范例程序.

Function TranslateImg(Str)
 Start=instr(str,”[图片]”) ‘检查标记的开始位置
 If start=0 then exit function ‘开始位置为0,表示没有这个标记,那么程序结束
 End=instr(start,str,”[/图片]” ‘检查继该开始位置之后所出现的结束标记位置
 If end=0 then exit function ‘结束标记出现位置为0,表示没有结束标记,程序结束
 MidStr=mid(str,start+4,end-start-4) ‘标记中间的内容
 ReplaceStr=mid(str,start,end-start+5) ‘标记中间的内容加上标记,作为将要替换的内容
 Str=replace(instr,ReplaceStr,”<img src=”&MidStr&”>”) ‘将标记翻译为HTML
 TranslateImg Str ‘递归执行该函数
End Function

  通过以上分析,相信读者能够通过自己的分析为自己的网站构建一套”MyHTML”标记语言了。

  在实际的开发中还会有一些课题需要攻破,比如:标记嵌套的处理;是在将用户提交到数据库之前就翻译还是待用户浏览文章从数据库中调出来时才翻译;为用户提供一些自动插入标记的按钮方便用户的操作体验登.本文仅作抛砖引玉之用希望引得读者一点欣赏。
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

<"好啊">》...
游客 发表于2008-6-2 19:36:01
对"为自己的ASP网站系统构建一套标记语言"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 为自己的ASP网站系统构建一套标记语言 相关内容
Google搜索中 为自己的ASP网站系统构建一套标记语言 相关内容
雅虎中 为自己的ASP网站系统构建一套标记语言 相关内容
Sogou搜索中 为自己的ASP网站系统构建一套标记语言 相关内容

相关软件 最新回复帖子:

·为自己的ASP网站系统构建一套标记语言
·DW MX新功能试用:标记选择器和编辑器
·Flash MX 文本工具手册
·AutoCAD三维建模实例:排球
·AutoCAD模拟空间与图纸空间简介
·免费CAD图形管理软件DwgSee
·DW Ultradev打造留言本(二)
·DW Ultradev打造留言本(一)
·走进SQL Server 2005:备份与恢复功能
·戴尔:1G内存运行Vista吃力 2G正合适


  相关软件 为自己的ASP网站系统构建一套标记语言相关文章
ASP开发中存储过程应用全接触 解析ASP的Application和Session对象
ASP应用程序设计的Web状态管理分析 在ASP中操作HTTP报头方法分析
ASP中使用ServerVariables集合详解 在ASP中访问和更新Cookies集合
ASP中使用Form和QueryString集合 在ASP中轻松实现记录集分页显示
ASP内置对象Request和Response详解 20种看ASP程序源码的方法及工具
深入理解ASP中FSO的神奇功能 用ASP木马实现FTP和解压缩
ASP木马的原理和基本防范方法 防范ASP木马的十大基本原则
一个ASP木马程序的源代码 IIS服务器排错指南及错误代码大全
利用ASP木马程序获取管理权限 Web服务器上防范基于ASP程序的木马
ASP设计常见问题及解答精要 ASP编程中20个非常有用的例子