我正在開發一個PHP項目,我需要將.slim(http://slim-lang.com/)文件轉換爲常規HTML。從PHP運行Ruby腳本
不幸的是,似乎這樣做的唯一方法是通過使用Ruby,因爲我無法找到任何纖巧的PHP解析器。
但是,我對ruby完全陌生,以前從未使用過它。無論如何,我將不得不從PHP執行一個.rb文件來完成轉換。
但是,我無法設置紅寶石運行正常(我相信)。
我建立一個文件夾(苗條)與下列:
的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或某事有關,但正如我所說,我完全不熟悉它,不確定如何啓動它並運行。
任何幫助,非常感謝。
您如何期望web服務器運行Ruby腳本本身?爲什麼不使用'系統'功能或類似的功能? –
我試過系統,仍然不起作用。就像我說的,很確定這是與紅寶石有關 – user3143218
你嘗試了什麼?你明白你在做什麼? –