我正在开发一个PHP项目 - 我需要将.slim(http://slim-lang.com/)文件转换为常规HTML。
不幸的是,似乎唯一的方法是使用Ruby,因为我找不到任何PHP解析器。
然而,我对红宝石完全不熟悉,以前从未使用它。无论如何,我将不得不从PHP执行.rb文件来进行转换。
但是,我无法设置ruby以便正常运行(我相信)。
我设置了一个文件夹(苗条),内容如下:
Gemfile
source 'https://rubygems.org'
gem "listen"
gem "slim"
gem "sass"
Gemfile.lock的
GEM
remote: https://rubygems.org/
specs:
ffi (1.9.0)
listen (1.3.0)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
rb-kqueue (>= 0.2)
rb-fsevent (0.9.3)
rb-inotify (0.9.1)
ffi (>= 0.5.0)
rb-kqueue (0.2.0)
ffi (>= 0.5.0)
sass (3.2.10)
slim (2.0.1)
temple (~> 0.6.6)
tilt (>= 1.3.3, < 2.1)
temple (0.6.6)
tilt (1.4.1)
PLATFORMS
ruby
DEPENDENCIES
listen
sass
slim
main.rb的
require 'listen'
require 'slim'
# if source folder specified
if ARGV[0]
Listen.to!(ARGV[0], :filter => /\.slim$/) do |modified, added|
modified.each do |modified_file|
system("slimrb --pretty #{modified_file} > #{modified_file.gsub('.slim','')}.html --trace")
end
end
end
所以从我的理解,这应该得到任何扩展名为.slim的文件,并将其转换为.html
然后在我的PHP中我得到了:
<?php
$pathToRB = "http://example.com/path/to/ruby/file/main.rb";
exec($pathToRB);
?>
不幸的是,它没有做任何事情。我很确定这与在服务器上运行ruby有关,但就像我说的那样,我对它完全不熟悉,也不知道如何让它运行起来。
非常感谢任何帮助。
答案 0 :(得分:2)
首先,您已在服务器中安装slim
gem。
gem install slim
接下来,在php中运行slimrb
命令。
<?php
$input = "/path/to/foo.slim";
$output = "/path/to/foo.html";
// if this doesn't work, try use the full path of slimrb
exec("slimrb --pretty $input > $output");