Coldfusion Replace()不适用于MS-Word文档的所有页面

mal*_*65k 3 coldfusion rtf replace ms-word

我有一个单词文档,表格看起来像一个表格.我有像%firstName%, %lastName%, %birthdate%...等占位符.当我使用replace()函数时,%firstName%, %lastName%, %birthdate%在第一页和第二页上替换所有其他占位符字段.在第二次之后,什么都没有取代.第3页和第4页上占位符的所有名称与第1页和第2页相同.我甚至复制并粘贴了占位符名称,我确保没有添加间隔.很想知道是否有其他人发生过这种情况,可以告诉我如何解决这个问题.

<cfset docPath =  GetDirectoryFromPath(GetCurrentTemplatePath()) & "UserTemplate.rtf" />        
<cflock name="UserTemp" type="exclusive" timeout="30">
    <cfset rtf = FileRead(docPath) />
    <cfquery name = "qUserFormData">
        SELECT * FROM vUserFormData WHERE UserID = 3
    </cfquery>
    <cfset rtf = Replace(rtf,"%firstName%",#firstName#)/>
    <cfset rtf = Replace(rtf,"%lastName%",#lastName#) />
    <cfset rtf = Replace(rtf,"%birthday%",#birthday#) />
</cflock>
<cfheader name="content-disposition" value="filename=UserTemplate.doc" />
<cfcontent type="application/msword"><cfoutput>#rtf#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

Mig*_*l-F 6

有四分之一(可选)参数replace()方法; 范围.

范围:

one:替换第一次出现(默认)
all:替换所有出现次数

请注意,"one"是默认值,只替换第一次出现.尝试添加第四个参数,如下所示:

<cfset rtf = Replace(rtf,"%firstName%",firstName,"all") />
<cfset rtf = Replace(rtf,"%lastName%",lastName,"all") />
<cfset rtf = Replace(rtf,"%birthday%",birthday,"all") />
Run Code Online (Sandbox Code Playgroud)

(#这段代码中不需要哈希标记.)

另请注意,replace()您使用的方法区分大小写.