Извлечение строки с Phing - PullRequest
       31

Извлечение строки с Phing

0 голосов
/ 07 января 2011

У меня есть такая структура каталогов:

plugins (directory)
- file1.php
- file1.xml
- file2.php
- file2.xml
- file3.php
- file3.xml
...

Мне нужна такая структура каталогов:

plugins (directory)
- file1 (directory)
-- file1.php
-- file1.xml
- file2 (directory)
-- file2.php
-- file2.xml
- file3 (directory)
-- file3.php
-- file3.xml
...

Я пытаюсь добиться этого с помощью Phing (имеетбыть фингером) вот так:

<foreach param="file" absparam="absfilename" target="constructplugins">
  <fileset dir="${dir.root}/plugins/">
    <include name="*.php"/>
  </fileset>
</foreach> 

<target name="constructplugins"  description="constructplugins">
<mkdir dir="${dir.tmp}/build/plugins/${file}" />
<copy file="${absfilename}" todir="${dir.tmp}/build/plugins/${file}" />
</target>

Как вы уже видели, я получаю имя директории типа "file1.php".Я понятия не имею, как вырезать «.php», чтобы создать правильный каталог, так как phing mappers здесь работать не будут.И я также не знаю, как скопировать XML-файл.Это должно быть общим, и сборка выполняется под Windows XP.

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 20 января 2011

Я не проверял это, но это должно быть возможно с 'PhpEvalTask'.

<foreach param="file" absparam="absfilename" target="constructplugins">
  <fileset dir="${dir.root}/plugins/">
    <include name="*.php"/>
  </fileset>
</foreach> 

<target name="constructplugins"  description="constructplugins">
  <php expression="preg_replace('/\\.[^.\\s]{3,4}$/', '', ${file})" returnProperty="filename"/>
  <mkdir dir="${dir.tmp}/build/plugins/${filename}" />
  <copy file="${absfilename}" todir="${dir.tmp}/build/plugins/${filename}/${file}" />
</target>

Возможно, я попробую позже.

...