Работа с Java или Coldfusion File - PullRequest
0 голосов
/ 07 марта 2011

Я использую Coldfusion MX и хочу динамически создавать части файла .htaccess.

например, у меня начало и конец части выглядит как

> # --- Start Part1 ---#
> 
> # --- End Part1 ---#

теперь каждый раз, когда я генерирую это содержимое .htaccess в coldfusion, я хочу удалить содержимое между Start and End части и напишите новое содержание здесь.

Возможно ли это в Coldfusion?

Спасибо

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Предположим, файл .htaccess.template такой:

# BEFORE
# --- Start Part1 ---#

# --- End Part1 ---#
# AFTER

В том же каталоге есть скрипт ColdFusion, скажем htaccess.cfm (имя не имеет значения):

<code><!--- 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#
--->

Это создаст файл .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
1 голос
/ 07 марта 2011
  1. Считать файл в переменную с помощью <cffile>
  2. превратить переменную в массив, используя listToArray(), используя в качестве разделителя конечную строку chr
  3. открыть <cfsavecontent> блок
  4. перебирать и выводить массив, пока не достигнете # --- Start Part1 ---#
  5. добавьте свой собственный контент
  6. переберите и пропустите массив, пока не достигнете # --- End Part1 ---#
  7. перебирать и выводить массив, пока не дойдете до конца
  8. записать сохраненный контент в новый .htaccess с помощью <cffile>

К сожалению, только до CF8, который мы можем использовать для чтения произвольно большого файла построчно без исчерпания памяти. Смотри: http://coldfused.blogspot.com/2007/07/new-file-io-in-coldfusion-8.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...