0

我正在使用以下代码将文件从 php 转换为 html。为了让它工作,我必须在第二行输入每个文件的名称。

p "convert files"
%w(file1 file2 file3).each do |name|
  system %(php #{DIR}/#{name}.php > #{DIR2}/#{name}.htm)
end

有人能告诉我如何制作它,它会自动在主目录中找到任何 .php 文件,并在任何已定义的文件夹及其子文件夹中查找其他 .php 并将它们保存在相似的文件夹名称中吗?

例如:

file1.php -> file1.htm
about-us/file2.php -> about-us/file2.htm
contact-us/department/file3.php -> contact-us/department/file3.htm
4

1 回答 1

1

最简单的方法是使用Dir

Dir.chdir('where_the_php_files_area')
Dir['**/*.php'].each do |php|
    htm = 'where_the_html_files_should_go/' +  php.sub(/\.php$/, '.htm')
    system("php #{php} > #{htm}")
end

(AKA )的**模式递归匹配目录,因此将为您提供当前目录下的所有 PHP 文件。Dir.globDir[]Dir[**/*.php]

于 2011-04-15T00:07:17.673 回答