读写HTML代码类型配置信息的思考

昨天写了那个 [自定义配置文件] ,今天就又碰到问题了。如果我们定义的这个配置信息要能够支持HTML代码呢?比如要能够直接支持保存超级链接,统计代码啦诸如此类,那可就会爆出问题来。
例如,我们现在要保存一段51啦的统计代码:
<scrip tlanguage= "javascript" type= "text/javascript" src= "http://js.users.51.la/1642363.js"></script>
<noscript>
<a href="http://www.51.la/?1642363" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/1642363.asp" style="border:none" /></a>
</noscript>

将它保存的时候是不会出错的,保存到配置文件中会是这样的:
Const ZC_BLOG_COPYRIGHT= "<scrip tlanguage="javascript"    
type= "text/javascript"src= "http://js.users.51.la/1642363.js"></script><noscript><a href="http://www.51.la/?1642363" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/1642363.asp" style="border:none" /></a></noscript>";

当我们第二次读取它的时候,按照我们上次的方法(截取“=”号和“;”之间部分)就出错啦。来看看它给我们截出来的是什么吧,先找到“=”紧接着找第一个“;”,然后把它们之间的截取出来,那就是:
<scrip tlanguage= "javascript" type= "text/javascript" src= "http://js.users.51.la/1642363.js"></script>
<noscript><a href="http://www.51.la/?1642363" target="_blank"><img alt="&#x621
这不就完全错了吗,根本就不是我们想要得到的那段代码。怎么办?
首先,从“=”开始截取我们不用修改,我们要让它截取到该行的最后一个“;”,这样以来截取出来的就是我们想要的了,代码只需将int end = line.indexOf(";");修改为:int end = line.lastIndexOf(";");这样就OK了。
接下来还有一个问题,我们的配置文件的格式这这样的Const ZC_BLOG_COPYRIGHT="HTML代码";如果直接将“HTML代码”替换成上面的统计代码,虽然在我们修改读取的时候不会有问题,但是如果在网页的脚本中需要用的话那就出错了,为什么呢?因为统计代码中有“"”。
这个又要如何修改呢?也很简单,我们在写入代码到配置文件中之前先使用
copyRight = copyRight.replace('\"','\'');
将其中所有的双引号都替换为单引号,而取值修改的时候我们再反过来
copyRight = copyRight.replace('\'','\"');
把读取出来的代码中的所有单引号替换为双引号,这样用户在修改的时候看到的就和原来的一样了,而实际上的配置文件中却不是这样的,有点障眼法的意思,呵呵。
本文来源于:尼克技术博客 [url]http://www.ineeke.cn/[/url] , 原文地址: [url]http://www.ineeke.cn/archives/DuQuHTMLLeiXingPeiZhiXinXiDeSiKao/[/url]

 

你可能感兴趣的:(html,代码,配置,类型,信息)