zblog如何避免pre标签内容发布后换行符<br>被转义成VBCrLf
作者:admin 时间:2015-12-30 23:15:40 浏览:最近在zblog文章发布时pre的使用上遇到一点问题,那就是pre标签的内容在发布后换行符<br>会自动转义,即是把换行符“<br>”换成了“VBCrLf”,但是在内容编辑的时候,并没有把“VBCrLf”换成“<br>”,这样就导致pre里的内容不再换行,需再手动换行,这就给文章编辑带来很大的不便。
如何才能不让pre标签里的内容发布后转义呢?我研究了一下zblog的源码,发现可以通过修改源代码来实现要求。
打开文件
\function\c_system_event.asp
然后找到函数
Function PostArticle()
修改一下
Case "fckeditor"
里的代码,在代码
objArticle.Content=Request.Form("txaContent")
下面,添加如下代码:
'pre回车键转义
Dim myRe, mymatch, mymatchs, myhtm
myhtm = ""
set myRe = new RegExp
myre.IgnoreCase =True
myre.Global = True
myre.Pattern = "<pre([^>]*?)>([\s\S]*?)</pre>"
Set mymatchs = myre.Execute(objArticle.Content)
for each mymatch in mymatchs
myhtm = replace(mymatch.SubMatches(1),vbCrLf,"<br>")
myhtm = replace(myhtm,vbLf,"<br>")
objArticle.Content=Replace(objArticle.Content,mymatch.SubMatches(1),myhtm)
next
set mymatchs = nothing
最终代码如下:
'/////////////////////////////////////////////////////////////////////////////////////////
'*********************************************************
' 目的: Post Article
'*********************************************************
Function PostArticle()
... ...
Case "fckeditor"
objArticle.Content=Request.Form("txaContent")
'pre回车键转义
Dim myRe, mymatch, mymatchs, myhtm
myhtm = ""
set myRe = new RegExp
myre.IgnoreCase =True
myre.Global = True
myre.Pattern = "<pre([^>]*?)>([\s\S]*?)</pre>"
Set mymatchs = myre.Execute(objArticle.Content)
for each mymatch in mymatchs
myhtm = replace(mymatch.SubMatches(1),vbCrLf,"<br>")
myhtm = replace(myhtm,vbLf,"<br>")
objArticle.Content=Replace(objArticle.Content,mymatch.SubMatches(1),myhtm)
next
set mymatchs = nothing
If objArticle.Intro="" Then
s=objArticle.Content
... ...
通过这样修改,文章发布后,pre标签里的内容换行符“<br>”就不会被转义成“VBCrLf”了。
标签: zblog
- 站长推荐