我正在使用Coldfusion MX,我想動態創建.htaccess文件的一部分。Java或Coldfusion文件操作
,比如我有一個部分的開始和結束的樣子
> # --- Start Part1 ---#
>
> # --- End Part1 ---#
現在每次我生成這樣的.htaccess ColdFusion的內容,我想刪除Start and End
部分之間的內容和新內容寫入這裏。
Coldfusion有可能嗎?
由於
我正在使用Coldfusion MX,我想動態創建.htaccess文件的一部分。Java或Coldfusion文件操作
,比如我有一個部分的開始和結束的樣子
> # --- Start Part1 ---#
>
> # --- End Part1 ---#
現在每次我生成這樣的.htaccess ColdFusion的內容,我想刪除Start and End
部分之間的內容和新內容寫入這裏。
Coldfusion有可能嗎?
由於
假設一個文件.htaccess.template
這樣:
# BEFORE
# --- Start Part1 ---#
# --- End Part1 ---#
# AFTER
在同一目錄中有一個ColdFusion腳本,說htaccess.cfm
(名稱並不重要):
<!--- note double pound signs, necessary to escape in CF --->
<cfset start = "## --- Start Part1 ---##">
<cfset end = "## --- End Part1 ---##">
<cfsavecontent variable="replacement"><cfoutput>
I will appear between the start and end comments!
Replace me with what you want to appear in the .htaccess file.
</cfoutput></cfsavecontent>
<cfset template = fileRead(getDirectoryFromPath(getCurrentTemplatePath()) & "/.htaccess.template")>
<cfset startPos = find(start, template)>
<cfset endPos = find(end, template)>
<cfset before = left(template, startPos + len(start) - 1)>
<cfset after = right(template, len(template) - endPos + 1)>
<cfset content = "#before##replacement##after#">
<!--- <cfoutput><pre>#content#</pre></cfoutput> --->
<cfset path = getDirectoryFromPath(getCurrentTemplatePath()) & "/.htaccess">
<cfif fileExists(path)><cfset fileDelete(path)></cfif>
<cfset fileWrite(path, content)>
這將產生一個文件.htaccess
在同一個目錄下。我認爲這個問題將涉及.htaccess
上的任何文件系統鎖,以防止刪除/覆蓋,因爲我不確定在這種情況下你需要做什麼。
在這個例子中的.htaccess將是:
# BEFORE
# --- Start Part1 ---#
I will appear between the start and end comments!
Replace me with what you want to appear in the .htaccess file.
# --- End Part1 ---#
# AFTER
<cffile>
listToArray()
陣列,利用底線CHR的作爲分隔符<cfsavecontent>
塊# --- Start Part1 ---#
# --- End Part1 ---#
<cffile>
不幸的是,直到我們可以使用CF8來逐行讀取一個任意大的文件,而不會耗盡內存。請參閱:http://coldfused.blogspot.com/2007/07/new-file-io-in-coldfusion-8.html